... for output as = ???
Guten Morgen!
Der VBA-Code
...
open meine Variable for output as #F
speichert eine Datei im csv-Format.
Welchen Parameter muss ich mitgegen, damit die Datei im xls-Format gespeichert wird?
Gibt es eine diebezüglich Aufstellung der Typen?
Thanx
Tom
Antwort schreiben
Antwort 1 von Tomschi vom 06.09.2019, 08:13 Options
Hi!
Noch eine Frage dazu:
#4 = csv-Format
#1 = txt-Format
Ist das richtig?
Gibt s noch andere "#?-Angaben" welche bestimmten Formaten entsprechen?
Bye
Tom
Antwort 2 von lleopard vom 07.09.2019, 20:32 Options
Hi Tom,
ohne langes Gerede...
xls hat keinen Parameter
open meine Variable for output as #F
#f is oder sollte ein freies File sein. freefile ist meistens 1, wenn man alle anderen vorher sauber geschlossen hat.
meine Variable Sollte Pfad und Dateiname sein. Klar kannste da auch sagen c:\meineTabelle.xls, aber ob Excel damit was anfangen kann? Glaub ich weniger! Außerdem gibt es in den Verweisen eine Schnittstelle zu deiner Excel-Applikation. Versuchs doch mal damit.
dim oExc as Excel.Application
...
Set oExc = GetObject(, "Excel.Application ")
With oExcel
Randomize
.Visible = False
On Error Resume Next
.Workbooks.Open Pfad & Dateiname
end with
So kommste besser weiter, denke ich...
Hier mal das was Access zu dem Thema Open sagt:
In diesem Beispiel werden verschiedene Einsatzmöglichkeiten der Open-Anweisung veranschaulicht, um Ein-/Ausgabeoperationen auf Dateien durchzuführen.
Der folgende Code öffnet die Datei DATEI1 für sequentielle Eingaben.
Open "DATEI1" For Input As #1
' Datei schließen, bevor sie in einem anderen Modus erneut
' geöffnet wird.
Close #1
Dieses Beispiel öffnet die Datei im Modus Binary und ausschließlich für Schreiboperationen.
Open "DATEI1" For Binary Access Write As #1
' Datei schließen, bevor sie in einem anderen Modus erneut
' geöffnet wird.
Close #1
Das folgende Beispiel öffnet die Datei mit wahlfreiem Zugriff. Die Datei enthält Datensätze des benutzerdefinierten Typs Datensatz.
Type Datensatz ' Datentyp definieren.
Kennung As Integer
Name As String * 20
End Type
Dim DSatz1 As Datensatz ' Variable deklarieren.
Open "DATEI1" For Random As #1 Len = Len(DSatz1)
' Datei schließen, bevor sie in einem anderen Modus erneut
' geöffnet wird.
Close #1
Dieses Codebeispiel öffnet die Datei für sequentielle Ausgaben. Alle Prozesse können Lese- und Schreiboperationen auf der Datei ausführen.
Open "DATEI1" For Output Shared As #1
' Datei schließen, bevor sie in einem anderen Modus erneut
' geöffnet wird.
Close #1
Dieses Codebeispiel öffnet die Datei im Modus Binary für Lesezugriffe. Andere Prozesse können die Datei nicht lesen.
Open "DATEI1" For Binary Access Read Lock Read As #1
Wenn du das sorgfältig gelesen hast, wirst du feststellen, daß man sich mit open Schreib- und/oder Lesezugriff auf eine Datei verschafft oder eine neue Datei erzeugt.
Ich denke nicht, daß du weißt - ich weiß es auch nicht! - was man alles in eine xls-datei schreiben muß, damit Excel damit was anfangen kann... Dafür gibt es aber auch den Befehl
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Tabname, FileName, HasfieldNames, Range, UseOA
acSpreadsheetTypeExcel97 kann durch 8 ersetzt werden ...
Gruß Leo