19. november 2001 - 11:27Der er
25 kommentarer og 2 løsninger
Søg i Access
Okay, nu bliver det sjovt – jeg skal til at søge.
Jeg har en formular hvor der bliver indtastet en masse data om ure… Fabrikant, Model, Årgang, Fab Nr. mm.
Så skal jeg ha’ lavet en ny formular som jeg kan bruge til at søge i den anden formular med. Jeg skal f.eks. kunne skrive ”1985” i tekstboksen med ”Årgang”, og skrive Ramber i tekstboksen ”Model”
Når jeg så trykker på søg, vises alle de Reg nr.(autonummerering) som både indeholder 1985+Ramber i en tekstboks…
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skriver at du vil have resuatet i en tekstboks! Hvorfor vil du ikke bare vise de aktuelle poster i formularen? Det nemmeste er at bruge Filter-metoden på formularen.
Hvis du har din tekstboks (her kaldet txtResultat) kan du lægge følgende kode på din søg-knap:
Dim SQLStr as String, Resultat as String Dim rs as DAO.Recordset If Me!Årgang<>\"\" then SQLStr = \"Årgang = \" & Me!Årgang end if if Me!Model<>\"\" then if Len(SQLStr) > 0 then SQLStr = SQLStr & \" And \" SQLStr = SQLStr & \"Model = \'\" & Me!Model & \"\'\" end if If Len(SQLStr) = 0 then Me!txtResultat = \"Der er ingen ure, som matcher kriterierne!\" else Set rs = Currentdb.Openrecordset(\"Select * From Ure Where \" & SQLStr, dbopensnapshot) do until rs.EOF Resultat = Resultat & rs![Reg Nr] & vbnewline rs.movenext loop Me!txtResultat = Resultat end if
glemte lige at sige at koden benytter DAO, så hvis du bruger Access 2000 eller XP skal du lave en reference til \"Microsoft DAO 3.x Object Library\" i Tools->References fra VBA-editoren.
haha, yeah, I was wandering what kind of SQL, you were talking about - I had some problems recognizing the syntax ;o)
But, you are right. I just like to keep my SQL as clean as possible. In this case I wouldn\'t gain very much, but if I had more cirteria-fields, your suggestion is good. I will keep it in mind, thx ;o)
Til ThomasJepsen> Har prøvet lidt med din kode, men kan ik rigtig få den til at virke, så har lige nogle spørgsmål til den. Hvordan ved min søgeknap, som befinder sig i formularen \"Søg\" at den skal søge i felterne som er i formularen \"Indtastning af ure\". I formularen \"Søg\" har jeg nogle bokse som matcher dem i \"Indtastning af ure\" bare med den forskel af man indtaster det den skal søge efter under dem i \"Søg\". Altså hvis jeg indtaster 1985 i boksen årgang i formularen \"Søg\" skriver den Reg. nr. 2 fordi jeg har et ur med årgang 1985 i indtastning nr. 2 i min formular med \"indtastning af ure\"
Tror at jeg fik det forklaret lidt bedre denne gang, ellers også er alle bare faldet fra :s :)
This opens the result form showing only the records you are interested in. Note: The result forms records source MUST contain the fields you are searching on.
I mit eksempel er det sådan set ligegyldigt hvilke felter der er på de andre formulare. Jeg kigger kun på den aktuelle formular (søg-formularen) og derefter direkte i tabellen.
Du har en tekstboks på Søgformularen, som hedder txtresultat, ikk\'? Det er jo her resultatet vises.
Hvad sker der, når du prøver? Hvilken fejl får du?
Jo, jeg har en txtresultat... Jeg får denne fejl: \"Der er en syntakstfejl i FROM-delsætningen\" ---------------- Set rs = CurrentDb.Openrecordset(\"Select * From Indtastning af Ure Where \" & SQLStr, dbopensnapshot)
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.