MS Access форма для редактирования конкретной записи из формы, предоставляя ввод через текстовое поле - PullRequest
1 голос
/ 15 января 2012

Может кто-нибудь, пожалуйста, помогите мне найти конкретную запись. Редактировать через MS Access Forms

У меня есть Frmfind форма, где у меня есть один заполненный "тикет #" - это текстовое поле ввода другая поданная была кнопка "найти"

Когда я ввожу билет #, который является первичным ключом для моей таблицы. Мне нужно получить конкретную заявку # запись должна быть открыта в режиме FormEdit с использованием кода VBA ...

Итак, у меня есть другая форма "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 Ответ

1 голос
/ 15 января 2012

Вы можете использовать этот код:

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

Так что здесь достаточно любого из этих способов.

...