07. maj 2001 - 11:49Der er
32 kommentarer og 1 løsning
Visual Basic og Access 2000
Jeg har lavet et program i VB som læser nogle fra felter fra en Access 2000 database, men for at det virker skal jeg konvertere databasen til en \"tidligere version\", for ellers kommer VB med fejlbeskeden: \"Runtime error 3343, unrecognized database format\". Hvad skal jeg gøre for at kunne arbejde direkte med en Access 2000 database?
piotr > Umiddelbart ingen. Når du bruger CreateObject så foretager vb en såkaldt late-binding, hvilket vil sige at du ikke behøver at referere typelibrariet.
Det er dog hurtigere at refererere typelibrariet hvis du har mange kald til objektet.
I givet fal skal du referere \"Microsoft ActiveX Data Objects 2.x livrary\"
og så skrive
Dim db as ADODB.Connection Dim rs as ADODB.Recordset Set db = New ADODB.Connection
Når du bruger CreateObject så sker der følgende ved udførsel.
Programmet beder Session Control Manageren (SCM) om en reference til objektet \"ADODB.Connection\". SCM\'en går så på jagt i registry for at find CLSID\'et på objektet. Når den har fundet det, søger den så endnu engang i registry for at finde typelibrariet, hvorefter den instansierer objektet og returnerer dette.
Hvis du har en reference til typelibrariet forespørger programmet SCM\'en om CLSID\'et istedet, hvilket betyder at du sparer en søgning i registry (hvilken for nogen maskiner kan være kæmpe ;) ).
Er der tale om et objekt som bliver instansieret ofte så bør man bruge early-binding (vha. reference).
tdaugaard: I could see piotr was using DAO and NOT ADO so it is important that referance to DAO 3.6 is in use. I am aware that ADO can use both 97 and 200p dB\'s but that wasnt the problem!!!
jennemaan:> hmm ... det må jeg lige kigge på for jeg bruger selv Access DB\'ere i mine programmer og der bruger jeg ingen referencer...
terry:> well as I told piotr, it is much easier to use ADO than DAO. Also, if you are planning on distributing your program you should note that DAO adds about 8 MEGS og drivers to your distribution where ADO requires none.
jennemaan:> ALLE computere har MDAC 2.0. Jeg har ikek været ude for at der er en der ikke har. (og et af mine programmer har været nede og køre på wn Win95 maskine!) Og der er IKKE 8 MB MDAC med.
terry:> *LOL* I was just asking you why you want to use DAO when ADO in fact IS faster than DAO.. ? Which problems did you have with ADO that you didn\'t have with DAO ?
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.