Domingo 22 de Diciembre de 2024, 17:35
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
»
Visual Basic para principiantes
(Moderador:
F_Tanori
) »
Combo
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Combo (Leído 2895 veces)
Llaneta
Nuevo Miembro
Mensajes: 6
Combo
«
en:
Viernes 22 de Diciembre de 2006, 12:24 »
0
Hola, buenos dias...
Estoy intentando llenar un combo mediante un recordset que recupera una consulta de una tabla, pero me da error, les pongo el codigo a ver si ustedes lo encuentran.
Private Sub Cuadro_combinado41_GotFocus()
Dim Csql As String
abre As ADODB.Recordset
Csql = "Select Ejercicio, iva1, iva2, iva3, iva4, iva5 From IVAINICIO" _
& "Where Ejercicio= '" & Year(Now()) & "'"
Set abre = New ADODB.Recordset
abre.Open Csql, CurrentProjectConnection, adOpenKeyset, adLockReadOnly, adCmdText
If Not (abre.EOF And abre.BOF) Then
MsgBox " Ha encontrado algo "
EJERCICIO = abre!EJERCICIO
iva1 = abre!iva1
iva2 = abre!iva2
iva3 = abre!iva3
iva4 = abre!iva4
iva5 = abre!iva5
End If
Set abre = Nothing
End Sub
El error que me da es: La instrucción no es válida fuera del bloque Type
Muchas grácias
Tweet
luciano2
Miembro activo
Mensajes: 71
Re: Combo
«
Respuesta #1 en:
Viernes 22 de Diciembre de 2006, 17:09 »
0
El error está acá: -->> abre As ADODB.Recordset
Te faltó el Dim ...
Dim abre As ADODB.Recordset
saludos
-----------------------------
Recursos Visual basic
Llaneta
Nuevo Miembro
Mensajes: 6
Re: Combo
«
Respuesta #2 en:
Viernes 22 de Diciembre de 2006, 17:42 »
0
Gracias luciano, eso ya lo solucione, ahora no se como pasar los registros al combo
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Combo
«
Respuesta #3 en:
Viernes 22 de Diciembre de 2006, 17:44 »
0
Además la consulta no va a funcionar. Le falta un espacio delante del "Where".
Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
Llaneta
Nuevo Miembro
Mensajes: 6
Re: Combo
«
Respuesta #4 en:
Viernes 22 de Diciembre de 2006, 18:29 »
0
Cita de: "Angel_K_ido"
Además la consulta no va a funcionar. Le falta un espacio delante del "Where".
Saludos
eso también lo habia detectado y solucionado, gracias.La select me funciona lo q no funciona es lo q les comente anteriormente de pasar los registros del recordset a un combo, es la primera vez que lo hago y voy un poco pez.
Gracias y Feliz Navidad
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Combo
«
Respuesta #5 en:
Viernes 22 de Diciembre de 2006, 19:24 »
0
Te referís a esto?.......
Código: Text
Combo1.AddItem abre!iva1, 0
Combo1.AddItem abre!iva2, 1
Combo1.AddItem abre!iva3, 2
Combo1.AddItem abre!iva4, 3
Combo1.AddItem abre!iva5, 3
Combo1.ListIndex = 0
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
Llaneta
Nuevo Miembro
Mensajes: 6
Re: Combo
«
Respuesta #6 en:
Viernes 22 de Diciembre de 2006, 19:31 »
0
eso es lo que puse yo, pero cuando termino de poner , 0 me sale un mensaje de error diciendome Se esperaba fin de instruccion
Gracias
Llaneta
Nuevo Miembro
Mensajes: 6
Re: Combo
«
Respuesta #7 en:
Viernes 22 de Diciembre de 2006, 19:36 »
0
Ahora ya no me saca error pero no me muestra nada en el combo
Gracias
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Combo
«
Respuesta #8 en:
Viernes 22 de Diciembre de 2006, 20:06 »
0
Como se llama el ComboBox? En el ejemplo que te di se llama Combo1.
Hacé un Paso a Paso y fijate el valor que toman las variables, seguramente no estas extrayendo bien los datos de la DB.
Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
mamex
Miembro activo
Mensajes: 77
Nacionalidad:
Re: Combo
«
Respuesta #9 en:
Viernes 22 de Diciembre de 2006, 21:03 »
0
Mira, para llenar combos, uso el método siguiente: primero creo un recordset con una consulta sobre una base de datos de access, despues mando a llamar a la funcion llenarComboRs() y le mando el recordset creado anteriormente, y después el combo al que le voy a meter los datos. Espero y te sirva.
Para que el código te sirva, deberas agregar la siguiente referencia a tu proyecto:
Microsoft Activex Data Objects 2.5 Library
Las funciones que debes agregar:
Código: Text
'Crea una consulta y la regresa como un recordset
Public Function crearConsulta(baseDeDatos As String, sql As String) As Recordset
Dim bd As Connection, rs As Recordset
Set bd = New Connection
Set rs = New Recordset
'Genera la cadena de conexión
bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
baseDeDatos & ";Persist Security Info=False"
'Abre la base de datos
bd.Open
'Se la asigna al recordset
rs.Open sql, bd, adOpenKeyset, adLockOptimistic
If rs.recordCount > 0 Then _
rs.MoveFirst
'Regresa el recordset
Set crearConsulta = rs
End Function
'Llena un comboBox con un campo de un recordset
Public Sub LlenarComboRs(rs As Recordset, Campo As Integer, combo As Object)
Dim aux As Long
'Limpia el combo
combo.Clear
'Si esta situado en un registro
If rs.recordCount > 0 Then
With rs
'Guarda la posicion en la k esta el recordset
aux = .AbsolutePosition
'Se mueve al primero para ir uno por uno hasta el final
.MoveFirst
While (Not .EOF)
'Agrega el elemento al combo y pasa al siguiente
combo.AddItem .Fields(Campo)
.MoveNext
Wend
'Se regresa al primero, y despues al que estaba cuando se llamó la función
.MoveFirst
.Move aux - 1
End With
End If
combo.Text = "Seleccione"
End Sub
'Y en el evento gotFocus (aunque yo te recomiendo en el evento dropDown)
'mandas a llamar al recordset, y despues a llenarCombo
Código: Text
Private Sub Combo1_GotFocus()
Dim rs As Recordset
'Este es un ejemplo, debes cambiar el nombre de tu BD y tu consulta
Set rs = crearConsulta("C:\Consultorio\systech.mdb", "Select nombre from pacientes")
'El segundo parametro (en este caso 0) es el numero del campo del recordset
LlenarComboRs rs, 0, Combo1
End Sub
Llaneta
Nuevo Miembro
Mensajes: 6
Re: Combo
«
Respuesta #10 en:
Martes 26 de Diciembre de 2006, 11:06 »
0
Gracias mamex, pero tengo una pregunta, el codigo lo copie en un modulo y el otro en el gotfocus, pero como agrego la referencia a mi proyecto.
Gracias.
mamex
Miembro activo
Mensajes: 77
Nacionalidad:
Re: Combo
«
Respuesta #11 en:
Martes 26 de Diciembre de 2006, 21:28 »
0
Que tal Llaneta, la referencia la agregas desde el menú Proyecto -> Referencias. Buscas la Referencia Microsoft Activex Data Objects 2.5 Library, u otra versión. La palomeas, y le das aceptar.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
»
Visual Basic para principiantes
(Moderador:
F_Tanori
) »
Combo