Filtrar datos en los campos de texto del Microsoft Access

David, perdona por no haberte calificado antes, ya lo he echo, me ha servido de bastante.
De todas formas sigo sin poder filtrar por lo dos campos siendo los dos campos de texto. Lo he probado como tu me dijiste y access, me dice lo mismo, "el tipo no coincide", te mando como lo tengo puesto(Id_Proyecto y Nom_Técnico son los dos campos de texto):
Private Sub PagosRedacción_Click()
On Error GoTo Err_PagosRedacción_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "PagosRedacción"
stLinkCriteria = "Nom_Técnico=" & "'" & CStr(Me.Nom_Técnico) & "'" And "Id_Proyecto=" & CStr(Me.Id_Proyecto)
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_PagosRedacción_Click:
Exit Sub
Err_PagosRedacción_Click:
MsgBox Err.Description
Resume Exit_PagosRedacción_Click
End Sub

1 respuesta

Respuesta
1
Otra vez:
Efectivamente, hay dos errores en tu expresión "stLinkCriteria":
1. El AND se encuentra fuera de la cadena y debería estar dentro.
2. En Id_Proyecto no estás poniendo apostrofes ('), así que no se toma como una cadena.
Para que la expresión sea correcta debería estar así:
"Nom_Técnico='algo' AND Id_Proyecto='algo'"
y tu expresión actualmente se encuentra así:
"Nom_Técnico='algo'" AND "Id_Proyecto=algo"
Observa que estás cerrando las comillas (") antes del AND cuando debería ser hasta el final de la expresión, eso hace que en lugar de ser una expresión de texto se convierta en una expresión booleana, y el resultado lo estás dejando en stLinkCriteria, que es de texto, por tanto SI tenemos un problema de tipos de datos.
Sustituye tu expresión por esta otra y tu problema quedará resuelto:
stLinkCriteria = "Nom_Técnico='" & CStr(Me.Nom_Técnico) & "' And Id_Proyecto='" & CStr(Me.Id_Proyecto) & "'"
Si todavía te da problemas, es probable que se deba al acento de "Técnico", si es así, sólo encierra todos los campos entre corchetes de esta forma:
stLinkCriteria = "[Nom_Técnico]='" & CStr([Me].[Nom_Técnico]) & "' And [Id_Proyecto]='" & CStr([Me].[Id_Proyecto]) & "'"
Ahora sí.
David, lo hemos conseguido!
Con la repuesta que me diste y variando unas cosillas lo he conseguido ya, quería agradecerte tu ayuda, puesto que ha sido muy buena. Muchas gracias, como recompensa te invitaría a tomar algo, pero como no puede ser te regalo una valoración excelente. Un saludo de Jose.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas