Toon posts:

[accessXP & VBA] recordset probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb volgende code om een tabel te exporteren naar een bestand.
Dit gaat d.m.v. een knop.

code:
1
2
3
4
5
6
7
8
9
10
11
Dim db As Database, rst As Recordset

Set rst = CurrentDb.OpenRecordset("select * from [Audit_Trail]")
Open "y:\test\example.txt" For Output As #1
Do Until rst.EOF
    Print #1, rst("ID") & ", "; rst("Action")
    rst.MoveNext
Loop
Close #1
rst.Close
Set db = Nothing


Nu is het probleem dat ik telkens een foutmelding krijg:
code:
1
2
Runtime error '13'.
Type Mismatch


Als ik debug zit de fout op:
code:
1
Set rst = CurrentDb.OpenRecordset("select * from [Audit_Trail]")


Heeft iemand enig idee wat dit kan zijn???

Verwijderd

Probeer de query in access uit te voeren. Meestal krijg je dan een uitgebreidere foutmelding.

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

Moet er niet nog een RsT.movefirst na het openen van de recordset?

If you choose to criticise you choose your enemies


  • MrDry
  • Registratie: December 2001
  • Laatst online: 21-08 16:48

MrDry

Desperados!

Is CurrentDB wel gedefinieerd?

Quod licet lovi, non licet bovi


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Goede suggestie gevonden:
you are missing creating a NEW recordset

Dim recClone as NEW recordset
or
set recClone = NEW recordset

[ Voor 52% gewijzigd door gorgi_19 op 20-05-2003 14:20 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Dat New recordset was ik i.i.d. vergeten, maar wat ik ook doe blijf de zelfde fout houden. Iemand nog een idee? of kan het exporteren ook op een andere manier?? (niet via file -> export)

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

De []s zijn ook niet nodig voor zover ik me kan herinneren.

If you choose to criticise you choose your enemies


Verwijderd

Topicstarter
de []s hebben geen invloed op de query

  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

Het lijkt erop dat ie de query niet helemaal als string pakt..

Werkt het als je probeert:

code:
1
2
3
4
5
Dim sqlStr as String

Set sqlStr = "select * from [Audit_Trail]"

Set rst = CurrentDb.OpenRecordset(sqlStr)

[ Voor 8% gewijzigd door Tirillo op 20-05-2003 14:40 ]

...


Verwijderd

Topicstarter
nee, zelfde fout

  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

Even misschien iets stoms en een herhaling van wat MrDry al vroeg:

Je doet Dim db as Database, maar er staat nergens een open.. Toevallig per ongeluk Set db = OpenDatabase(locatie) vergeten misschien?

...


  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

dit is de oplossing:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Dim db As Database, rst As Recordset

Set rst = CurrentDb.OpenRecordset("select * from [Audit_Trail]")
Open "d:\example.txt" For Output As #1
Do Until rst.EOF
    Print #1, rst!ID & ", "; rst!Action
    rst.MoveNext
Loop
Close #1
rst.Close
Set db = Nothing


Tirillo... currentdb is al een bestaand database object... Met dao is 1 op de 3 keer mismatches hebt op strings... dus altijd extra op checken..
succes ermee...

[ Voor 27% gewijzigd door henkleerssen op 20-05-2003 15:12 ]


Verwijderd

Topicstarter
Ok,
het is gelukt, probleem was dat de DAO niet goed herkend werd. i.i.g. ik heb bij Tools -> reference de DAO3.6 naar boven gezet en nu werkt alles wel gewoon.

Bedankt maar weer.
Pagina: 1