Ayuda con consulta SQL

Hola que tal raulh76. Espero que me puedas ayudar con esta consulta, el problema es que necesito hacer una consulta por numero de cheque y por banco al mismo tiempo para poder imprimir el cheque, pensé en hacer un recordset con las dos consultas pero me manda un error, espero que me puedas ayudar.
Dim rsFicha As ADODB.Recordset
Dim rsbanco As ADODB.Recordset
    Set rsFicha = New Recordset
    Set rsbanco = New Recordset
    Dim numcheque As Integer
    Dim banco As String
    If flex.Row <= 0 Then
       MsgBox "No hay ningún registro seleccionado para imprimir", vbExclamation, "Imprimir ficha"
       Exit Sub
    End If
    numcheque = flex.TextMatrix(flex.Row, 0)
    banco = flex.TextMatrix(flex.Row, 4)
    rsFicha.Open "Select * FROM cheques Where numcheque = " & numcheque And "& banco like '" & banco & "'", cnn, adOpenStatic, adLockReadOnly
    If rsFicha.RecordCount > 0 Then
       Set DataReport1.DataSource = rsFicha
       With DataReport1
            DataReport1.Show
        End With
    Else
       MsgBox "No hay registro para imprimir ", vbInformation
    End If
El error que me manda dice:
Error '13' en tiempo de ejecución:
No coinciden los tipos

Gracias. Ojala me puedas ayudar

1 Respuesta

Respuesta
1
La sentencia SQL debe ser así:
"Select * FROM cheques Where numcheque = '" & numcheque & "' And banco like '" & banco & "'"
Hola de nuevo. Ya cambie la sentencia SQL por la que pusiste, pero sigue mandando el mismo error, ¿no crees que sea porque numcheque es de tipo integer y banco es de tipo string?.
Gracias por tu apoyo.
Saludos.
Si numcheque es de tipo integer, entonces quítale las comillas simples a esta variable:
Mira la sentencia quedo así:
rsFicha.Open "Select * FROM cheques Where numcheque = " & numcheque & " And banco like '" & banco & "'"
Pero ahora me manda otro error:
Error '3709' en tiempo de ejecución:
No se puede utilizar la conexión para realizar esta operación. Esta cerrada o no es valida en este contexto.
Te comento que la sentencia SQL funciona perfectamente utilizando solo numcheque.
Saludos
Ok prueba de la siguiente forma:
"select * from cheques where banco like '" & banco & "' and numcheque = " & numcheque
:'( Sigue saliendo el mismo error :( Crees que se pueda arreglar convirtiendo el dato numcheque que es de tipo integer a string para poder regresar a la sentencia:
"Select * FROM cheques Where numcheque = '" & numcheque & "' And banco like '" & banco & "'"
Que ahí el error era que no coincidían los tipos.
Digo, es una sugerencia aunque aquí tu eres el experto.
Gracias por tu apoyo.
Saludos
Si no te causa problemas con el sistema y a ti en lo personal no te importa, puedes cambiar la variable a string, así te funcionara sin problemas.
Gracias raulh76 ya resolví el problema, al parecer era un problema con la conexión a la base de datos. Te dejo el código por si te sirve alguna vez.
rsFicha.Open "Select * FROM cheques Where numcheque = " & numcheque & " And banco like '" & banco & "'", cnn, adOpenStatic, adLockReadOnly
De todas maneras gracias por tu interés y tu apoyo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas