none
Combobox desde access con 2 condiciones RRS feed

  • 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)
    miércoles, 21 de enero de 2009 11:47

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!!!

    miércoles, 21 de enero de 2009 13:54
  • Leonardo, hiciste alguna modificación al código?

    Saludos y gracias!

     

    miércoles, 21 de enero de 2009 13:59
  •  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!

     

    miércoles, 21 de enero de 2009 14:02
  • Lo siento... estoy nuevo usando estos foros y pulsé Enter cuando no debía

     

    miércoles, 21 de enero de 2009 14:05
  • Si, eso es lo raro, no hay ningun caracter invalido y tampoco muestra error, simplemente de desplega el combo sin valores. Probé la misma consulta forzando el valor del combo y funciona ok, o sea, por alguna razon no lo resuelve

    Gracias!!!

    miércoles, 21 de enero de 2009 14:06
  • 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!

     

    jueves, 22 de enero de 2009 1:16