新西兰使用无效无效

时间:2013-01-08 03:59:10

标签: ms-access ms-access-2010

我有一个在OnOpen事件上打开的表单。部分事件包含以下代码:

nid = Val(DMax("id2", "claims", "yr =" & yr) + 1)
nid = Val(Nz([nid], 1))

但是,运行时出现“无效使用空”错误。 有什么想法吗?

以下编辑 这是完整的代码:

Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Dim lngID As Long
Dim rs As Object

Set rs = Me.Recordset.Clone
lngID = Val(Me.OpenArgs)
rs.FindFirst "[ID] = " & lngID
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End If
Me.LOGID.SetFocus

'Display Suggested ID Numbers
Dim yr As Long
Dim nid As Long

yr = Format(Date, "yy")
nid = Val(DMax("id2", "claims", "yr =" & yr) + 1)
nid = Val(Nz([nid], 1))
Me.SugID = yr & "-" & nid

End Sub

1 个答案:

答案 0 :(得分:3)

仔细检查DMax表达式返回的值。如果没有符合条件选项("yr =" & yr)的行,则DMax将返回Null。或者,如果符合条件的所有行中id2为空,则DMax将返回Null。

如果DMax表达式返回Null,则Val()表达式等效于此:

Val(Null + 1)

但Null + 1会产生Null,因此这与要求Val(Null)触发错误#94,'无效使用Null'相同。

我不确定你想要什么。如果claims.id2是数字数据类型,那么这可能会起作用:

nid = Nz(DMax("id2", "claims", "yr =" & yr), 0) + 1