ADODB.Recordset auf Windows Vista

Hallo zusammen.

Ich habe hier ein Phänomen, welches ich weder erklären noch beheben kann, sonst würde ich mich ja auch nicht an euch wenden. :wink:

Ich habe ein Programm, welches nun auch auf Vista-Rechnern laufen soll, wenn ich jedoch eine ganz bestimmten Funktion starte, knallt das Programm und zwar bei folgendem Befehlsaufruf:

Set rs = New ADODB.Recordset

Ich habe schon sehr viel gegoogelt und auch sehr viel ausprobiert bzgl. MDAC & Co, hat mir aber alles nicht weitergeholfen.

Wie kann es sein, dass ein so GRUNDLEGENDER Befehl nicht mehr funktioniert… :\

Bin für jede Hilfe dankbar!

MfG

Es handelt sich übrigens um Visual Basic 6.0!

Hallo,

Ich habe ein Programm, welches nun auch auf Vista-Rechnern
laufen soll, wenn ich jedoch eine ganz bestimmten Funktion
starte, knallt das Programm und zwar bei folgendem
Befehlsaufruf:

Set rs = New ADODB.Recordset

das klingt, als würden Verweise fehlen.

Leg mal ein ADODC-Steuerelement auf die Form und verbinde das mit einem Recordset. Dadurch sollten die Verweise automatisch gesetzt werden. Wenn’s läuft, kannst Du das Steuerelement wieder entfernen, die Verweise bleiben erhalten.

Gruß Rainer

Hallo Rainer,

wie verbinde ich das Steuerelement mit einem Recordset?

Ich möchte dazusagen, dass ich mein ADOD_B_-Recordset nicht mit Daten aus einer Datenbank fülle oder irgendwie Online auf etwas zugreife.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Beschreibung der Fehlermeldung:

Automatisierungsfehler
Die angegebene Prozedur wurde nicht gefunden.
Laufzeitfehler -2147024769

Hi Timmi,

wie verbinde ich das Steuerelement mit einem Recordset?

Rechtsklick auf das Steuerelement, Eigenschaften und die Eigenschaften ausfüllen, die Datenbank auf der Platte suchen … Es darf auch gern eine andere Datenbank sein.

Ich möchte dazusagen, dass ich mein ADOD_B_-Recordset nicht
mit Daten aus einer Datenbank fülle oder irgendwie Online auf
etwas zugreife.

Das verstehe ich nicht. Du weißt, was ein Recordset ist? Erzeugst Du mit dem Code eine Datenbank?

Gruß Rainer

Ja, genau.

Und diese Datenbank / dieses Recordset übergebe ich einer Funktion, welche diese Daten auswertet.

Unter XP funktioniert alles einwandfrei und unter Vista denke ich auch, nur diese eine Anweisung zickt rum…

Ich habe auch mal ein neues, leeres, jungfräuliches VB6-Projekt erstellt und da versucht ein ADODB-Recordset zu erzeugen, es passiert aber das selbe…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Timmi,

Ja, genau.

Und diese Datenbank / dieses Recordset übergebe ich einer
Funktion, welche diese Daten auswertet.

OK.

Unter XP funktioniert alles einwandfrei und unter Vista denke
ich auch, nur diese eine Anweisung zickt rum…

Ich habe auch mal ein neues, leeres, jungfräuliches
VB6-Projekt erstellt und da versucht ein ADODB-Recordset zu
erzeugen, es passiert aber das selbe…

Ja, Dir fehlen die Verweise.

Wenn Du mit dem Steuerelement so nicht zurecht kommst, dann setze den Verweis manuell:

Projekt -> Verweise und dort:

Microsoft ActiveX DataObjects 2.0 Library

Mit dem Verweis funktioniert es bei mir in XP. Vista habe ich nicht.

Gruß Rainer

Der war Standardmäßig eingebunden, noch von dem Projekt von XP, welches ich dann auf Vista rüberkopiert habe.

Weiterhin habe ich es mit den Versionen 2.1, 2.5, 2.6, 2.7, 2.8 und 6.0 (Windows DAC) probiert, keinen Erfolg… nicht mit EINER Version…

Übrigens tritt das Problem z.B. auch auf, wenn ich eine ADODB.Connection aufbauen will, alles was mit ADO zu tun hat, führt unweigerlich zum Fehler.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Timmi,

Der war Standardmäßig eingebunden, noch von dem Projekt von
XP, welches ich dann auf Vista rüberkopiert habe.

schon klar. Ich hatte mit Google einen Hinweis gefunden, daß VB den Verweis dann ‚vergessen‘ könnte.

Weiterhin habe ich es mit den Versionen 2.1, 2.5, 2.6, 2.7,
2.8 und 6.0 (Windows DAC) probiert, keinen Erfolg… nicht mit
EINER Version…

Übrigens tritt das Problem z.B. auch auf, wenn ich eine
ADODB.Connection aufbauen will, alles was mit ADO zu tun hat,
führt unweigerlich zum Fehler.

Hmmmm, dann weiß ich jetzt auch nicht mehr weiter. Sorry.

Gruß Rainer

Hallo Timmi,

erstelle ein ordentliches Setup, dann sollte es laufen.
Es ist nicht wie bei .NET wo es ausreichen würde nur die EXE aus zu liefern.

MfG Alex

Hi Alex,

auf die Zeile

Set rs = New ADODB.Recordset

kann nur die IDE zeigen. Es kann sich nicht um ein kompiliertes Programm handeln.

Gruß Rainer

Hallo Rainer,

schrieb er nicht das er es auf mehreren Rechner getestet hatte?
Ich dachte er hat es dort Compiliert ausgefuehrt und sah den Absturz und nach eigenen Recherchen kam er dann auf die Zeile.

Gruß Alex ( der so langsam .Net liebt *zwinker*)

Hi Alex,

Timmi liest ja sicher mit und wird uns aufklären.

schrieb er nicht das er es auf mehreren Rechner getestet
hatte?
Ich dachte er hat es dort Compiliert ausgefuehrt und sah den
Absturz und nach eigenen Recherchen kam er dann auf die Zeile.

Ich habe verstanden, daß das Projekt ursprünglich auf XP entwicket wurde und daß nun auf Vista weiter daran gearbeitet werden soll.

Ich arbeite auch schon mal an einem Projekt auf verschiedenen Rechnern, mal XP-Home mal XP-Pro.

( der so langsam .Net liebt *zwinker*)

Ich habe in .Net auch schon etwas gefunden, das mich begeistert. :smile:
Verzeichnisse überwachen. Ich brauche das öfter. So wie mit .Net war das in VB6 nicht möglich. Ich werde ein paar Programme neu schreiben.

Gruß Rainer

Hallo Rainer,

Timmi liest ja sicher mit und wird uns aufklären.

Naja schauen wir einmal. Aber wenn es andem ist kann es vielleicht sein das die Verweise net mehr stimmen oder die DLL da Probs bereiten, genauso sollte er sich wegen der Rechte dann mal im klaren sein, denn das kann auch zu Problemen führen!

schrieb er nicht das er es auf mehreren Rechner getestet
hatte?
Ich dachte er hat es dort Compiliert ausgefuehrt und sah den
Absturz und nach eigenen Recherchen kam er dann auf die Zeile.

Ich habe verstanden, daß das Projekt ursprünglich auf XP
entwicket wurde und daß nun auf Vista weiter daran gearbeitet
werden soll.

Ich arbeite auch schon mal an einem Projekt auf verschiedenen
Rechnern, mal XP-Home mal XP-Pro.

Sowas mache ich Grundsaetzlich nie. Ich habe meinen Rechner fürs programmieren und den anderen zum testen.

( der so langsam .Net liebt *zwinker*)

Ich habe in .Net auch schon etwas gefunden, das mich
begeistert. :smile:
Verzeichnisse überwachen. Ich brauche das öfter. So wie mit
.Net war das in VB6 nicht möglich. Ich werde ein paar
Programme neu schreiben.

Naja möglich war das schon. Es war nur die Frage der Stabiliitaet und des Aufwandes gewesen. Ich sage nur Thread erstellen etc.
Richtig ist das es in NET einfacher ist :smile:

Aber ich prügel mich derzeit da mit Data Adaptern, Dataset , datagridview etc. rum. Ist schon heftig was da nun alles möglich ist :s
Nur sollte man da das VB6 schnell vergessen *zwinker*

MfG Alex

PS: Hast du dir da mal den Error Provider angeschaut. Das find ich ja mal voll Genial das Teil :wink:

Wir entwickeln auch alle neuen Anwendungen in .NET, im Moment ist jedoch keine Zeit, um das VB6-Tool auf .NET zu portieren, deswegen muss es erst einmal so unter Vista laufen.

Ich habe die VB6 IDE auf dem Vista-Rechner installiert, um das Programm eben zu debuggen, um zu schauen in welcher Zeile genau der Fehler auftritt, das ist nämlich aus der Fehlermeldung heraus nicht ersichtlich.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich habe mal ein frisches, neues Projekt angelegt, um es so simpel wie möglich zu halten und alle Eventualitäten auszuschließen.

In diesem Projekt hantiere ich mit dem ODBC-Steuerlement.

Hier ist der Code:

Private Sub Command1_Click()

Adodc1.ConnectionString = „Provider=Microsoft.Jet.OLEDB.3.51:stuck_out_tongue_winking_eye:ersist Security Info=False;Data Source=C:\Dokumente und Einstellungen\User\Desktop\db.mdb“
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = „SELECT * FROM Tabelle“
Adodc1.Refresh
Adodc1.Recordset.MoveFirst

End Sub

Hier knallt es ebenfalls und zwar bei der Refresh-Methode.

Was ist da nur im Busch??

Hat niemand eine Idee? :-\