Jeg tror problemet er, at en søgeformular kan være mange ting. Du er nødt til at beskrive præcis hvad den skal søge efter og i hvilke tabeller og hvordan resultatet skal præsenteres (i en ny formular eller en rapport eller...?)
Endelig skal du også altid huske at angive hvilken version af Access du benytter (det har betydning, hvis der skal bruges VBA, som i dette tilfælde)
Når du har noteret alt dette, så kunne jeg godt forestille mig, at du var nødt til at sætte point\'ene lidt op, da søgeformularer kan tage alt fra 1 time til et par måneder at lave!
Prøv at søg på www.asp.dk - www.activeserverpages.dk - Der har jeg nemlig en søgemaskine fra. Men når jeg kommer hjem fra skolen, så skal jeg nok ligge den ud på nettet, så du kan downloade den :o)
Som Thomas Jepsen skriver kan en søgeformular være flere ting. Men da du ikke nærmere definerer dit behov, kan det være svært præcist at give dig hvad du behøver. Koden er lavet i Access-97.
Her er dog en kode, der søger efter et CPRNR i tabellen Personregister. Hvis søgningen mislykkes, vil du få 1 af 2 mulige tilbagesvar:
1. Du har ikke indtastet 10 tegn. 2. CPRNR findes ikke i databasen.
CPRNR er af typen String og feltlængden er 10.
Private Sub Form_Load() Dim Test As String, CPRNR As String Dim MSG, Style, Title, Help, Ctxt, Response, MyString \'variabler til 2. MsgBox DoCmd.GoToControl \"CPRNR\" CPRNR = InputBox(Prompt:=\"Indtast Medarbejderens CPR-nummer, F.eks 1111491234.\" & Chr$(13) & Chr$(13) & \"Der må ikke indtastes bindestreg. Joker-tegn kan ikke anvendes\", Title:=\"Find medarbejder\") \'Starter funktionen \"FindRecord\" og åbner Inputbox for indtastning af CPR\' If CPRNR = \"\" Then \'afslutter hvis strengen er tom\' End Else Me.RecordsetClone.FindFirst \"CPRNR= \'\" & CPRNR & \"\'\" While Me.RecordsetClone.NoMatch = True MSG = \"Det indtastede CPRNR findes ikke.\" & Chr$(13) & Chr$(13) & \"Enten er CPR ikke oprettet, eller også har du indtastet forkert\" & Chr$(13) & Chr$(13) & \"Husk du må ikke indtaste bindestreg.\" \' Definer meddelelsen. Style = vbRetryCancel + vbCritical + vbDefaultButton2 Response = Msgbox(MSG, Style, Title, Help, Ctxt) If Response = vbRetry Then CPRNR = InputBox(Prompt:=\"Indtast Medarbejderens CPR-nummer, F.eks 1111491234.\" & Chr$(13) & Chr$(13) & \"Der må ikke indtastes bindestreg. Joker-tegn kan anvendes\", Title:=\"Find medarbejder\") \'Starter funktionen \"FindRecord\" og åbner Inputbox for indtastning af CPR\' If CPRNR = \"\" Then \'afslutter hvis strengen er tom End Else Me.RecordsetClone.FindFirst \"CPRNR= \'\" & CPRNR & \"\'\" End If Else End End If Wend Me.Bookmark = Me.RecordsetClone.Bookmark End If End Sub
det er lige det som det ikke er, det skal ligge inde i selve access ... en knap en textbox og så skal man kunne søge i db\'en. Jeg ved godt at man bare kan klikke på søg i menulinien. Som mugs skriver, det er der vi skal over, men jeg har aldrig prøvet access på den måde så jeg aner ikke hvad jeg skal gøre ???
hejjjj Den angivne kode søger efter en person med et bestemt CPRNR. Du har en tabel med en masse medarbejdere hvor der også er et CPRNR tilknyttet. CPRNR er tabellens unikke nøgle (Primary Key). Når du klikker på en kommandoknap og indtaster et CPRNR i en Inputbox, vil db søge efter det indtastede CPRNR. Dette var blot lavet for eksemplets skyld, for at vise hvordan det evt. kan laves, der er mange muligheder. Men da søgemulighederne skal tilpasses felttypen m.v., skal der yderligere oplysninger til.
Jeg har heller ikke fået løst dette problem, mugs sendte en DB, men den kunne desværre ikke bruges, men jeg syntes at det er ham der fortjener pointene, tak for hjælpen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.