Hi,
ich habe eine Datenbank, die man komplett über Formulare befüllt und die im Hintergrund mit VBA programmiert wurde. Dabei habe ich unter anderem ein Zusammefassungsform, wo alle wichtigen Informationen über einen Kunden aufgeführt sind (rund 40 Felder).
Nun ist die Frage, wie ich den Inhalt dieses Form per Klick auf einen Buttom (in dem Form) in Excel exportieren kann, sodass ich es auch den Kollegen zugänglich machen kann, die nicht über Access verfügen. Also vll einmal Schritt für Schritt:
1) Es muss per Buttom Click eine vorgefertigte Excel Datei geöffnet werden, die aber nicht überschrieben werden soll. Die Vorlage möchte ich vorgestalten und irgendwo auf meiner Festplatte ablegen.
2) Nun möchte ich die Inhalte aus den Textboxen in die Felder in der Excel Datei schreiben, dh irgendwie "A1 = Me.Name".
Weiß jemand, wie ich dahin komme?
Vielen Dank!
Jelto
Hallo,
siehe mal hier: http://dbwiki.net/images/3/3f/AccSampleAccessToExcel.zip
Hi,
kann die Datei leider nicht öffnen. Habe das jetzt wie folgt gemacht:
Private Sub Excel_Export_Click()
Dim xlAnw As Excel.Application
Dim xlBuch As Excel.Workbook
Dim xlArbBlatt As Excel.Worksheet
Set xlAnw = CreateObject("Excel.Application")
Set xlBuch = xlAnw.Workbooks.Open("C:\Vorlage.xls") 'Die Excel-Datei öffnen
Set xlArbBlatt = xlBuch.Worksheets(1) 'erstes Sheet
'General information
xlArbBlatt.Range("B3").Value = Me.Name
xlArbBlatt.Range("B4").Value = Me.Year
xlBuch.Save
xlAnw.Quit
Set xlBuch = Nothing
Set xlArbBlatt = Nothing
Set xlAnw = Nothing
End Sub
Dabei wird allerdings die bestehende Vorlage überschrieben.
Kann ich es so ändern, dass
1) Die Orginaldatei unverändert bleibt.
2) Sich das neue Dokument in Excel sofort öffnet und ich es dann abspeichern kann. Idealerweise wird der Speicherort schon vorausgewählt.
Danke.
Hallo,
1) Schau mal in die Hilfe zu SaveAS
2) Die Eigenschaft "Visible" des Excel-Objekts muss nur auf "ja" gesetzt werden.
Hallo,
wenn du eine Excel-Datei im Sinne einer Vorlage verwenden willst, so solltest du
1. die Datei in eine *.xlt Datei umbenennen und
2. eine neue Datei auf Basis dieser Vorlage entsprechend öffnen
Dazu setzt du die ADD-Methode des Workbooks-Objekts ein.
Danke DF6GL und MaggieMay,
@MaggieMay
Ok, und wie funktioniert das genau?
Also Umbenennen schaffe ich denke ich, allerdings weiß ich dann nicht, was ich außerdem noch verändern muss.
Danke
Du solltest die xlt-Datei besser via "Speichern unter" aus Excel heraus erzeugen und nicht durch Umbenennen, da war ich wohl nicht ganz bei der Sache. Das halte ich für sicherer, ausprobiert habe ich das jedoch nicht.
Zweitens könntest du dich mal in der Excel-Hilfe umsehen und dir einen Überblick über die hier zu verwendenden Methoden machen. Dazu sollte das Stichwort "Add" eigentlich schon genügen, um entsprechende Erläuterungen und auch Beispiele in der Hilfe zu finden.
Der fertige Code könnte dann so aussehen:
Private Sub Excel_Export_Click()
Dim xlAnw As Excel.Application
Dim xlBuch As Excel.Workbook
Dim xlArbBlatt As Excel.Worksheet
Set xlAnw = CreateObject("Excel.Application")
Set xlBuch = xlAnw.Workbooks.Add("C:\Vorlage.xlt") 'Eine neue Excel-Datei auf Basis einer Vorlage öffnen
Set xlArbBlatt = xlBuch.Worksheets(1) 'erstes Sheet
'General information
xlArbBlatt.Range("B3").Value = Me.Name
xlArbBlatt.Range("B4").Value = Me.Year
xlBuch.SaveAs "C:\datei_neu.xls"
xlAnw.Quit
Set xlBuch = Nothing
Set xlArbBlatt = Nothing
Set xlAnw = Nothing
End Sub