Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Export von Tabelle als CSV

Begonnen von brueninghoff, Juli 07, 2023, 11:57:32

⏪ vorheriges - nächstes ⏩

brueninghoff

Hallo!

ich habe eine Exportfunktion in Access die eine temporäre Tabelle befüllt und dann diese als CSV exportieren soll, ich erhalte aber beim Ausführen immer die Fehlermeldung aus folgendem Screenshot.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Hier der Code:
Private Sub CMD_WD_CSV_Click()
On Error GoTo Err_CMD_WD_CSV_Click

'Exportdatei
Dim FILE As String
FILE = "O:\Daten-Public\Mast\Wirtschaftsdünger\Meldungen\WD_" & Me.Txt_Jahr & Format(Me.Txt_Monat, "00") & ".csv"


Dim datexist As String
datexist = Dir(FILE)
If Len(datexist) <> 0 Then
       
    If MsgBox("Vorhandene Datei " & FILE & " überschreiben?", vbYesNo + vbQuestion, "Datei überschreiben?") = vbYes Then
        Shell ("cmd.exe /c " & FILE & "-y")
        MsgBox "Vorhandene Datei gelöscht.", vbOKOnly + vbInformation, "Erstellung Meldedatei"
    Else
        GoTo Exit_CMD_WD_CSV_Click
    End If
End If
   

DoCmd.SetWarnings False
'DoCmd.Hourglass True
'Temp-Tabelle löschen und füllen
DoCmd.RunSQL "DELETE FROM TBL_Wirtschaftsduenger_Export"
DoCmd.OpenQuery "QRY_WD_EXP"
'Textdatei erstellen
DoCmd.TransferText acExportDelim, "WD_Exportspezifikation", "TBL_Wirtschaftsduenger_Export", FILE, True, ""
DoCmd.SetWarnings True
DoCmd.Hourglass False
MsgBox "Meldedatei " & FILE & " wurde erstellt.", vbOKOnly + vbExclamation, "Erstellung Meldedatei"



'Exportdatei erstellen und öffnen
Open FILE For Output As #1
        rs.MoveFirst
        Print #1, "Spalte 1;Spalte 2"
        Do Until rs.EOF = True
            Print #1, rs!WD_DATUM_VON & ";" & rs!WD_DATUM_BIS

        rs.MoveNext
        Loop

'Datei schließen
Close #1

Exit_CMD_WD_CSV_Click:
     Exit Sub

Err_CMD_WD_CSV_Click:
    MsgBox Err.Description
    Resume Exit_CMD_WD_CSV_Click
   
End Sub

Der Fehler kommt in der Zeile 'DoCmd.TransferText acExportDelim, "WD_Exportspezifikation", "TBL_Wirtschaftsduenger_Export", FILE, True, ""'
Den Pfad habe ich kontrolliert, der ist vorhanden, verstehe aber nicht warum Access die Datei versucht zu öffnen, obwohl die eigentlich ja erst an der stelle erzeugt wird.

kann sich jemand da einen Reim drauf machen?

markusxy

Das Problem mit dieser unlogischen Fehlermeldung gabs erst kürzlich.
Es lag an einer fehlerhaften Exportspezifikation. Also mal prüfen.

DF6GL

#2
Hallo,

unverständlicher  Löschvorgang und unklare Programm-Logik...


(LuftCode!:)
ZitatPrivate Sub CMD_WD_CSV_Click()
On Error GoTo Err_CMD_WD_CSV_Click

'Exportdatei
Dim FILE As String
FILE = "O:\Daten-Public\Mast\Wirtschaftsdünger\Meldungen\WD_" & Me.Txt_Jahr & Format(Me.Txt_Monat, "00") & ".csv"



If Dir(FILE) <> "" Then
       
    If MsgBox("Vorhandene Datei " & FILE & " überschreiben?", vbYesNo + vbQuestion, "Datei überschreiben?") = vbYes Then
        Kill File
        MsgBox "Vorhandene Datei gelöscht.", vbOKOnly + vbInformation, "Erstellung Meldedatei"
    Else
        Exit Sub
    End If
End If
   

'DoCmd.Hourglass True
'Temp-Tabelle löschen und füllen
Currentdb.Execute  "DELETE * FROM TBL_Wirtschaftsduenger_Export", dbFailOnError

' Hier fehlt das "Füllen" (der Tabelle) komplett.....


'Textdatei erstellen
DoCmd.TransferText acExportDelim, "WD_Exportspezifikation", "TBL_Wirtschaftsduenger_Export", FILE, True, ""

DoCmd.Hourglass False
MsgBox "Meldedatei " & FILE & " wurde erstellt.", vbOKOnly + vbExclamation, "Erstellung Meldedatei"



'Exportdatei erstellen und öffnen    Was soll das Ganze hier?
Dim LU as Long, rs As dao.Recortset
LU = Freefile
set rs = currentdb.openrecordset ("Select * from TBL_XXXXXXX, Where strFeld1 = 'Wasdenn?'",dbOpenSnapShot)
Open FILE For Output As #LU
        rs.MoveFirst
        Print #1, "Spalte 1;Spalte 2"
        Do Until rs.EOF = True
            Print #1, rs!WD_DATUM_VON & ";" & rs!WD_DATUM_BIS

        rs.MoveNext
        Loop

'Datei schließen
Close #LU





'Exportdatei  öffnen
   FollowHyperlink File



Exit_CMD_WD_CSV_Click:
     Exit Sub

Err_CMD_WD_CSV_Click:
    MsgBox Err.Description
    Resume Exit_CMD_WD_CSV_Click
   
End Sub


Wenn weiterhin an ".csv" gemeckert wird, dann benutze ".txt" als Datei-Endung.

brueninghoff

Danke für die Rückmeldungen!

@markusxy Ich kann auf den ersten Blick nichts fehlerhaftes in der Exportspezifikation erkennen, kannst du mir etwas konkretes nennen das ich kontrollieren soll?

@DF6GL habe den Code leider nicht komplett selbst geschrieben, nur auf den Schreibtisch bekommen um die Schnittstelle anzupassen.... was der letzte Passus da bewirken soll ist mir auch nicht ganz klar, bis auf weiteres nehme ich den auch mal raus.
Das befüllen der Tabelle passiert über 'DoCmd.OpenQuery "QRY_WD_EXP"' direkt nach dem DELETE. Das ist eine Anfüge Abfrage, die dann die entsprechenden Daten der Tabelle hinzufügt.

Wenn ich die Endung auf txt ändere, erhalte ich die gleiche Fehlermeldung:
Sie dürfen in diesem Board keine Dateianhänge sehen.

markusxy

Zitat von: brueninghoff am Juli 10, 2023, 11:21:33... was der letzte Passus da bewirken soll ist mir auch nicht ganz klar, bis auf weiteres nehme ich den auch mal raus.


Nur weil hier jemand erkärt der Teil sei unklar weil der Code unvollständig gezeigt wird willst du ihn rausnehmen - obwohl du die Zusammenhänge nicht erkennen kannst?
Ernsthaft jetzt?

Bezüglich Spezifikation musst du einfach alles durchschauen, die Fehlermeldung ist ja unspezifisch.
Feldnamen, Datentypen, Formatierung für jedes Feld.

brueninghoff

ich lösche den Teil ja nicht direkt, erstmal wird nur auskommentiert. Zudem arbeite ich mit einer Backup-Version, falls sich mir der Sinn also noch erschließt ist also nichts weg.