我对VBA和Access非常陌生,并且疯狂地在互联网上寻找答案,但我似乎陷入了困境。尝试在Access中进行设计时,我可能会在Excel电子表格逻辑中陷入困境。
我有两个表,REQUESTFORM和CLIENTDATABASE。请求表单具有从传入电子邮件生成的各种字段。我的意图是当来自新个人的电子邮件到达RequestForm表时ClientDatabase自动填充新的CLIENTID,并将相应的CLIENTID添加到REQUESTFORM表。 REQUESTFORM具有NEWFIRSTNAME和NEWLASTNAME字段,而CLIENTDATABASE将包含字段FIRSTNAME和LASTNAME,以保持字段名称不同。我希望CLIENTDATABASE拥有主键数据,因此我可以处理任何拼写错误。
使用DLOOKUP类似于excel的VLOOKUP,但DLOOKUP似乎只使用同一个表中的条件。在Excel中,如有必要,您可以“指向”其他表格。
所以当我在查询中尝试这个时:
NameMatch: DLookUp("[ClientID]","ClientDatabase","[FirstName]=[NewFirstName] And [LastName]=[NewLastName]")
它似乎没有工作,因为它不能识别NewFirstName,因为它不在ClientDatabase中,而是在RequestForm中。
我已经尝试在VB中编写用户定义的函数,但是我仍然遇到同样的问题,即使我将它减少到一个标准。如果我必须将名字和姓氏组合为一个全名字段,我可以使用一个标准,但仍然如此。
Public Function NameMatch(ByVal pInput As String) As String
On Error Resume Next
NameMatch = DLookup("[ClientID]", "ClientDatabase", "[FirstName] = 'pInput'")
End Function
有没有办法对用户定义的函数进行编码,将'pInput'定义为[NewFirstName]并成功查看?或者在查询中更好地编写公式?我没有得到UDF的错误,只是一个空白。我也错过了其他十几个陷阱。任何帮助表示赞赏。
Stardance
答案 0 :(得分:0)
将这些值连接到搜索条件中会是这样的:
NameMatch: DLookUp("[ClientID]","ClientDatabase","[FirstName] = '" & [NewFirstName] & "' And [LastName] = '" & [NewLastName] & "'")