2016-04-15 53 views
0

我对VBA和Access非常陌生,并且一直在疯狂地在互联网上寻找答案,但我似乎被困在这个问题上。试图在Access中进行设计时,我可能会在Excel电子表格逻辑中陷入困境。如何在Access中的不同表格中使用DLookup标准

我有两个表,REQUESTFORM和CLIENTDATABASE。申请表格包含来自收到的电子邮件的各种字段。我的意图是让ClientDatabase在新用户的电子邮件到达RequestForm表时将自动填充新的CLIENTTID,并将相应的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 = nz(DLookup(“[ClientID]”,“ClientDatabase”,“[FirstName] ='pInput'”),DLookup(“[ClientID]”,“RequestForm”,“[FirstName] ='pInput'”) ) – Xilmiki

回答

0

这将是这样的,你concate值到搜索条件:你在哪里使用它,在形式,

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