Usuario
Combobox desde access con 2 condiciones

Pregunta
-
Hola a todos, les cuento que estoy en un problema en VB6, tengo una funcion que carga los valores de un combo desde una tabla de access segun cierta condicion. Hasta ahí funciona ok con la siguiente funcion:
'****Carga el Combo de Comercializadores****
Private Sub CargarListaComercializadores()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Dim n As Integer
n = -1
cnn.ConnectionString = StrConn
cnn.Open
rst.Open "SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado'", cnn, adOpenDynamic, adLockOptimistic
If rst.EOF = False Then
rst.MoveFirst
End If
While Not rst.EOF
comboComercializador.AddItem rst.Fields("Comercializador").Value, n + 1
rst.MoveNext
Wend
Set rst = Nothing
Set cnn = N
'****FIN****
Y lo que estoy necesitando, es que ademas del filtro por 'Habilitado', me tome el valor de otro combo que tengo en el mismo form, y para mi la consulta queda así, pero al ejecutarla no me muestra valores:
SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado' AND ProvinciaPertenece = '" & comboProvincias.Text & "'"
Alguien podrá tener idea que ocurre?
Saludos y muchas gracias!!!- Cambiado Enrique M. Montejo lunes, 9 de mayo de 2011 17:03 desarrollo con VB6 (De:Lenguaje VB.NET)
Todas las respuestas
-
Jaymz-Arg Escribió: Hola a todos, les cuento que estoy en un problema en VB6, tengo una funcion que carga los valores de un combo desde una tabla de access segun cierta condicion. Hasta ahí funciona ok con la siguiente funcion:
'****Carga el Combo de Comercializadores****
Private Sub CargarListaComercializadores()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Dim n As Integer
n = -1
cnn.ConnectionString = StrConn
cnn.Open
rst.Open "SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado'", cnn, adOpenDynamic, adLockOptimistic
If rst.EOF = False Then
rst.MoveFirst
End If
While Not rst.EOF
comboComercializador.AddItem rst.Fields("Comercializador").Value, n + 1
rst.MoveNext
Wend
Set rst = Nothing
Set cnn = N
'****FIN****
Y lo que estoy necesitando, es que ademas del filtro por 'Habilitado', me tome el valor de otro combo que tengo en el mismo form, y para mi la consulta queda así, pero al ejecutarla no me muestra valores:
SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado' AND ProvinciaPertenece = '" & comboProvincias.Text & "'"
Alguien podrá tener idea que ocurre?
Saludos y muchas gracias!!! -
-
Jaymz-Arg Escribió: ...
Y lo que estoy necesitando, es que ademas del filtro por 'Habilitado', me tome el valor de otro combo que tengo en el mismo form, y para mi la consulta queda así, pero al ejecutarla no me muestra valores:
SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado' AND ProvinciaPertenece = '" & comboProvincias.Text & "'"
Alguien podrá tener idea que ocurre?
Saludos y muchas gracias!!!Hola,
No dices cuál es el problema, pero no debería haber ninguno, a menos que el valor en ComboProvincias.Text contenga algún caracter inválido (concretamente un apóstrofe, que no debería ser el caso).
Salud!
-
-
-
Hola,
Algo que hago en esos casos es, en lugar de escribir:
rst.Open "SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado'"...
es asignarle la sentencia a una cadena:
Dim s As String
s = "SELECT * FROM COMERCIALIZADORES where EstadoComercializador = 'Habilitado'"
rst.Open s,...
coloco un breakpoint en la instrucción que abre el recordset, me voy a la ventana de ejecución inmediata, escribo ? s, analizo el resultado que me devuelve el comando y si aun no veo el error, lo copio, me voy al SGBD (Access en tu caso) y lo pego en una nueva consulta.
Casi siempre descubres lo que está pasando.
Salud!