如何使用Access

时间:2016-04-15 18:04:14

标签: access-vba ms-access-2013

我对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

1 个答案:

答案 0 :(得分:0)

将这些值连接到搜索条件中会是这样的:

NameMatch: DLookUp("[ClientID]","ClientDatabase","[FirstName] = '" & [NewFirstName] & "' And [LastName] = '" & [NewLastName] & "'")