vba ms-access access-vba type-mismatch findfirst

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