Cargar ComboBox con datos desde Access

Charles
30 de Marzo del 2004
Hola a todos, estoy aprendiendo a programa en VB. Necesito cargar unos ComboBox con datos obtenidos desde unas tablas de access. Por ejemplo. La tabla en cuestión tiene un campo con el nombre "numerotienda".
Lo lógico será hacerlo con un bucle, un for ... next por ejemplo. Cuál sería la sentencia adecuada para al momento de cargar el formulario se carguen también estos datos en uno de los ComboBox?

Gracias por vuestra ayuda...

pana_ir
30 de Marzo del 2004
yo soy programador junior e hice mi propia funcion
aqui te dejo el codigo

Function LlenarCombo(cnnConexion As ADODB.Connection, cboLlenar As ComboBox, strTabla As String, strCampoList As String, strCampoItem As String, Optional CondicionValor As String = "", Optional CampoBuscar As String = "", Optional TipoBuscar As String = "Numero") As Long
'Esta función se encarga que completar el combo cuyo nombre recibe como parametro.
'Lo completa con los datos que se encuentran en la tabla (cuyo nombre tambien recive como parametro).
'Usando los campos referidos en el parametro para obtener la información deseada. La función devuelva
'la cantidad de registros almacenados ahora en el combo.
'cnnconexio = Conexion a la base de datos.
'cboLlenar = Contiene todos los clientes.
'strTabla = Tabla perteneciente a la base de datos de la cual se recuperan los nombres de los clientes.
'strCampoList =
'CampoBuscar= Se llena este valor y el de CondicionValor cuando se desea agregar al combo algunos campos en especial agregando una condicion a la instruccion sql
'CondicionValor= el valor que tiene que tener el campo
'CampoBuscar= El campo donde se preguntara si response a la condicion
Dim CantRegistros As Long
Dim rs As New ADODB.Recordset
Dim sql As String
If CondicionValor <> "" Then
If TipoBuscar = "Numero" Then
sql = "SELECT * FROM " & strTabla & " WHERE " & CampoBuscar & " = " & CondicionValor
Else
sql = "SELECT * FROM " & strTabla & " WHERE " & CampoBuscar & " LIKE '" & CondicionValor & "%'"
End If
rs.Open sql, cnnConexion, adOpenForwardOnly
Else
rs.Open strTabla, cnnConexion, adOpenForwardOnly
End If
CantRegistros = 0
cboLlenar.Clear
While Not rs.EOF
cboLlenar.AddItem (rs.Fields(strCampoList))
cboLlenar.ItemData(cboLlenar.NewIndex) = rs.Fields(strCampoItem)
rs.MoveNext
CantRegistros = CantRegistros + 1
Wend
LlenarCombo = CantRegistros
rs.Close
End Function

Andres Guerrero
30 de Marzo del 2004
Private Sub Form_Load()
Dim cmdSql As String

Combo1.Clear
cmdSql = "select * from Delitos"

rsCat.Open cmdSql, conexion

While Not rsCat.EOF
Combo1.AddItem (rsCat(0))
rsCat.MoveNext
Wend
Set rsCat = Nothing
'conexion.Close
End Sub


diegoneto
30 de Marzo del 2004
Aqui te tengo una opcion diferente:

Private Sub 'Control'_'Evento'( )
While not Data1.RecordSet.EOF
A$ = Data1.RecordSet!'Campo'
Combo1.AddItem A$
Data1.RecordSet.MoveNext
Data1.Refresh
Wend
End Sub

Para que este procedimiento funcione, nececitas hacer una conexion a tu base de datos usando un Data control

Private Sub Form_Load ( )
Data1.DataBaseName = App.Path + "\'Baseddatos.extencion"
End Sub

La propiedad RecordSource del data control debe ser igual al nombre de la tabla, y los controles en los que veras los datos (textbox por ejemplo) los debes vincular al data control y al campo que quieres que muestren.