PDA

Vollständige Version anzeigen : Serienbriefdaten aus einer Abfrage


Andrew
23.10.2001, 14:28
hi ihr

hab folgendes problem

ich möchte meine daten für einen serienbrief aus einer abfrage holen. bisher hatte ich es so, dass die daten über eine tabellenerstellungabfrage in eine tabelle geschrieben und sie von dort aus in word rübergeschickt.
das ganze hab ich mit folegenden code gemacht:

Private Sub Befehl27_Click()

On Error GoTo Err_Word_Click

Dim oApp As Object
Dim Vorlage As String
Dim db As Database
Dim rst As Recordset
Dim Nummer As String
Dim Zeichen As Variant

'******************************************************************************* *************
'Word wird geladen
'******************************************************************************* *************
Vorlage = "c:\Windows\Desktop\Datenbank\SereindrukVorlage.dot" 'Vorlage definieren (unbedingt anpassen)
On Error Resume Next 'Wenn Word schon gestartet ist
Set oApp = GetObject(, "Word.Application.8")
If Err.Number <> 0 Then 'Wenn Word nicht startet
Err.Clear ' Fehlerliste löschen
'Neues Wordobjekt erstellen
Set oApp = CreateObject("Word.Application.8")
Else 'wenn Word schon gestartet ist
oApp.Activate 'Word zum aktiven Fenster machen
End If

With oApp 'ausführen des Objektes
.Documents.Add Template:=Vorlage 'die Vorlage als Dokument öffnen
.Visible = True 'Vorlage in Word anzeigen
.WindowState = wdWindowStateMaximize 'Word in Vollbild
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT * FROM Serienbrief;", dbOpenDynaset) 'Tabelle Serienbrief öffnen
rst.MoveFirst 'gehe zum ersten Datensatz
Do Until rst.EOF 'wenn letzter Datensatz erreicht Schleife verlassen
If .ActiveDocument.Bookmarks.Exists("AnredeAdr") = True Then 'Wenn die Textmarke im Word Dokument existiert
.ActiveDocument.Bookmarks("AnredeAdr").Select 'gehe zu dieser Textmarke
.Selection.InsertAfter (rst![AnredeAdr]) 'füge den Inhalt aus dem Feld des Datensatzes in das Word Formular ein
Else: MsgBox "Achtung Fehler !@Die Textmarke fehlt im Worddokument !@Textmarke AnredeAdr", 48, "meine Fehlermeldung" 'Fehlermeldung
Exit Sub
End If
If .ActiveDocument.Bookmarks.Exists("AnredeBriefkopf") = True Then 'Wenn die Textmarke im Word Dokument existiert
.ActiveDocument.Bookmarks("AnredeBriefkopf").Select 'gehe zu dieser Textmarke
.Selection.InsertAfter (rst![AnredeBriefkopf]) 'füge den Inhalt aus dem Feld des Datensatzes in das Word Formular ein
Else: MsgBox "Achtung Fehler !@Die Textmarke fehlt im Worddokument !@Textmarke AnredeBriefkopf", 48, "meine Fehlermeldung" 'Fehlermeldung
Exit Sub
End If
usw

was muss ich ändern um die daten aus einer abfrage zu holen?

Andre

md
23.10.2001, 16:48
Hallo Andrew!
Schreib statt serienbrief einfach den namen der Abfrage rein, natürlich müssen die Felder
(AnredeADR ect) in der Abfrage genauso heißen.
Für Access ist es gleich ob Tabelle oder Abfrage, Hauptsache der name stimmt.

MD

gloria
23.10.2001, 16:52
hi,
sieht alles ziemlich komplizert aus. Gib doch statt deinem SQL-Gefummel einfach mal die Abfrage an:

OpenRecordset("DeineAbfrage")

Wieso gibst du eigentlich im Serienbrief nicht einfach die Abfrage als Datenherkunft an. Den Rest kannst du mittels Word-Makro automatisieren.
Ich hab sowas mal gemacht, muß es aber erst suchen ....

ciao glori
Sorry - ist schon ein Beitrag da.

[Dieser Beitrag wurde von gloria am 23.10.2001 editiert.]

Andrew
25.10.2001, 13:49
HI MD

hab trotzdem noch ein problem!

word wird zwar geöffnet und auch der brief und in word springt er auch zu textmarken, nur es wird nichts eingefügt. liegt es doch am code? der code war eigentlich für eine tabelle gedacht!!!

weiß da jemand was