Probema con un combobox

daniel
14 de Junio del 2003
Que tal!!!!

Tengo un combobox que quiero que funcione como un textbox, es decir, si el usuario escribe algún dato en la caja de texto del combo, pueda guardar este dato en una variable.

Supuestamente con la propiedad VALUE lo puedo hacer pero cuando el combo pierde el enfoque o se presiona enter, VALUE es 0. Existe una propiedad llamada TEXT que sí muestra el texto escrito en el combo, pero no me sirve.

Lo que quiero es un formulario de captura y que el usuario tenga la opción de escoger un valor de la lista del combo, si no existe el valor lo captura para que se agregue en el campo de la tabla que tiene asociada por controlsource, para que en la próxima captura yá exista este dato en la lista del combo. Como puedes ver que funcione como un textbox al meter datos.

Gracias y espero repuesta!!!!

OSVALDO
14 de Junio del 2003
Empezamos... 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. eso aria yo.
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.

Bueno 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.