有人可以帮我找到这个查找特定记录通过MS访问表单编辑
我有 Frmfind 表单,我有一个提交“ticket#”是输入文本框 另一个提交的按钮是“查找”
当我输入票证#时,它是我桌子的主键。我需要获取特定的票证#记录应该使用VBA代码在FormEdit模式下打开...
所以我有另一种形式的“frmEdit”特定记录,必须从frmfind调用 - >具体投入..
注意:Ticket#是我的表格中的列,这是主要的票据#。
代码:
Option Compare Database
Private Sub find_Click()
If IsNull(Me.Text79) Or Me.Text79 = "" Then
MsgBox "You must enter a Ticket #", vbOKOnly, "Required Data"
Me.Text79.SetFocus
Exit Sub
End If
If [Ticket#] = Me.Text79.Value Then
MsgBox "Record found"
DoCmd.Close
DoCmd.OpenForm "frmEdit"
Else
MsgBox "not matching record"
Me.Text79.SetFocus
End If
End Sub
Private Sub Form_Open(cancel As Integer)
'On open set focus to text box
Me.Text79.SetFocus
End Sub
答案 0 :(得分:1)
您可以使用此代码:
Private Sub Command112_Click()
Me.txtSeach.SetFocus
On Error Resume Next
DoCmd.OpenForm "frmEdit", , , "TicketNumber = '" & Nz(Me.text79, "") & "'"
End Sub
请注意,如果TicketNumber实际上是一个数字列而不是文本,那么删除单引号并使用它:
DoCmd.OpenForm "aa", , , "TicketNumber = " & Nz(Me.text79, "")
然后,对于您的消息,只需将该代码放在具有取消的表单on-open事件中:
例如:
Private Sub Form_Open(Cancel As Integer)
If IsNull(Me!TicketNumberID) Then
MsgBox "Please enter a valid Ticket #", vbOKOnly, "Required Data"
Cancel = True
End If
End Sub
以上假设您的搜索栏是门票号码。 您还可以使用dlookup(),甚至dcount()。我认为上面的代码较少,但是:
Dim strWhere As String
strWhere = "TicketNumber = " & Me.text79
If DCount("*", "tblBookings", strWhere) > 0 Then
code for Record found goes here
Else
code reocrd not found code here
End If
所以无论哪种方式都足够了。