Avatar billede svenderik Nybegynder
18. april 2001 - 13:31 Der er 17 kommentarer og
1 løsning

Hvad går der galt her. ?

Det virkede under acces97 men under access 2000 virker det ikke.

Dim tempDB, tempDB2 As Database
Dim tabel, tabel2 As Recordset
Dim x As Byte

Set tempDB = CurrentDb

Når den den skal \' afvikle \"scl_kørsel_Q\" gå den i fejl. Jeg har prøve at bytte om på række føøgende af scl_kørsel_q og DBengine
Men det hjælper ikke. 

Set tabel = tempDB.OpenRecordset(\"SCL_kørsel_q\", dbOpenTable)

Set tempDB2 = DBEngine.Workspaces(0).OpenDatabase(\"Q:\\USERS\\KANTINE\\test_data.mdb\")

Set tabel2 = tempDB2.OpenRecordset(\"tempSCL\", dbOpenTable)
18. april 2001 - 13:33 #1
Du benytter DAO-teknologi i et ADO miljø.

Fra VBA-editoren skal du gå i menuen Tools->Refernces og afkrydse \"Microsoft DAO 3.6 Object Library\"

Så virker det igen

/Thomas
Avatar billede svenderik Nybegynder
18. april 2001 - 13:39 #2
Hej Tomas
Jeg fumlede men her min kommentar.
Stor var min glæde og jeg gik fluks inde som du beskriver. Men der er sat flue been af i DAO 3.6 Objeckt Libray

Ændre ider ser særdeles velkommen
18. april 2001 - 13:41 #3
Har du også en reference til \"Microsoft ADO...\"
I så fald, skal dine recordsets erklæres med den DAO-prefix.
Eks:
Dim tabel2 As DAO.Recordset
18. april 2001 - 13:42 #4
Hvis du fjerne din ADO-reference er det ikke nødvendigt...
Avatar billede svenderik Nybegynder
18. april 2001 - 13:54 #5
Jeg beklager det var det heller ikke
18. april 2001 - 14:07 #6
Hvad er \"scl_kørsel_Q\"? Er det en forespørgsel eller en tabel.

Hvis det er en forespørgsel, kan du ikke åbne det som en tabel, men skal benytte:
Set tabel = tempDB.OpenRecordset(\"SCL_kørsel_q\", dbopensnapshot)
eller
Set tabel = tempDB.OpenRecordset(\"SCL_kørsel_q\", dbopendynaset)

hvad er det præcis for en fejl, den giver dig?

/Thomas
Avatar billede svenderik Nybegynder
18. april 2001 - 14:10 #7
scl_kørsel_q er en forespørgelse. Det har virket i
access 97 versioen.
Avatar billede svenderik Nybegynder
18. april 2001 - 14:13 #8
Sorre du fik halvdelen af svaret. Den stopper bare og foretager sig ikke mere. Når jeg bruger standard fjel utill siger den blot der er fej
/ svenderik
18. april 2001 - 14:14 #9
ok, men det kan man i hvert fald ikke i \'2000.
Har du prøvet at skifte sætningen ud med det jeg skrev?
Hvis forespørgslen er opdaterbar skal du bruge dbopendynaset. Ellers dbopensnapshot!

Avatar billede svenderik Nybegynder
18. april 2001 - 14:20 #10
Ja jeg er har prøvet hvad du skrev. Nu ser det
sådan ud.

Dim tempDB, tempDB2 As Database
Dim tabel, tabel2 As Recordset

Dim x As Byte
Set tempDB = CurrentDb
Den dør igen ved SCl_kørsel meeeennn.
Set tabel = tempDB.OpenRecordset(\"SCL_kørsel_q\", dbOpenSnapshot)
Set tempDB2 = DBEngine.Workspaces(0).OpenDatabase(\"Q:\\USERS\\KANTINE\\test_data.mdb\")
Set tabel2 = tempDB2.OpenRecordset(\"tempSCL\", dbOpenTable)
Nu siger sider den runtime Error 3061 der er for ¨
få prametere. Der var ventet 2 i debugeren.

/ SvendErik

18. april 2001 - 14:30 #11
Ok, så prøv at indsætte denne kode:

Dim tempDB, tempDB2 As Database
Dim tabel, tabel2 As DAO.Recordset

Dim x As Byte
Set tempDB = CurrentDb
Set tabel = tempDB.OpenRecordset(\"SCL_kørsel_q\", dbOpenSnapshot, dbSeeChanges)
Set tempDB2 = DBEngine.Workspaces(0).OpenDatabase(\"Q:\\USERS\\KANTINE\\test_data.mdb\")
Set tabel2 = tempDB2.OpenRecordset(\"tempSCL\", dbOpenSnapshot, dbSeeChanges)

Er tempSCL også en forespørgsel?
Avatar billede svenderik Nybegynder
18. april 2001 - 14:37 #12
Jeg har netop kør det du foreslog samme fejl samme runtime error.
tempSCL er en tabel. Og nej det er ikke mig der lavet det. Det er min forgænger. Støøn.
18. april 2001 - 14:45 #13
Hmm, det synes jeg at jeg kender ;-)

Kan du åbne SCL_kørsel_q manuelt fra databasevinduet?

Hvis du trykker [Debug] (når fejlen opstår) stiller den sig så i linien med \"SCL_kørsel_q\"?

Bortset fra det, så var ændringen med dbSeeChanges noget sludder, da der ikke foretages nogle ændringer....Istedet kunne der stå dbReadOnly, men det er implicit i et snapshot!
18. april 2001 - 15:01 #14
Vi kunne måske også overveje at lave det i ADO (som jo er det mest korrekte i Access 2000)?
18. april 2001 - 15:04 #15
Jeg ser også pludseligt at du erklærer dine objekter forkert:

Du skal skrive:

Dim tempDB As Database, tempDB2 As Database
Dim tabel As DAO.Recordset, tabel2 As DAO.Recordset

Ellers vil tempDB og Tabel blive erklæret som Varianter.
Avatar billede svenderik Nybegynder
18. april 2001 - 15:33 #16
Først undskyld jeg ikke svarede men der var lige en chef i en anden bygning der krævede min opmærksomhed.

Men Det hjalp ikke.
Den stiller sig så i linien med \"SCL_kørsel_q\"?
Samme runtime fejl
18. april 2001 - 15:43 #17
Hej igen,

Du svarede ikke på det med hvad der skete, hvis du åbnede forespørgslen direkte fra databasevinduet? Men jeg går ud fra at det fungere fint?

Prøv denne ADO-løsning:

Dim cn1 As ADODB.Connection
Dim cn2 As ADODB.Connection
Dim tabel As New ADODB.Recordset, tabel2 As New ADODB.Recordset

Set cn1 = CurrentProject.Connection
tabel.Open \"qry\", cn, adOpenKeyset, adLockOptimistic, adCmdTable

(Den kræver en refernce til ADO!)
Avatar billede svenderik Nybegynder
20. april 2001 - 09:42 #18
Hmm Det vil ikke umiddelbart fungere. Men nu gør jeg noget prgramere mig ud af det. Keep it simpel. Som min gamle bos sagde. Amnyway jeg aceptere dit svar som tak for den store hjælp du har givet.
/SvendErik
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