cuadros combinados

jgcamposv
06 de Agosto del 2003
Tengo un formulario desde donde se incluyen los datos, pero requiero que uno de los datos a incluir sea a traves de la selección desde un cuadro combinado. Ademas el cuadro debe permitir que si el bien a incluir no esta en cuadro, el usuario lo ingrese y se almacene en la tabla rowsource del cuadro. Yo he podido hacer que el cuadro se presente y se seleccione el artículo a incuir, pero lo que no se hacer es almacenar el nuevo articulo que escriba el usuario, en la tabla rowsource.

Gracias


osvaldo
06 de Agosto del 2003
Normalmente para lo que quires hacer, pienso que deberias tener 2 mantenimientos: 1. para la tabla principal de la forma. 2. otro para la tabla que contiene los datos del combobox. lo que yo haria seria por medio del mantenimiento da la tabla del combobox agregar los registros y luego si los necesito, para actualizar la tabla principal, entoces lo utilizo.

Pero si quieres introducir registros en la tabla del combobox desde la forma principal donde manejas la tabla principal, lo puedes aser así.

1. Primero debes tener la forma principal, con su tabla principal y la tabla del combobox en el entorno de datos.

2. segundo agrega un control combobox: y actualiza las siguientes propiedades:
- RowSourceType = 3 (sql)
- RowSource = "Selec * from tabla_sec where condicion Into cursor Cdatos"
- ControlSource = el campo de la tabla principal que se actualizara con el elegido en el combobox
- Style = 0 (cuadro desplegable) esto te permitira escribir un nuevo dato.
- BoundColumn = 1, esto te pernmite si tienes varios campos en la tabla del combobox, que la propiedad value se asocie al primero, si este fuera el caso.

Me imagino que ya tienes la forma para grabar los datos en la forma principal.
AHORA puedes hacer lo siguiente: debes tener la tabla del combox indexada por el campo que aparecera en el combobox.
Luego cuando tu escribas un valor nuevo en el combobox. antes de grabar los datos en la forma: haces lo siguiente:

SELECT tabla (la del combobox)
SET ORDER TO campo
SEEK (THISFORM.combobox.value)
IF !FOUND() && NO EXISTE SE AGREGA
append blank
REPLACE campo with (thisform.combobox.value)
Thisform.COMBOBOX.REQUERY
ENDIF

Esto te actualiza la tabla del combobox y al mismo tiempo se actualiza en mismo combobox con los nuevos datos y te graba el nuevo campo en la tabla principal.

Bueno amigo espero te sirva.. me avizas cualquier duda OK.
Osvaldo Rep. Panamá.

jgcamposv
06 de Agosto del 2003
Muchas Gracias