MS Access表单通过文本框提供输入来编辑表单中的特定记录

时间:2012-01-15 02:15:09

标签: ms-access vba ms-access-2007

有人可以帮我找到这个查找特定记录通过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

1 个答案:

答案 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

所以无论哪种方式都足够了。