Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Acces 2003 VBA Abfrageergebnis als .csv speichern

Frage Entwicklung VB for Applications

Mitglied: roberth

roberth (Level 1) - Jetzt verbinden

11.12.2007, aktualisiert 13:22 Uhr, 7862 Aufrufe, 2 Kommentare

Hallo,

habe hier ein kleines aber nerviges Problemchen. Ich muss zwingend ein Abfrageergebnis aus Access 2003 als Excel CSV speichern.
Dazu hab ich schon diverse freie Codeschnipsel probiert, hier wäre die perfekte Lösung allerdings speichert er das File nicht als CSV sondern als Excel Tabelle.

Kann und mag mir jemand helfen ?

Gruß,
Roberth


Hier mal der Code:

unction OLEExcelExport(ExcelFullDatNam As String, ExcelTabNam As String, _
ExcelOffenLassen As Boolean, _
ParamArray Werteliste()) As Boolean
'
' Ab Access 97
'
' Standard Excel-Export kann nur neue Tabellen erzeugen und komplette Abfragen
' exportieren
'
' Deshalb eigene Funktion:
' - Exportiert eine Datenzeile (bestehende) (offene) Exceltabelle
' - Daten werden an die letzte freie Zeile angehängt
' - Datei, Tabelle können bei Bedarf erzeugt werden
' - ist Excelanwendung kann offen gehalten werden
' ParamArray: übergeben werden entweder einzelne Werte oder ein Wertefeld
Const xlUp = -4162 ' so spart man den Verweis auf MS Excel
Dim WorkBookNam As String
Dim TabExist As Boolean, ExcelIsOpen As Boolean, WorkbookIsOpen As Boolean
Dim xlApp As Object ' Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object ' Excel.Worksheet
Dim ErsteFreieZeile As Long, i As Integer, AktSpalte As Integer
Dim j As Integer

On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
Else
ExcelIsOpen = True
End If
On Error GoTo 0
' 1. Exceldatei evtl. öffnen/anlegen
' evtl ".xls" anhängen
If Len(ExcelFullDatNam) < 5 Then ExcelFullDatNam = ExcelFullDatNam & ".csv"
If Mid(ExcelFullDatNam, Len(ExcelFullDatNam) - 3, 4) <> ".csv" Then _
ExcelFullDatNam = ExcelFullDatNam & ".csv"
' -> alle .xls in .csv getauscht
If Len(Dir(ExcelFullDatNam)) > 0 Then
WorkBookNam = NurDatNam(ExcelFullDatNam)
For Each xlBook In xlApp.Workbooks
If xlBook.name = WorkBookNam Then WorkbookIsOpen = True
Next
If Not WorkbookIsOpen Then
Set xlBook = xlApp.Workbooks.Open(ExcelFullDatNam)
Else
Set xlBook = xlApp.Workbooks(WorkBookNam)
End If
Else
Set xlBook = xlApp.Workbooks.Add
xlBook.SaveAs ExcelFullDatNam
End If
' 2. Tabellenblatt zuweisen/anlegen
For Each xlSheet In xlBook.Worksheets
If xlSheet.name = ExcelTabNam Then TabExist = True
Next
If TabExist Then
Set xlSheet = xlBook.Worksheets(ExcelTabNam)
Else
Set xlSheet = xlBook.Worksheets.Add
xlSheet.name = ExcelTabNam
End If
With xlSheet
' erste freie Zeile (Spalte A leer) ermitteln
.Activate ' falls Exceldatei geöffnet war
ErsteFreieZeile = .Range("A65536").End(xlUp).row + 1
If ErsteFreieZeile = 2 Then
If .Cells(1, 1) = "" Then ErsteFreieZeile = 1
End If
For i = 0 To UBound(Werteliste)
If IsArray(Werteliste(i)) Then
For j = 0 To UBound(Werteliste(i))
AktSpalte = AktSpalte + 1
.Cells(ErsteFreieZeile, AktSpalte) = Werteliste(i)(j)
Next j
Else
AktSpalte = AktSpalte + 1
.Cells(ErsteFreieZeile, AktSpalte) = Werteliste(i)
End If
Next i
End With
If ExcelOffenLassen = True Then
xlApp.Visible = True
Else
xlBook.Save
xlBook.Close
' falls Excel geöffnet wurde jetzt schließen
If Not ExcelIsOpen Then xlApp.Application.Quit

End If

xlApp.ActiveWorkbook.Save
xlApp.ActiveWindow.Close
xlApp.Application.Quit


Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
OLEExcelExport = True
End Function
Mitglied: Schi73
11.12.2007 um 12:52 Uhr
Hallo Roberth

Wieso erstellst du dir nicht ein Makro? Dort einfach die Aktion TransferText nutzen, die Argumente sollten selbsterklärend sein. Und wenn du es unbedingt in VBA haben willst, kannst du es ja hinterher umwandeln.

Gruß Schi
Bitte warten ..
Mitglied: roberth
11.12.2007 um 13:22 Uhr
danke für die antwort
gibt es denn keine Möglichkeit das in den bestehenden Code einzubetten, ohne docmd.transfertext ? Denn eigentlich funktioniert j alles so wies soll, bis auf das ich halt gerne eine csv datei hätte anstatt ein xls...
Das müsste doch möglich sein ?

Gruß,
rob
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VBA - viele CSV Dateien in ein Excel sheet (2)

Frage von LordY6 zum Thema VB for Applications ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Batch & Shell
CSV nach CSV durchsuchen und speichern (6)

Frage von jocheng zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...