看来这个问题应该有一个相当简单的解决方案。尝试运行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
答案 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