Access-Abfrage mit dao öffnen

essar

Gesperrt
Hi Leute...


Ich habe mit Access ein programm geschrieben.....


ich möchte mit dao eine schon bestehende Abrage öffnen und dessen werte in einem Recordset weiterverwenden...


ich bekomm langsam ne makkkkkkkcke im Internet finde ich nichts diesbezüglicb nur wie ich einen SQL String ausführe ich habe den stand:



Public Sub modul()


Dim db As Database
Dim rs As Recordset
Dim qry As QueryDef
Dim stDocName As String
Dim nummer, Max_RechnungsNr As Integer


stDocName = "rechnungsnr_max"
DoCmd.OpenQuery stDocName, , acReadOnly


Set db = CurrentDb


Set qry = db.QueryDefs("rechnungsnr_max")
Set rs = qry.OpenRecordset(dbOpenDynaset, dbForwardOnly, readonly)



'rs.MoveFirst
nummer = rs![nummer]
Max_RechnungsNr = rs![Max_RechnungsNr]
Summe_steigerungNr = rs![Summe_steigerungNr]

rs.Close

Debug.Print nummer

End Sub



irgend ein Argument fehlt????!!!!



bis dann

essar
 
Öhm... wieso nicht einfach so:
Code:
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("rechnungsnr_max")

' ...

Sollte eigentlich ohne weitere Probleme funktionieren.
 
Ich kann das hier nicht ausprobieren, weil ich hier Windows XP hab und weil da keine DAO-Komponenten mehr drauf sind. DAO ist schliesslich veraltet, und wie Microsoft veraltete Technologien handhabt, kannst Du in dem anderen Thema nachlesen.

In welcher Zeile tritt der Fehler denn genau auf?
 
der fehlercode ist
a. 3061
b. es wurde ien argument erwartet u.s.w.

ich habe aber alle Argumente übergeben die ich eigendlich brauche....

ich kann aber meine Anwendung nicht auf ado XX umschreiben da diese ziehmlich komplex aufgebaut ist und keiner die konvertierung bezahlen möchte......


es muß aber möglich sein denn es gibt doch viele Programme die mit dieser Abfrage arbeiten müssen.....


ich schau mal wo anders vielleicht finde ich was halte dich auf dem laufenden....:)
 
Das mit der Umstellung kenn ich leider zu gut. Das Problem hab ich auch ständig. Dabei wäre es eigentlich sinnvoller, das ganze einfach mal umzustellen, damit man auch in Zukunft noch was davon hat.

Welcher Fehler das ist, weiss ich schon. Aber ich wollte wissen, in welcher Zeile von Deinem Code das passiert. ;)
 
Hast Du mal in den Verweisen nachgesehen, ob nicht vielleicht noch irgendwo ein Verweis auf die ADO-Komponenten steht? Dann müsstest Du im Code nämlich explizit sagen, dass die Objekte aus dem DAO-Katalog kommen sollen. Oder Du änderst die Verweis-Reihenfolge so ab, dass der Verweis auf die DAO-Komponenten weiter oben steht.

Code:
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("rechnungsnr_max")
Das bringt mir den Fehler, dass die Typen inkompatibel sind. Was ja auch logisch ist, weil hier ein ADODB-Recordset erwartet wird.

Code:
Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("rechnungsnr_max")
So geht das bei mir ohne Probleme.

Ich hab hier jetzt die DAO 3.6 und die ADO 2.1 installiert, wobei der Verweis auf die ADO-Bibliothek weiter oben steht.
 
wenn ich mein Recordset öffnen möchte


so z.B.

set record = datenbank.openRecordset("Meine Abfrage")

dann bringt er die error meldung
 
das heisst, deine Abfrage ist falsch. jedenfalls hat er bei mir immer diesen Fehler gebracht, wenn das SQL-Statement nicht korrekt war. Überprüf das mal.

@asphyxia: Also bei mir sind mit Win XP und Access XP die DAO-Komponenten installiert...
 
Zuletzt bearbeitet:
Also bei mir sind mit Win XP und Access XP die DAO-Komponenten installiert...
Bei mir (XP Home, Access 2000) auch, ich war anscheinend einfach nur blind und hab den Verweis nicht in der Liste gefunden. :rolleyes:

das heisst, deine Abfrage ist falsch. jedenfalls hat er bei mir immer diesen Fehler gebracht, wenn das SQL-Statement nicht korrekt war. Überprüf das mal.
Dabei sollte dann aber eigentlich nicht unbedingt ein Fehler auftreten der darauf hinweist, dass irgendwas im Code falsch ist. Aber bei Visual Basic und Access Basic kann man sowas ja eh nie mit absoluter Sicherheit ausschliessen. :rolleyes:
 

Neue Beiträge

Zurück