Supportnet / Forum / Datenbanken
Variable als Datenblattname mitgeben
Frage
Hi Leute,
habe über VBA eine Anweisung geschrieben, dass eine Abfrage direkt nach Excel ausgegeben wird. Funzt. Jetzt möchte ich noch gerne den Wert einer Variablen dem erstellten Datenblatt zuweisen. Das kann ich doch bestimmt mit Access2000 machen - aber wie?
Gruß
Jürgen
Antwort 1 von 14071
habe mir gerade überlegt, dass es auch Sinn machen würde, die Variable als Dateinamen einzusetzen. Da weiss ich aber auch nicht wie das funktioniert.
Bin dankbar für Hilfe.
ciao
Bin dankbar für Hilfe.
ciao
Antwort 2 von 14071
Moin,
keine eine Idee, wie ich das hinbekommen könnte? :-(
keine eine Idee, wie ich das hinbekommen könnte? :-(
Antwort 3 von Teddy7
Hallo Jürgen !
Das müßte irgendwie unter dem definierten Excel-Object ein workbook.saveas ... sein.
Was hast Du denn bisher als VBA-Code.
Es gibt mehrere Möglichkeiten Daten an Excel zu geben.
Poste doch mal Deinen Code, oder mail ihn mir zu.
Gruß
Teddy
Das müßte irgendwie unter dem definierten Excel-Object ein workbook.saveas ... sein.
Was hast Du denn bisher als VBA-Code.
Es gibt mehrere Möglichkeiten Daten an Excel zu geben.
Poste doch mal Deinen Code, oder mail ihn mir zu.
Gruß
Teddy
Antwort 4 von 14071
Hi Teddy,
bisher hab ich folgenden Code:
Private Sub Befehl20_Click()
' übergibt die Daten des Berichts Vertragsliste_Personal an die Exceltabelle Vertrag
DoCmd.OutputTo acOutputReport, "Vertragsliste_Personal", _
acFormatXLS, "Vertrag.xls", True
End Sub
als Variable würde ich mit Dim KP as string den Namen eines Mitarbeiters definieren und mit KP = Feldname auslesen, das funktioniert in einer anderen Prozedur auch schon.
Danke, daß Du Dich mit meinem Problem beschäftigst.
Gruß
Jürgen
bisher hab ich folgenden Code:
Private Sub Befehl20_Click()
' übergibt die Daten des Berichts Vertragsliste_Personal an die Exceltabelle Vertrag
DoCmd.OutputTo acOutputReport, "Vertragsliste_Personal", _
acFormatXLS, "Vertrag.xls", True
End Sub
als Variable würde ich mit Dim KP as string den Namen eines Mitarbeiters definieren und mit KP = Feldname auslesen, das funktioniert in einer anderen Prozedur auch schon.
Danke, daß Du Dich mit meinem Problem beschäftigst.
Gruß
Jürgen
Antwort 5 von Teddy7
Hallo Jürgen !
Durch den DoCmd wird die Excel-Datei schon angelegt. Wenn Du einen anderen Datei-Namen haben willst, mußt Du ihn im DoCmd bereits mitgeben.
Im folgenden Code habe ich die Excel-Datei anschließend nochmal geöffnet und den Namen des ersten Tabellenblatts geändert. Dazu habe ich den letzten Parameter des DoCmd auf false ändern müssen weil die Datei sonst geöffnet ist und ich deshalb nichts ändern kann.
----------------
Private Sub Test_Click()
Dim xdatei As String
Dim xtab As String
xdatei = "C:\Vertrag.xls"
xtab = "Blatt1"
DoCmd.OutputTo acOutputReport, "repDetails", _
acFormatXLS, xdatei, False
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.Workbooks.Open xdatei
objExcel.Sheets(1).Select
objExcel.ActiveSheet.Name = xtab
objExcel.ActiveWorkbook.Save
objExcel.Workbooks.Close
Set objExcel = Nothing
End Sub
-----------------
Gruß
Teddy
Durch den DoCmd wird die Excel-Datei schon angelegt. Wenn Du einen anderen Datei-Namen haben willst, mußt Du ihn im DoCmd bereits mitgeben.
Im folgenden Code habe ich die Excel-Datei anschließend nochmal geöffnet und den Namen des ersten Tabellenblatts geändert. Dazu habe ich den letzten Parameter des DoCmd auf false ändern müssen weil die Datei sonst geöffnet ist und ich deshalb nichts ändern kann.
----------------
Private Sub Test_Click()
Dim xdatei As String
Dim xtab As String
xdatei = "C:\Vertrag.xls"
xtab = "Blatt1"
DoCmd.OutputTo acOutputReport, "repDetails", _
acFormatXLS, xdatei, False
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.Workbooks.Open xdatei
objExcel.Sheets(1).Select
objExcel.ActiveSheet.Name = xtab
objExcel.ActiveWorkbook.Save
objExcel.Workbooks.Close
Set objExcel = Nothing
End Sub
-----------------
Gruß
Teddy
Antwort 6 von 14071
Hi Teddy,
der Code bleibt bei mir in der Zeile hängen, in der objExcel als Excel.App deklariert wird. Die Fehlermeldung lauten "benutzerdefinierter Typ nicht definiert". Vermute mal, daß ich Access irgendwie mitteilen muß, daß es ein objExcel gibt. Wie gehe ich dabei vor?
Gruß
Jürgen
der Code bleibt bei mir in der Zeile hängen, in der objExcel als Excel.App deklariert wird. Die Fehlermeldung lauten "benutzerdefinierter Typ nicht definiert". Vermute mal, daß ich Access irgendwie mitteilen muß, daß es ein objExcel gibt. Wie gehe ich dabei vor?
Gruß
Jürgen
Antwort 7 von Teddy7
sorry - hätte ich dran denken müssen.
In dem Bild, in dem Du den Code eingegeben hast, über Extras -> Verweise
die Microsoft Excel 8.0 Object library (für A97) einbinden. (evtl. zusätzlich noch die Microsoft Office 8.0 Object library)
Gruß
Teddy
In dem Bild, in dem Du den Code eingegeben hast, über Extras -> Verweise
die Microsoft Excel 8.0 Object library (für A97) einbinden. (evtl. zusätzlich noch die Microsoft Office 8.0 Object library)
Gruß
Teddy
Antwort 8 von 14071
Guten Morgen Teddy,
hab gerade die Libraries eingebunden.
Es funzt perfekt - :-))).
Herzlichen Dank
Jürgen
hab gerade die Libraries eingebunden.
Es funzt perfekt - :-))).
Herzlichen Dank
Jürgen