VBA: tipo de desajuste en rs.findfirst
ms-access access-vba (1)
Tengo este código:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tblJobs", dbOpenDynaset)
rs.FindFirst "EmpNo=" & "''cbEmpNo.Value''" & " And " & "JobNo=" & "''cbJobNo.Value''"
y he estado obteniendo una discrepancia de tipos (eliminar el ''no parece ayudar, ni agregar [] alrededor de EmpNo & JobNo).
en tblJobs, tanto EmpNo como JobNo se definen como Entero largo.
cbEmpNo y cbJobNo son ComboBoxes sin fuente de control. Su fuente de fila es una consulta SQL que tira EmpNo / JobNo de tblJobs.
Examine la cadena construida por ese código. Aquí está en la ventana Inmediato:
? "EmpNo=" & "''cbEmpNo.Value''" & " And " & "JobNo=" & "''cbJobNo.Value''"
EmpNo=''cbEmpNo.Value'' And JobNo=''cbJobNo.Value''
Entonces, el código le pide a FindFirst
que encuentre la primera fila donde EmpNo es igual a la cadena cbEmpNo.Value . Pero como EmpNo es Entero largo, esa comparación desencadena el error de discrepancia de tipo. El mismo problema se aplica a JobNo .
Cree la cadena para incluir los valores de esos controles ( cbEmpNo y cbJobNo ) en lugar de sus nombres, y no incluya comillas alrededor de esos valores:
Dim strFind As String
strFind = "EmpNo=" & Me.cbEmpNo.Value & " And JobNo=" & Me.cbJobNo.Value
Debug.Print strFind '' <- view this in Immediate window; Ctrl+g will take you there
rs.FindFirst strFind