来自另一个 table 的 Ms Access 2010 DMax(MS Access 找不到您的表达式中引用的字段“|1”)
Ms Access 2010 DMax from another table (MS Access cant find the field '|1' referred to in your expression)
我一直在尝试将 Dmax(如果这是正确的方法)return 列中的最大值。该窗体有一个控件,用于检查以验证在 On Change 事件中输入的值。该事件应检查另一个 table(Material PO 数据表)以获取最大值。如果文本框(PO_NUM) 中的值小于另一个table 中的最大值,则会弹出一个消息框通知该情况并撤消输入到框中。但是,我卡在了 Dmax 线上。
Private Sub PO_Num_Change()
Dim MaxNum As Long
DoCmd.OpenTable "MATERIAL PO DATASHEET"
MaxNum = DMax([MATERIAL PO DATASHEET]![PO NUMBER], [MATERIAL PO DATASHEET])
If Me.PO_Num.Value <= MaxNum Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
DoCmd.Close , "MATERIAL PO DATASHEET"
End Sub
我收到的错误是 "Runtime Error 2465: MS Access cant find the field '|1' referred to in your expression"。这个错误让我觉得可能是打错了什么什么的,但所有的字段似乎都匹配。 table 在 DoCmd 行打开(没有问题),并在 DMax 处停止。
我也试过:
MaxNum = DMax([PO NUMBER], "MATERIAL PO DATASHEET")
和
MaxNum = DMax([PO NUMBER], [MATERIAL PO DATASHEET])
感谢任何反馈,
谢谢,
迈克尔
Private Sub PO_Num_Change()
Dim MaxNum As Long
MaxNum = DMax("[PO NUMBER]", "[MATERIAL PO DATASHEET]")
If Me.PO_Num.Value <= MaxNum Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
End Sub
Dxxxx函数的所有参数都需要用引号引起来
另一种写法(没有不必要的变量)
Private Sub PO_Num_Change()
If Me.PO_Num.Value <= DMax("[PO NUMBER]", "[MATERIAL PO DATASHEET]") Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
End Sub
而且我认为这可能更简单
IF IsNull(DLookup("[PO NUMBER]", "[MATERIAL PO DATASHEET]", "[PO Number]=" & Me.PO_Num))= False Then
MsgBox "Found it"
Else
'Nothing
END if
我一直在尝试将 Dmax(如果这是正确的方法)return 列中的最大值。该窗体有一个控件,用于检查以验证在 On Change 事件中输入的值。该事件应检查另一个 table(Material PO 数据表)以获取最大值。如果文本框(PO_NUM) 中的值小于另一个table 中的最大值,则会弹出一个消息框通知该情况并撤消输入到框中。但是,我卡在了 Dmax 线上。
Private Sub PO_Num_Change()
Dim MaxNum As Long
DoCmd.OpenTable "MATERIAL PO DATASHEET"
MaxNum = DMax([MATERIAL PO DATASHEET]![PO NUMBER], [MATERIAL PO DATASHEET])
If Me.PO_Num.Value <= MaxNum Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
DoCmd.Close , "MATERIAL PO DATASHEET"
End Sub
我收到的错误是 "Runtime Error 2465: MS Access cant find the field '|1' referred to in your expression"。这个错误让我觉得可能是打错了什么什么的,但所有的字段似乎都匹配。 table 在 DoCmd 行打开(没有问题),并在 DMax 处停止。
我也试过:
MaxNum = DMax([PO NUMBER], "MATERIAL PO DATASHEET")
和
MaxNum = DMax([PO NUMBER], [MATERIAL PO DATASHEET])
感谢任何反馈,
谢谢,
迈克尔
Private Sub PO_Num_Change()
Dim MaxNum As Long
MaxNum = DMax("[PO NUMBER]", "[MATERIAL PO DATASHEET]")
If Me.PO_Num.Value <= MaxNum Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
End Sub
Dxxxx函数的所有参数都需要用引号引起来
另一种写法(没有不必要的变量)
Private Sub PO_Num_Change()
If Me.PO_Num.Value <= DMax("[PO NUMBER]", "[MATERIAL PO DATASHEET]") Then
strMsg = "This PO Exists!"
If MsgBox(strMsg, vbExclamation, "Confirm") = vbOK Then
Me.Undo
Else
Me.Undo
End If
End If
End Sub
而且我认为这可能更简单
IF IsNull(DLookup("[PO NUMBER]", "[MATERIAL PO DATASHEET]", "[PO Number]=" & Me.PO_Num))= False Then
MsgBox "Found it"
Else
'Nothing
END if