Implementere en søgeforskyvning i en Access-formular

Når du søger i en kontinuerlig form, fremhæver Access den matchende post uden om muligt at flytte poster. Når Access skal ændre de synlige poster for at vælge en matchende post, vil Access placere den matchende post øverst på formularen. Nogle brugere vil hellere se den matchende post sammen med et par af de tidligere poster i stedet. For at imødekomme disse brugere kan du tilføje en simpel forskydningsværdi til søgningen, og det er lettere, end du måske tror.

For at illustrere denne fleksible søgeløsning tilføjer vi et par søgekontroller til den enkle kontinuerlige form (en telefonliste) vist nedenfor. Denne formular viser data fra kundetabellen i Northwind.accdb, eksempeldatabasen, der leveres med Access.

For at tilføje søgekontrollerne skal du åbne formularen i designvisning og udsætte overskriftsoverskriften. Indsæt derefter to tekstkontroller; positioneringen er ikke særlig vigtig. Navngiv søgestrengsstyringen, txtSearch; navngiv forskydningskontrollen txtSearchOffset. Indstil derefter txtSearchOffsets egenskab for standardværdi til -3. Kontroller formularens egenskab Har modul - den skal være indstillet til Ja.

Nu er du klar til at tilføje den kode, der kører søgningen. Klik på indstillingen Vis kode i gruppen Værktøjer (i Access 2003, knappen på værktøjslinjen) for at starte formularens modul i Visual Basic Editor og tilføje følgende kode:

 Privat sub txtSearch_AfterUpdate () 
 'Find post baseret på indholdet af txtSearch 
 'ved hjælp af en forskydningsværdi. 
 Dim strSøg som streng 
 Dim intOffset som heltal 
 Dim varBogmærke som variant 
 Fejl GoTo errHandler 
 'Afgrænset for tekstværdier. 
 strSearch = "Company =" & Chr (39) & Me! txtSearch.Value & Chr (39) 
 'Indstil forskydningsværdi. 
 intOffset = Me.txtSearchOffset 
 'Find rekorden. 
 Me.RecordsetClone.FindFirst strSearch 
 Me.Bookmark = Me.RecordsetClone.Bookmark 
 Ved fejl Genoptag næste 
 Me.Recordset.Move intOffset 
 Me.Bookmark = Me.RecordsetClone.Bookmark 
 Afslut sub 
 errHandler: 
 MsgBox "Fejlnummer:" & Err.Nummer & "; Beskrivelse:" & _ 
 Err.Description 
 Afslut under 

Vend tilbage til adgang og se formularen i formularvisning. Offsetkontrollen er standard til -3, som dine brugere kan ændre, så de passer til sig selv, men lad os arbejde med standardværdien for nu. Adgang ændrer ikke det aktuelle postsæt, hvis du søger efter et firma, der er synlig i formularen. Det ændrer bare den valgte post.

Søg nu efter et firma, der ikke er synligt på skærmen, såsom Company AA. Efter at have defineret søgstreng og forskydningsvariabler finder FindFirst-metoden den første matchende post. Den næste erklæring sætter egenskaben Bogmærke til den aktuelle post. Derefter ændrer Move-metoden valget ved hjælp af offsetvariablen (-3, hvilket betyder tre poster før den aktuelt valgte post). Endelig bruger den sidste linje den tidligere definerede bogmærkeindstilling til at flytte markeringen igen.

Hvis en bruger søger efter den første post i formularens postsæt, vælger Access den første post. Hvis der er flere tidligere poster, der vises end nødvendigt for at tilfredsstille forskydningsværdien, har forskydningsværdien ingen virkning. Hvis en bruger ændrer forskydningen til 0 eller en positiv værdi, vælger Access den første matchende post uden offset. Access ignorerer en forskydningsværdi, der er større end antallet af poster.

Hvis en bruger indtaster en tekstværdi, viser Access en fejlmeddelelse. Lige nu er fejlhåndteringsrutinen grundlæggende. Test proceduren grundigt, og forbedrer denne rutine for at afspejle din applikations brug.

© Copyright 2021 | mobilegn.com