2012-01-15 30 views
1

是否有人可以幫助我在此發現通過MS Access表單特定的記錄編輯的MS Access形式通過文本框提供輸入從表單編輯特定的記錄

Frmfind形式在那裏我有一個申請「門票#」是一個文本輸入框 另一個被提交按鈕‘查找’

當我進入票#這是我的表的主鍵。我需要獲得特定的票#記錄應在FormEdit模式中使用VBA代碼打開...

所以我有特定記錄的另一種形式的「frmEdit」,它必須從frmfind稱爲 - >特定的輸入..

注意:Ticket#是我的表中的列,它主要是擁有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

如果您對VBA不熟悉,可以使用嚮導在frmEdit上放置組合框,這樣可以更容易地選擇「在我的表單上查找記錄」,因此用戶只需要選擇一個票號爲記錄出現。 – Fionnuala 2012-01-15 18:49:37

回答

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, "") 

然後,對於您的消息,只需將該代碼放置在具有取消的窗體打開事件中:

如:

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 

所以無論哪種方式應該足夠在這裏。

+0

真棒解釋。以上解決方案完美運行:-) – Krish212124 2012-01-15 20:55:01

相關問題