Вопрос VBA: добавить текстовое поле поиска в существующую форму поиска - PullRequest
0 голосов
/ 11 декабря 2010

У меня есть скрипт для поиска в табеле, теперь я хотел добавить в него второе поле с именем: txtSearchHsnr.

Почему-то код перестает работать при Huisnummer.SetFocus

Почемуэто я абсолютный новичок в VBA, но мне это нравится: D

Private Sub cmdSearch_Click()

'Dim voor postcode

    Dim strPostcode As String
    Dim strSearchPostcode As String

'Dim voor huisnummer

    Dim strHuisnummer As String
    Dim strSearchHuisnummer As String

'Check txtSearchPstCode for Null value or Nill Entry first.

If IsNull(Me![txtSearchPstCode]) Or (Me![txtSearchPstCode]) = "" Then
MsgBox "Vul a.u.b. een (geldige ie: 8932 JZ) postcode in.", vbOKOnly, "Geen of foutieve postcode!"
Me![txtSearchPstCode].SetFocus

ElseIf IsNull(Me![txtSearchHsnr]) Or (Me![txtSearchHsnr]) = "" Then
MsgBox "Vul a.u.b. een huisnummer in.", vbOKOnly, "Geen of foutief huisnummer ingevoerd!"
Me![txtSearchHsnr].SetFocus

Exit Sub
End If
'---------------------------------------------------------------

        'zoeken naar data uit veld txtSearchPstCode
        'en verivieerd dit met tabel Postcode

        DoCmd.ShowAllRecords
        DoCmd.GoToControl ("Postcode")
        DoCmd.FindRecord Me!txtSearchPstCode

        Postcode.SetFocus
        strPostcode = Postcode.Text
        txtSearchPstCode.SetFocus
        strSearchPostcode = txtSearchPstCode.Text



        'zoeken naar data uit veld txtSearchHsnr
        'en verifieer dit met tabel Huisnummer

        DoCmd.ShowAllRecords
        DoCmd.GoToControl ("Huisnummer")
        DoCmd.FindRecord Me!txtSearchHsnr

        Huisnummer.SetFocus
        strHuisnummer = Huisnummer.Text
        txtSearchHsnr.SetFocus
        strSearchHuisnummer = txtSearchHsnr.Text


        'Wanneer er een overeenkomende record is in strPostcode en laat messagebox zien
        'en leeg zoek data in text veld

        If strPostcode = strSearchPostcode Then
        MsgBox "Klant gevonden nl.: " & strSearchPostcode & " " & strSearchHuisnummer, , "Klant gevonden"
        Achternaam.SetFocus
        txtSearchPstCode = ""
        txtSearchHsnr = ""

    'Wanneer Postcode niet is gevonden zet focus terug naar txtSearchPstCode en laat messagebox zien
        Else
            MsgBox "Helaas, postcode: " & strSearchPostcode & strSearchHuisnummer & " niet gevonden. Is het een nieuwe klant?", , "Klant niet gevonden in bestaande klanten."
            txtSearchPstCode.SetFocus
    End If
End Sub

1 Ответ

0 голосов
/ 11 декабря 2010

Если вы не прочитаете весь код, если элемент управления уже имеет фокус, вы получите ошибку, если попытаетесь снова установить фокус. Вы можете проверить активный контроль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...