Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: roberth

roberth (Level 1) - Jetzt verbinden

11.12.2007, aktualisiert 13:22 Uhr, 7968 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 ..
Ähnliche Inhalte
Batch & Shell
CSV nach CSV durchsuchen und speichern
Frage von jochengBatch & Shell6 Kommentare

Hallo Leute ich fuchtel wieder an einem CSV Problem. Ich habe eine CSV mit Werten die ich nach einer ...

VB for Applications
Speichern als csv
Frage von 123660VB for Applications

Hallo Zusammen, ich habe folgendes problem. ich möchte mein Code anpassen dass er dann Pfad festlegt ohne abfragen. Leider ...

VB for Applications
Csv in xml umwandeln mit VBA
Frage von 130771VB for Applications8 Kommentare

Hallo zusammen, ich bin neu in der Commuity und auch neu im Bereich der Programmierung mit VBA. Ich habe ...

Windows Server
Alle User im AD als CSV speichern
Frage von opc123Windows Server6 Kommentare

Hallo, wie kann ich alle User im AD in eine CSV speichern, aber ohne das die im AD gelöscht ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 2 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 8 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 22 StundenSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server38 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless21 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...