16. april 2004 - 02:06Der er
5 kommentarer og 2 løsninger
Access 2000: DoCmd.RunSQL og SELECT i moduler.
Jeg har fået den skøre ide, at jeg vil lave mine forespørgsler i moduler, og holde brugerfladen så fri for kode som muligt, men hvis jeg bruger SELECT - sætninger til at tildele en variabel en værdi, får jeg: "Compile error: Expected: end of statement" under kodningen.
Kan Access kun lave databasemanipulation fra moduler eller kan man snyde sig til f.eks. dette eksempel?
Hvis jeg unlader "Bruger = " siger Access ved kørsel: "Handlingen KørSQL kræver et argument, der består af en SQL-sætning" Jeg syntes nu ellers det er en fin SQL-sætning :)
Jeg ved ikke om db.execute er hurtigere, men den giver nogle andre fordele, som måske ikke er relevante her.
Men hvis du bruger db.execute kræver det at du laver en reference til "Microsoft DAO 3.x object library"
Men jeg forstår ikke hvorfor du vil bruge en Select-forespørgsel i VBA? Select-forespørgsler bruges som basis for formularer, rapporter, kontrolelementer, opslag m.m. Og dertil er gemte forespørgsler langt det smarteste.
Hvis du vil arbejde med tabellen i ren kode, skal du hellere kigge på recordsets. Men det er en helt anden historie.
a SELECT in a DoCmd.RunSQL is NOT possible! If you just want to get hold of the user name then I would suggest you use DLookup It isnt as fast as a recordset but in this case I can imagine that it is only used when the program gets opend and thats it, so the speed is just fine.
Bruger = Dlookup("MedarbejderNavn","Medarbejder","BrugerLogin = '" & LCase(Environ("UserName") & "'")
>SQLStatement Required Variant. A string expression that's a valid SQL statement for an action query or a data-definition query. It uses an INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX statement. Include an IN clause if you want to access another database.
-> thomasjepsen: Du siger indirekte at det ikke kan lade sig gøre, men at jeg kan bruge recordset. Jeg ved ikke hvad du mener, men må lade det ligge, da jeg er under tidspres lige nu. Måske en anden gang...
->terry: Klart svar. Jeg kan se din pointe i Dlookup til denne SELECT, men da det blot var en af mange bliver den foretrukne løsning almindelige forespørgsler.
ok, Recordset er også en større omgang, at gennemgå her. Men thnx for points :o)
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.