Avatar billede vanni Nybegynder
04. september 2003 - 08:19 Der er 12 kommentarer og
2 løsninger

ADO for dummies

Hej

Så vidt jeg kan forstå, skal man ikke satse sin fremtid på DAO men ADO, så det ekperimenterer jeg lidt med.

Jeg har en lille kodestump, hvor jeg vil bare vil tælle antallet af records:

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection
rst.Open "SELECT bla. bla."
msgbox "Antal poster " & rst.øhh?
rst.Close
Set rst = Nothing

Kan nok ikke se skoven for træer, men er sikkert nemt for Jer. På forhånd tak.

Mvh. Vanni
04. september 2003 - 08:22 #1
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection
rst.Open "SELECT bla. bla."
msgbox "Antal poster " & rst.Recordcount
rst.Close
Set rst = Nothing
04. september 2003 - 08:23 #2
Du er sikkert klar over det, men din rst.Open skal have nogle flere parametre end bare din SQL...
Avatar billede terry Ekspert
04. september 2003 - 08:26 #3
Well actually I believe MS want us all to go over to ADO .NET which is not the same as ADO!

Depending on what recodset type ypu are using you may have to go to the end and then first again before getting the count, and in some cases that may not be enough

so a select count(*) .... would work!
04. september 2003 - 08:29 #4
Terry-> Hvilken ADO-recordsettype kender ikke .Recordcount allerede fra starten?
Min erfaring er da, at det kun var DAO, som skulle have en .Movelast for at kunne give en recordcount.
Avatar billede terry Ekspert
04. september 2003 - 10:39 #5
Hi Thomas>Your right concerning DAO, but I am sure that I also have had problems with ADO. I'm doing quite a bit of work with Access projects and it may be here where the problem arrises, along with others.
Avatar billede vanni Nybegynder
04. september 2003 - 20:31 #6
thomas> Flere parametre?
terry> Do ADO and ADO.NET only have the name in common?
04. september 2003 - 20:44 #7
ja, som regel skal angive en Connection og gerne en cursortype. Jeg havde ikke lagt mærke til at du faktisk angiver connection'en i 3. linie.
Der er mange måder at gøre dette på. Disse 2 metoder er ens, selvom syntaksen er forskellig:

1)
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.CursorType = adOpenKeyset
rst.ActiveConnection = CurrentProject.Connection
rst.Open "SELECT bla. bla."

2)
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "SELECT bla. bla.", CurrentProject.Connection, adOpenKeyset
Avatar billede terry Ekspert
04. september 2003 - 20:55 #8
Avatar billede vanni Nybegynder
04. september 2003 - 21:24 #9
terry> Regarding your link: Citat "When Microsoft began designing the .NET Framework, the company took the opportunity to redesign the data-access model. Rather than extending ADO further"

If I am happy with DAO, will I then waste my time by learning ADO?

thomas> Tak for hjælpen. Hvad mener du vedr. ovenstående?
Avatar billede terry Ekspert
04. september 2003 - 21:29 #10
well if you are happy with DAO and do not intend using new technologies then dont bother learning ADO.
ADO.NET WILL take over from ADO sooner or later!
04. september 2003 - 21:57 #11
Ja, ADO.NET skal nok tage over (hvis de ikke når at opfinde noget helt 4. inden). Men indtil videre er ADO.NET ikke fuldt på højde med ADO, hvad funktionalitet angår.
Der er også situationer, hvor DAO er langt bedre end ADO. F.eks. er DAO ofte hurtigere, når man arbejder udelukkende med Access. Jeg synes også at ADO har nogle klare mangler i forhold til DAO. F.eks. er .FindFirst i DAO langt bedre end den tilsvarende .Find i ADO.

Jeg tror, at det er en god ide at begynde at sætte sig lidt ind i det hele. Og så vælge datamodel i hver enkelt situation.
Avatar billede vanni Nybegynder
05. september 2003 - 06:58 #12
terry & thomas> Jeg siger mange tak for alle de gode informationer.

Jeg arbejder med mange forskellige projekter og nogen af dem involverer databaser i Access, så jeg er nødt til at være målrettet og undgå mulige blidgyder og tidsspild så vidt som muligt. Gætter på jeg arbejder 70-80 timer om ugen, så I har været til stor hjælp.

Hvis I havde Access 2000 ville så springe til Accces 2003 og droppe Access 2002?
Avatar billede terry Ekspert
05. september 2003 - 08:06 #13
We work with 2000 and intend going directly to 2003!
Avatar billede vanni Nybegynder
05. september 2003 - 08:14 #14
Tak.
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