我完全难过了。这段代码正在运行,目前正在开发一个不同的数据库,但刚刚停止在我正在处理的那个数据库上。我没有理解为什么我在标准中得到数据类型不匹配"当我单步执行代码时,填充的所有数据都是正确的错误。我在这里收到错误:FilterOn = True
。我不知道如何调试此代码或如何修复它。
以下是完整的参考代码:
Me.searchlat = TempVars("user").Value
Dim strWhere As String
Dim lngLen As Long
Const conJetDate = "\#mm\/dd\/yyyy\#"
If Not IsNull(Me.searchlat) Then
strWhere = strWhere & "([workerid] = " & Me.searchlat & " ) AND "
End If
If Not IsNull(Me.txtStartDate) Then
strWhere = strWhere & "([Dateassigned] >= " & Format(Me.txtStartDate, conJetDate) & ") AND "
End If
If Not IsNull(Me.txtEndDate) Then
strWhere = strWhere & "([Dateassigned]< " & Format(Me.txtEndDate + 1, conJetDate) & ") AND "
End If
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then
MsgBox "No criteria", vbInformation, "Nothing to do."
Else
strWhere = Left$(strWhere, lngLen)
Me.Filter = strWhere
Me.FilterOn = True
答案 0 :(得分:1)
错误本身就是标准中的数据类型不匹配
在标准中,您正在检查日期和ID ...日期格式,因为第一次看起来很好,所以最好将'
放在ID上并检查如下..
Me.searchlat = TempVars("user").Value
Dim strWhere As String
Dim lngLen As Long
Const conJetDate = "\#mm\/dd\/yyyy\#"
If Not IsNull(Me.searchlat) Then
strWhere = " ([workerid] = '" & Me.searchlat & "' ) "
End If
If Not IsNull(Me.txtStartDate) Then
strWhere = strWhere & " AND ([Dateassigned] >= " & Format(Me.txtStartDate, conJetDate) & ") "
End If
If Not IsNull(Me.txtEndDate) Then
strWhere = strWhere & " AND ([Dateassigned]< " & Format(Me.txtEndDate + 1, conJetDate) & ") "
End If
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then
MsgBox "No criteria", vbInformation, "Nothing to do."
END IF
Me.Filter = strWhere
Me.FilterOn = True