Avatar billede madsmpedersen Nybegynder
17. april 2005 - 23:16 Der er 4 kommentarer og
1 løsning

Let problem med VB i Access

Function FindNavn(arnr)
Dim Dbs As Database, rst As Recordset
    Set Dbs = CurrentDb
    Set rst = Dbs.OpenRecordset("SELECT [Navn] FROM [Hunde]")
    FindNavn = rst![Navn]
    rst.Close
End Function

Hvorfor virker det ikke.
Jeg har det i et visual basic modul i Access 2002
Jeg har en tabel (Hunde) med et felt(Navn)
Jeg har tilføjet en reference til "Microsoft DAO 3.6 object library
Jeg får fejlen: "Type mismatch" i linien: "Set rst = Dbs.OpenRecordset("SELECT [Navn] FROM [Hunde]")"
Sandsynligvis er svaret let, men jeg har aldrig arbejdet i Access før.

Mads M Pedersen
Avatar billede sjap Praktikant
17. april 2005 - 23:40 #1
Kan ikke lige huske om det er nødvendigt, men prøv:

Dim Dbs As Database, rst As DAO.Recordset
Avatar billede madsmpedersen Nybegynder
17. april 2005 - 23:52 #2
Tusind tak for hurtigt og helt korrekt svar
Avatar billede sjap Praktikant
17. april 2005 - 23:54 #3
:0)
18. april 2005 - 08:44 #4
Ja, det er altid en god ide at skrive DAO eller ADODB foran (afhængigt af om man vil bruge DAO- eller ADO-metoderne).
Når Mads får en fejl nu, skyldes det, at hans "Microsoft ActiveX Data Object 2.x Library" står først i forhold til hans "Microsoft DAO 3.x Object Library" i referencerne.
Når Access støder på det reserveret ord "Recordset", så bladre den gennem alle bibliotekerne (referencerne), startende fra oven, indtil den finder ordet. Og herefter gælder kun den syntaks og de metoder, egenskaber og hændelser, som står i det bibliotek.

Hvis man ved, at man kun vil bruge DAO-syntaks, bør man helt fjerne referencen til "Microsoft ActiveX Data Object 2.x Library" (og omvendt), da det betyder at Access skal bladre gennem flere biblioteker hver gang en kommando skal findes. Det samme gælder alle mulige andre referencer, som man ikke bruger (De er selvfølgelig indekseret, men alligevel sløver det ned).

Det er også derfor at rækkefølgen ikke er ligegyldig. VBA, Access og OLE bør altid ligge øverst. Herefter følger DAO og/eller ADO og tilsidst alle de andre referencer, som man får lagt på (f.eks. Word, Excel, Outlook m.m.). Så hvis man har en Outlook-reference, som man ved kun bruges sjældent, bør den stå nederst.

Well, begejstringen løb vist lidt af med mig her ;o)
Avatar billede sjap Praktikant
18. april 2005 - 13:56 #5
Jeps, men tak for meget nyttig info. ;0)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester