Zur aktuellen Datenbank verbinden

Parantatatam

mag Cookies & Kekse
Hallo Tutorianer,

ich konnte mich bis eben noch halten, aber so langsam nähert sich doch mein Kopf in zyklischen Abständen meiner Tischplatte. Und der Grund dafür ist wieder einmal VB6! Wie sollte es anders sein.

Zu meinem Problem: ich bastle gerade an einer Möglichkeit um eine Datenbank, also genauer gesagt einen Verbund aus drei Tabellen, aus dieser Datenbank auszulesen, damit ich sie dann in eine CSV-Datei speicher kann. Das würde alles auch funktionieren, würde ich es erstmal schaffen, dass mir ADO nicht immer sagen würde, dass die "Objektvariable oder With-Blockbvariable nicht festgelegt" (Laufzeitfehler 91) ist. Das passiert in folgendem Skript:

Code:
'=== Verbinung zur Datenbank herstellen
Dim RecordSet As ADODB.RecordSet
Dim Command As ADODB.Command
Dim Line As String

Set Command.ActiveConnection = CurrentProject.Connection
Command.CommandText = "SELECT Bürgschaften.LaufNummer, Firmen.Name AS Firmen_Name, Bürgschaftsgeber.Name AS Bürgschaftsgeber_Name, Bürgschaften.BürgNummer, Bürgschaften.BürgDatum, Bürgschaften.Bauvorhaben, Bürgschaften.Art, Bürgschaften.Betrag FROM Firmen INNER JOIN (Bürgschaftsgeber INNER JOIN Bürgschaften ON Bürgschaftsgeber.ID=Bürgschaften.BürgGeberID) ON Firmen.ID=Bürgschaften.FirmaID"
Set RecordSet = Command.Execute

'=== Outputstream erstellen
Set fs = CreateObject("Scripting.FileSystemObject")
Set c = fs.CreateTextFile(Filename, True)

'Kopfzeile schreiben
c.WriteLine ("Laufende Nummer;Firma;Bürgschaftsgeber;Bürgschaftsnummer;Bürgschaftsdatum;Bauvorhaben;Art der Bürgschaft;Betrag")

Do While Not RecordSet.EOF
    Line = ""
    For I = 0 To RecordSet.Fields.Count - 1
        Line = Line + CStr(RecordSet.Fields(I).Value)
    Next I
    
    RecordSet.MoveNext
    c.WriteLine (Line)
Loop

'=== Alle Variablen zurücksetzen
Set RecordSet = Nothing
Set Command = Nothing
c.Close

'Speichervorgang bestätigen
MsgBox "Datei wurde gespeichert!"

Der Fehler ist lokalisiert in Zeile 6. Falls jemanden etwas dazu einfällt, ich wäre ihm unsagbar dankbar dafür.
 
Ich würde auf die schnelle sagen, dass er CurrentProject an diesem Ort nicht erkennt. Ist CurrentProject als global deklariert? Oder woher kennt das Program CurrentProject?
 
Also wenn ich "Dim Command As New ADODB.Command" schreibe, komme ich zumindest 2 Zeilen weiter im Code. Dann kommt bei mir (natürlich) der Fehler das die Datenbank/Tabelle nicht gefunden wird.

Hier wird das Ganze vorgehen auch nochmal gut beschrieben.
 
Zurück