thomas1972
Goto Top

Laufzeitfehler 424 Objekt erforderlich bei CreateQueryDef

Hallo,
ich versuche eine abfrage als CSV Datei zu speichern

Dim user As String
Dim qd As DAO.QueryDef

user= "SELECT Management.[Mail] FROM Managementl"  
Set qd = db.CreateQueryDef("tmpExport", user)  
DoCmd.TransferText acExportDelim, , "tmpExport", "c:\temp\user_export.csv"  
db.QueryDefs.Delete "tmpExport"  

Bei der Zeile Set qd = db.CreateQueryDef("tmpExport", user)
erhalte ich einen Laufzeitfehler 424 Objekt erforderlich.

Kann mir dieses nicht erklären

Grüße aus München

Content-Key: 259190

Url: https://administrator.de/contentid/259190

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: emeriks
emeriks 08.01.2015 um 13:57:03 Uhr
Goto Top
Hi,
in Deinem Code Schnippel wird "db" nicht instanziert .., Und "DoCmd" auch nicht ...

E.
Mitglied: thomas1972
thomas1972 08.01.2015 um 14:08:28 Uhr
Goto Top
Hallo,
danke für die Info,
Set db = CurrentDb
wars gewesen, soweit, nur ergibt der export nun einen Fehler 3441 -> Das Feldtrennzeichen für die angegebene Textdatei entspricht dem Dezimaltrennzeichen oder Texttrennzeichen

Wie kann ich einen export vornehmen ohne extra eine Spezifikationsdatei vorgeben zu müssen
Die werte sollen als ";" getrennt ausgegeben werden
Mitglied: colinardo
colinardo 10.01.2015 aktualisiert um 11:35:42 Uhr
Goto Top
Hallo thomas1972,
ohne zusätzliche Exportspezifikation läuft das nicht mehr. Ich mache den CSV-Export immer mit einer eigenen Funktion:
Function ExportAsCSV(strSQL As String, strExportPath As String, strDelim As String, exportHeaders As Boolean)
    Dim db As Database, rs As Recordset, fso As Object, objFile As Object, strLine As String, col As Field, txtQuote As String
    txtQuote = """"  
    Set db = CurrentDb
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Set objFile = fso.OpenTextFile(strExportPath, 2, True)
    Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot, dbForwardOnly)
    
    If exportHeaders And Not rs.EOF Then
        strLine = ""  
        For Each col In rs.Fields
            strLine = strLine & strDelim & txtQuote & col.Name & txtQuote
        Next
        objFile.WriteLine (Mid(strLine, 2))
    End If
    While Not rs.EOF
        strLine = ""  
        For Each col In rs.Fields
            strLine = strLine & strDelim & txtQuote & col.Value & txtQuote
        Next
        objFile.WriteLine (Mid(strLine, 2))
        rs.MoveNext
    Wend
    objFile.Close
    Set fso = Nothing
    Set db = Nothing
    Set rs = Nothing
End Function
Den Export deiner Query führst du dann folgendermaßen aus:
ExportAsCSV "SELECT Management.[Mail] FROM Managementl", "c:\temp\user_export.csv", ";", False
Grüße Uwe