MS Access 2013 Dlookup字符串标准问题

时间:2017-02-08 22:28:27

标签: ms-access access-vba

看来这个问题应该有一个相当简单的解决方案。尝试运行dlookup for ID时,在使用RequestNum字符串时返回null值。 RequestNum只是一个自动编号。 RequestNum会写入自己打开的弹出窗体。此外,如果我用字段中的实际数字替换RequestNum,我得到所需的返回结果。我能在网上找到的唯一帮助就是大多数人没有使用'" & stringhere & "',尽管我很明显。有任何想法吗?如果需要,我很乐意提供任何其他细节。提前谢谢!

Private Sub lst_AdminDate1_DblClick(Cancel As Integer)
    Dim IDx As String
    Dim RequestNum As String
    DoCmd.OpenForm "Administrative_LeaveCalendar_Detail"
    RequestNum = Me.lst_AdminDate1.Column(2)
    IDx = DLookup("[ID]", "TimeOffCalendar", "[RequestNumber] = '" & RequestNum & "'")
    [Forms]![Administrative_LeaveCalendar_Detail]![txtAdminDateDetail_RN] = RequestNum
    [Forms]![Administrative_LeaveCalendar_Detail]![txtAdminDateDetail_ID] = IDx
    End Sub

1 个答案:

答案 0 :(得分:1)

可能让您感到困惑的是,即使值是数字,列表框也总是返回字符串,并且应该这样使用。此外,DLookup可能会返回 Null

因此,如果[RequestNumber]是Long(应该是):

Private Sub lst_AdminDate1_DblClick(Cancel As Integer)

    Dim IDx As Variant
    Dim RequestNum As String

    DoCmd.OpenForm "Administrative_LeaveCalendar_Detail"
    RequestNum = Me.lst_AdminDate1.Column(2)
    IDx = DLookup("[ID]", "TimeOffCalendar", "[RequestNumber] = " & RequestNum & "")
    [Forms]![Administrative_LeaveCalendar_Detail]![txtAdminDateDetail_RN] = RequestNum
    [Forms]![Administrative_LeaveCalendar_Detail]![txtAdminDateDetail_ID] = IDx

End Sub