Asociar combobox a textfield

Hola a todos:
Estoy haciendo una pequeña aplicación y me he atrancado con un combobox.
Cuando cojo el foco del combo, lo relleno con los nombres que tengo en una SQLite.
Hasta aquí bien

Blockquote

if db.Connect then

TFNombreAroma1.DeleteAllRows

Dim rcar As RecordSet = db.SQLSelect(“Select nomaro from Aromas order by idaroma”)

if rcar<> nil and rcar.RecordCount > 0 Then

While not rcar.EOF
  
  TFNombreAroma1.AddRow  rcar.Field("nomaro").StringValue
  
  rcar.MoveNext
  
Wend

end if

end if

Blockquote
Ahora quiero, que un dato asociado en esa misma tabla rellene un textfield y no hay manera , alguien me puede echar una mano. Gracias

Hola,

Puedes explicar cómo quieres seleccionar el dato que tiene que aparecer en el textfield? Y qué código tienes?

Julen

EDIT: Mira el ejemplo aquí: https://documentation.xojo.com/api/deprecated/popupmenu.html#popupmenu-selectedrow
Ese código debería ir en el evento adecuado (el Change posiblemente, si entiendo bien lo que quieres hacer)

Gracias por contestar.
el ejemplo me escribe en el textfield lo que tengo seleccionado en el combo; lo que quiero es que una vez seleccionado un item en el combo, me escriba otro dato asociado a ese item y que está almacenado en la misma tabla de la base de datos, que en este caso es numérico.
Te mando una captura de pantalla y voy a seguir investigando.
Saludos

Lo siento pero con los comandos SQL no te puedo ayudar, nunca los he utilizado.

Julen

A pesar de que no tengo ni idea de SQL no me parece difícil.

Podrías pedirle a la base de datos los valores del aroma seleccionado en el comboBox que necesitas mediante SQL añadiendo un WHERE. Es decir, hacer llamadas a la base de datos cada vez que cambie el valor del ComboBox.

O podrías generar un dictionary mientras añades los aromas al combobox, teniendo como key el aroma y como value los valores que necesites en el resto de textfields en un array, por ejemplo. Para esto necesitas modificar tu comando SQL (creo, ya te he dicho que no tengo experiencia). Es decir, hacer una única llamada a la base de datos y guardar todos los datos en un dictionary.

Qué has probado hasta ahora?

He probado con el where pero me da nil, lo del diccionary tengo que estudiarlo mejor. lo he visto en ejemplos sin sql, pero la verdad es que nunca lo he usado. voy a echarle un vistazo.

ya lo he solucionado, eran las comillas finales :crazy_face:
lo pego aquí por si le sirve a alguien.
Un saludo.
Dim rcar As RecordSet = db.SQLSelect(“Select * from Aromas where nomaro=’”+TFNombreAroma1.Text+"’")

if rcar<> nil and rcar.RecordCount > 0 Then

TFAroma1tpc.Text = rcar.Field(“recaro”).StringValue

end if

Para evitarte problemas de este tipo y posibles ataques, deberias de evitar la concatenación de textos y usar PreparedStatements:
https://documentation.xojo.com/api/databases/database.html#database-prepare

No paraís de mandarme deberes :grinning:
Gracias por el consejo, le echaré un vistazo, pero es que xojo es impresionante y hay que darle un par de vueltas.