Access/VBA: Abfrage für Word exportieren

Hallo,

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?

Hallo,

nach Excel geht es recht einfach über

DoCmd.TransferSpreadsheet etc.

ujk

Hi,

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.

Hallo,

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  

Hope this helps
Tschau
Peter

Hallo,

ist das ein Problem? Wie „bastelst“ Du die Abfrage zusammen?

Wenn Du Sie mit

Set qdfNew = db.CreateQueryDef(stAbfrage, stSQL1)

erzeugst, ist es eine real existierende Abfrage und kann auch exportiert werden. Danach kannst Du sie auch wieder löschen.

Andere Möglichkeit: Die Abfrage als Recordset öffnen und in einer Schleife durch alle Datensätze die Felder in eine Textdatei schreiben.

ujk