Run-Time Error '3464' Data Type Mismatch In Criteria Expression (1 Viewer)

nick.tait

Registered User.
Local time
Today, 14:12
Joined
May 25, 2009
Messages
16
Hi all
Can anyone help with this error message that keeps occuring. 'Run-Time error 3464 Data Type Mismatch In Criteria Expression.' It happens in my code below in the line highlighted in red. Thanks in advance

Option Compare Database
Option Explicit

Private Sub Custodian_History_Form_Enter()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strQuery1 As String
Dim strQuery2 As String

Dim nod As Object
Dim strNode1Text As String
Dim strNode2Text As String
Dim strVisibleText As String

Dim strMessage As String
Dim intVBMsg As Integer

Set db = CurrentDb()
strQuery1 = "select DISTINCT AssetNumber from [Asset Master]"
With Me![Custodian History Form]
Set rs = db.OpenRecordset(strQuery1) ', dbOpenForwardOnly)
Do Until rs.EOF
Debug.Print rs![AssetNumber]
strNode1Text = StrConv("Level1" & rs![AssetNumber], _
vbLowerCase)
Set nod = .Nodes.Add(Key:=strNode1Text, Text:=rs![AssetNumber])
nod.Expanded = False

strQuery2 = "select DISTINCT AssetNumber, [Asset Name] from [Asset Master] where [AssetNumber] = '" & nod.Text & "'"
Set rs2 = db.OpenRecordset(strQuery2)
Do Until rs2.EOF
strNode2Text = StrConv("Level2" & rs2![Changes In Asset], vbLowerCase)
strVisibleText = rs2!AssetNumber
'if modelname is null, will have problem
If IsNull(rs2!AssetNumber) Then
MsgBox "number is null"
strVisibleText = "No Name"
End If
Set nod = .Nodes.Add(relative:=strNode1Text, relationship:=tvwChild, _
Key:=strNode2Text, Text:=strVisibleText)
rs2.MoveNext
Loop
rs2.Close
rs.MoveNext
Loop
rs.Close
End With

End Sub
 

pbaldy

Wino Moderator
Staff member
Local time
Yesterday, 21:12
Joined
Aug 30, 2003
Messages
36,125
If the data type of AssetNumber is numeric:

strQuery2 = "select DISTINCT AssetNumber, [Asset Name] from [Asset Master] where [AssetNumber] = " & nod.Text
 

nick.tait

Registered User.
Local time
Today, 14:12
Joined
May 25, 2009
Messages
16
Thank you SOOOO much Paul
i ran it and found a few more errors which i fixed however go stuck on a line which i have had troubles with for a while. i cant seem to get it right. Its in red below.

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strQuery1 As String
Dim strQuery2 As String

Dim nod As Object
Dim strNode1Text As String
Dim strNode2Text As String
Dim strVisibleText As String
Dim strMessage As String
Dim intVBMsg As Integer

Set db = CurrentDb()
strQuery1 = "select DISTINCT AssetNumber from [Asset Master]"
With Me![Custodian History Form]
Set rs = db.OpenRecordset(strQuery1) ', dbOpenForwardOnly)
Do Until rs.EOF
Debug.Print rs![AssetNumber]
strNode1Text = StrConv("Level1" & rs![AssetNumber], _
vbLowerCase)
Set nod = .Nodes.Add(Key:=strNode1Text, Text:=rs![AssetNumber])
nod.Expanded = False

strQuery2 = "select DISTINCT AssetNumber, [Asset Name] from [Asset Master] where [AssetNumber] = " & nod.Text
Set rs2 = db.OpenRecordset(strQuery2)
Do Until rs2.EOF
strNode2Text = StrConv("Level2" & rs2![Asset Name], vbLowerCase)
strVisibleText = rs2!AssetNumber
'if modelname is null, will have problem
If IsNull(rs2!AssetNumber) Then
MsgBox "number is null"
strVisibleText = "No Name"
End If
Set nod = .Nodes.Add(relative:=strNode1Text, relationship:=tvwChild, _
Key:=strNode2Text, Text:=strVisibleText)
rs2.MoveNext
Loop
rs2.Close
rs.MoveNext
Loop
rs.Close
End With
End Sub
 

yesnaren

New member
Local time
Today, 14:12
Joined
Nov 7, 2013
Messages
1
Run-Time Error '3464' Data Type Mismatch In Criteria Expression
I am trying to run a Form to throw up a report from all other existing queries. (This database was handed over during training and not built by me). The design view shows that this field is a date/time field. Please assist.


Set rs = db.OpenRecordset("SELECT count(*) as cnt FROM qryProc_No_SupportStartDate_C")
Me!Text64 = rs!cnt
tot = tot + rs!cnt
rs.Close
Set rs = Nothing
 

Users who are viewing this thread

Top Bottom