Creamos un módulo, donde se trabaja con la base de datos:
-->
'
Gambas module file
'Variables
que se usan en el módulo
Private
hconn As
New
Connection
Private
hresul As
Result
Private
Function
ConectarBase() As
Connection
'
hace la conexion a la base de datos
'
Nota:
'
Uso una base existente o la copio a la carpeta temporal /tmp
If
Not
Exist("/tmp/Empresas")
Then
Copy
"Empresas"
To
"/tmp/Empresas"
Endif
hconn.Name
=
"/tmp/Empresas"
hconn.host
=
"/tmp/Empresas"
hconn.Type
=
"Sqlite3"
hconn.open
Return
hconn
End
'Funcion
que le pasas el combobox del formulario, para que se rellene
Public
Sub
listado(lista As
ComboBox)
Dim
Clave As
String
'conectamos
a la base de datos
hconn =
ConectarBase()
'consulta
sql: obtener los valores del campo "local" de la tabla
"Datos", sin duplicarlos, ordenados Ascendentemente
hresul =
hconn.Exec("Select
DISTINCT Local from Datos order by Local ASC")
'recorro
todo el resultado que se han producido en la consulta, y cargo los
datos en el comboBox
Do
While
hresul.Available
Clave =
hresul["Local"]
'"Local"
es el nombre del campo, que queremos leer sus datos
lista.Add(Clave)
hresul.MoveNext()
Loop
End
En el formulario principal, creamos un combobox1, y una etiqueta donde se mostrara el resultado del valor elegido del combobox1.
El código fuente:
-->
'
Gambas class file
Public
Sub
Form_Open()
'centro
el formulario
Me.center
'cargo
los datos en el combobox1
ModuleBaseDatos.listado(ComboBox1)
End
Public
Sub
ComboBox1_Leave()
'cuando
el cursor abandona el ComboBox, actualiza el valor...
Label2.text
=
ComboBox1.Text
End
Descarga del Código: Enlace
Nota1:
El mismo programa contiene la base de datos "Empresas" y se encarga de copiarla a la carpeta temporal "/tmp" para trabajar con ella.
Nota2:
En vez de usar el bucle Do While, se puede usar el For Each:
for
each
hresul
lista.add(
varResult!Local)
next
como hago para rellenar un solo combo con dos campos por ejemplo
ResponderEliminarun combo que aparezca el campo nombre y apellido ya que solo tengo para un solo campo como muestras en el ejemplo
Kenedy Cruz Miranda: Create una vista en la base de datos, donde concatenes los dos campos.
ResponderEliminarMirate este enlace: https://forum.openoffice.org/es/forum/viewtopic.php?f=32&t=2481