Fritekstsøgning i popup formular
HejFørst en indledning:
Den indbyggede søgefunktion i access97 fungere, men er efter min mening ikke så brugervenlig, man skal feks. huske at bruge diverse jokertegn hvis man ikke lige ved havd man søger efter e.t.c.
Det jeg kunne tænke mig var:
Jeg har en fortløbende formular som altid vises i dataarkvisning, formularen har forskellige felter som helt naturligt for data fra en tabel.
Når jeg står i dataarkformularen vil jeg gerne åbne en popupformular, på denne formular har jeg tilføjet en ubundet tekstboks som jeg kalder \"Criteria\", der er ydermer to knapper \"Find\" og \"Find næste\".
Hvis jeg feks. skriver \"amager\" i den ubunde tekstboks, og klikker \"find\" skal søgningen så vise mig den første post der opfylder det jeg tastet. Hvis så søgningen returnerer en post hvor der i et evt. adressefelt står \"amagerbrogade\" og jeg så klikker på \"find næste\", skal søgningen returnere næste post feks. Amagerland e.t.c. Hvis søgningen ikke giver resultat skal der vises en meddelse (msgBox).
Ideen er at søgefunktionen skal søge alle felter igennem i dataarket.
Jeg har tidligere arbejdet men en ligende søgefunktion på en formular der ikke vises som dataark, men som alm. formular, og det virker fint, men her er feltet criteria sat på formularen som rent faktisk indeholder posterne, men det kan man jo ikke på dataark.
findes der en løsning på dette er der mange point at tjene. Nedenstående kode virker fint på en alm. formular, men som sagt er Tekstboksen \"criteria\" tilføjet den alm formular. Håber det er nogenlunde klart hvad jeg ønsker. *SSS*
\'Nedenstående kode søger efter en bestemt post i en formular\'
\'det vigtigt at indsætte et ubundet kontrolelement i formularen\'
\'eks. søger på fire felter i en formular\'
\'koden skal indsættes på en kommandoknap\'
Private Sub Find_Click()
On Error GoTo Err_Find_Click
Dim rst As DAO.Recordset
Dim strSearchName As String
[Find næste].Enabled = True
If IsNull(Me![Criteria]) Or (Me![Criteria] = \"\") Then
Beep
Me![Criteria].SetFocus
Else
Set rst = Me.RecordsetClone
strSearchName = Me!Criteria
rst.FindFirst \"[BookingNr] like \'*\" & strSearchName & \"*\'\"
Me![BookingNr].SetFocus
If rst.NoMatch Then
rst.FindFirst \"[Kundens navn] like \'*\" & strSearchName & \"*\'\"
Me![Kundens navn].SetFocus
If rst.NoMatch Then
rst.FindFirst \"[Telf1] like \'*\" & strSearchName & \"*\'\"
Me![Telf1].SetFocus
If rst.NoMatch Then
rst.FindFirst \"[dato] like \'*\" & strSearchName & \"*\'\"
Me![Dato].SetFocus
If rst.NoMatch Then
MsgBox \"Søgningen gav intet resultat\", vbQuestion, \"Søgning\"
DoCmd.GoToControl \"Criteria\"
End If
End If
End If
End If
End If
If Not rst.NoMatch Then Me.Bookmark = rst.Bookmark
rst.Close
Exit_Find_Click:
Exit Sub
Err_Find_Click:
MsgBox \"Der skal indtastet mindst et tegn i den hvide boks\", vbQuestion, \"Søgning\"
Resume Exit_Find_Click
End Sub
