Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cargar campos en un combobox vb6.0

Estas en el tema de Cargar campos en un combobox vb6.0 en el foro de Visual Basic clásico en Foros del Web. hola uso el programa visual basic 6.0 con base de datos access y tipo de coneccion (ADO = ActiveX Data Objects) La base de datos ...
  #1 (permalink)  
Antiguo 02/08/2008, 11:21
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 9 meses
Puntos: 6
Cargar campos en un combobox vb6.0

hola uso el programa visual basic 6.0 con base de datos access y tipo de coneccion (ADO = ActiveX Data Objects)

La base de datos de llamas: datos
La tabla: personas
Campo: nombres

La idea es que cargue el campo "nombres" en el combo1



Codigo:

Option Explicit

Public cn As ADODB.Connection
Public rst As ADODB.Recordset

Sub Conectar()

' Crea una nueva conexión y un recordset
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")

rst.CursorLocation = adUseClient
' abre la base de datos
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\datos.mdb" & ";Persist Security Info=False"

End Sub

Sub Desconectar()
rst.Close
cn.Close

Set rst = Nothing
Set cn = Nothing
End Sub

' A partir desde aqui no funciona el codigo
Private Sub Form_Load()

Call Conectar

' abre el recordset
rst.Open "Select * from empleados, cn, adOpenStatic, adLockOptimistic"

' Muestra los datos en el FlexGrid
Set Combo1.DataSource = rst
Set Combo1.DataMember= rst


End Sub



Saludos
  #2 (permalink)  
Antiguo 03/08/2008, 03:16
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Cargar campos en un combobox vb6.0

Modifica las comillas en esta instrucción, así:

rst.Open "Select * from empleados", cn, adOpenStatic, adLockOptimistic

y elimina estas dos líneas
Set Combo1.DataSource = rst
Set Combo1.DataMember= rst

y pon esto:

Do Until rs.EOF
Combo1.AddItem rst!nombres
Loop


  #3 (permalink)  
Antiguo 12/03/2009, 10:40
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cargar campos en un combobox vb6.0

Que tal necesito realizar lo mismo probe el ejemplo y no funciona
Do Until rst.EOF
Combo1.AddItem rst!nombres
Loop


Se cuelga el programa, seguro hace un bucle infinito algo asi, como lo soluciono
  #4 (permalink)  
Antiguo 12/03/2009, 11:30
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Cargar campos en un combobox vb6.0

Cita:
Iniciado por franko1809 Ver Mensaje
Que tal necesito realizar lo mismo probe el ejemplo y no funciona
Do Until rst.EOF
Combo1.AddItem rst!nombres
Loop


Se cuelga el programa, seguro hace un bucle infinito algo asi, como lo soluciono
Que tal, unas preguntas:

¿Has declarado y abierto el recordset?, ¿se llama rst?

¿Hay un campo de la tabla, a la que enlazaste el recordset, que se llame nombres?

Do Until rst.EOF
Combo1.AddItem rst!nombres
rst.MoveNext
Loop


Última edición por Avellaneda; 12/03/2009 a las 11:35 Razón: Faltaba MoveNext
  #5 (permalink)  
Antiguo 12/03/2009, 12:46
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cargar campos en un combobox vb6.0

gracias tio faltaba en movenext por eso colapsaba
Código:
Dim rsCargo As Recordset

Private Sub Form_Load()
Set rsCargo = New Recordset
rsCargo.Open "SELECT * FROM cargo", dbConex, adOpenStatic, adLockOptimistic
'cargamos el datagrid
Set DataGrid1.DataSource = rsCargo
DataGrid1.MarqueeStyle = 4
End Sub

Private Sub Command1_Click()
Do Until rsCargo.EOF
'Combo1.AddItem rsCargo(1)
Combo1.AddItem rsCargo!nomcargo
rsCargo.MoveNext
Loop
End Sub

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:51.