ich möchte über VBA eine Abfrage exportieren. Das Problem ist nur, dass ich dafür keine „fertige“ Abfrage habe - die wird im Code erst zusammengebaut, je nachdem welche Einschränkungen der Daten der User im Formular getroffen hat.
Ich brauche die Daten in irgendeiner Form, die ich dann als Quelle für einen Serienbrief im Word weiterverwenden kann (txt, csv, xls - whatever).
Mein Ziel ist, dass der User im Access-Formular irgendwelche Einschränkungen trifft und auf einen Button „Serienbrief“ klickt - und dann sollen die entsprechenden Daten exportiert werden und Word soll automatisch ein neues Dokument (natürlich nach einer vorhandenen Vorlage) öffnen, wo als Datenquelle für den Serienbrief schon die Daten aus der Access-Abfrage vorhanden sind. Der User soll nur noch den Brieftext schreiben müssen.
Kann mir jemand sagen, ob und wie ich das Ergebnis einer „variable“ Abfrage in ein file exportieren kann?
das Problem ist aber, dass die Abfrage erst zur Laufzeit im Code zusammengebastelt wird (geht über mehrere Tabellen).
Bei TransferSpreadsheet kann ich ja nur eine existierende Tabelle oder Abfrage angeben.
ich stelle dir mal ein Stueck VBA-Code ein, der wahrscheinlich dein Problem loesen kann:
Private Sub btnExportEXCEL\_Click()
Dim tblDef As QueryDef
Dim txtDocPath As String
' "OverviewExport ist irgendeine Abfrage.. kann auch leer sein
Set tblDef = CurrentDb.QueryDefs("OverviewExport")
' generalSQLString ist eine SQLAbfrage die an anderer Stelle zusammengebaut wird, ider Form "Select Feld1... from Tabelle where ...."
If Not IsNull(generalSqlString) And Not generalSqlString = "" Then
tblDef.SQL = generalSqlString
End If
' hier ist ein Aufruf in ein Frunktion die den DateiDialog hochzieht
txtDocPath = internalFileDialog(True) ' SaveAs Dialog
If IsNull(txtDocPath) Or txtDocPath = "" Then
Exit Sub
End If
' Jetzt funktioniert TransferSpreadsheet
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "OverviewExport", txtDocPath, True
' Dann machen wir die Exportdatei auf
Application.FollowHyperlink txtDocPath, , True, False
End Sub