Vba 对任何类型的字符串使用Like运算符
我们的数据库中有一个字符串列表,这给我们带来了问题。字符串的格式可以是:Vba 对任何类型的字符串使用Like运算符,vba,ms-access,Vba,Ms Access,我们的数据库中有一个字符串列表,这给我们带来了问题。字符串的格式可以是: (GS)-23 West35 West模板在绩效中“用于分数” 书籍装帧和约瑟芬的免费赠品 旅行预订 -WestBrokes迄今为止 我们一直在使用: Dim rs As DAO.Recordset Dim strAssignment As String Set rs = CurrentDb.OpenRecordset("SELECT TOP 1 AssgingmentType FROM tblMain WHER
(GS)-23 West35
West模板在绩效中“用于分数”
书籍装帧和约瑟芬的免费赠品
旅行预订
-WestBrokes迄今为止
我们一直在使用:
Dim rs As DAO.Recordset
Dim strAssignment As String
Set rs = CurrentDb.OpenRecordset("SELECT TOP 1 AssgingmentType FROM tblMain WHERE JobDescription Like
'*" & Me.txtJobDescription.Value & "*'")`
If IsNull(DLookup("[Category]", "tblMain", "JobDescription Like '*" &
Me.txtJobDescription.Value & "*'")) Then
Me.txtAssignmentType.Value = ""
Me.txtAssignmentType.SetFocus
Exit Sub
Else
strAssignment = rs.Fields("AssgingmentType").Value
Me.txtAssignmentType.Value = strAssignment
End If
上述代码适用于其他字符串,但不适用于那些涉及使用撇号的字符串,即West模板“用于分数”的性能
和
书籍装订和约瑟芬的免费赠品
会引发错误设置rs=…
。
我的问题是,如何处理行Set rs=…
和DLookup
函数中撇号的使用
谢谢您的时间。您可以将单引号替换为双引号,并可能减少到(避免在表中进行第二次查找):
Dim rs作为DAO.Recordset
作为字符串的Dim strAssignment
Set rs=CurrentDb.OpenRecordset(“从tblMain中选择TOP 1 AssignmentType,类别,其中JobDescription类似于“*”&替换(Me.txtJobDescription.Value“”,“”)&“*”)
Me.txtAssignmentType.Value=Null
如果rs.RecordCount>0,则
如果不是IsNull(rs!Category.Value),则
strAssignment=rs.Fields(“AssignmentType”).Value
Me.txtAssignmentType.Value=strAssignment
如果结束
如果结束
如果IsNull(Me.txtAssignmentType.Value),则
Me.txtAssignmentType.SetFocus
如果结束
您是否尝试使用其他库?我是说ADODB.recordset还是只记录集?Dim rs作为ADODB.Recordset(库Microsoft脚本运行时)。@R35P3K7否,在本例中,我不知道ADODB比DAO有什么优势。replace函数在Select
语句中起作用。但是,如果rs
中确实没有记录,则If
条件将失败。Replace
函数似乎在Select
语句和DLookUp
上都运行良好。你介意编辑一下吗,这样我就可以标记为完成了?非常感谢。当然但我仍然认为您应该避免在表中重复查找。请看编辑,这样更好。当我可以使用RecordCount
属性时,确实不需要使用DLookUp
。谢谢你,祝你身体健康。