Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Serienbrief
zurück: E-Mail - SendObject weiter: Es werden falsche Datensätze angezeigt Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
mikase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Okt 2006, 10:00
Rufname:

Serienbrief - Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

komme mit der Übergabe von Daten aus Access an Word zur Erstellung von Serienbriefen nicht so recht weiter. Habe die Vorlage aus der Knowhow ausprobiert, aber die schmeißt an der Stelle With .Fields immer den Fehler aus: Konnte Datenquelle nicht finden. Mit With .MergeFields gehts auch nicht. Hat jemand eine Serienbriefvorlage (also VBA-Code) die funktioniert oder kann mir sagen, wo ich so eine Vorlage oder BspDB finden kann? Danke!
Nouba
nicht ganz unwissend :)


Verfasst am:
07. Okt 2006, 10:18
Rufname:
Wohnort: Berlin


AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

ist ja seltsam - bei mir funktioniert der Serienbrief. Hast Du vielleicht vergessen, in der eigenen DB im VBA-Editor einen Verweis auf die Microsoft DAO 3.6 Library zu setzen? Welche Fehlernummer und welche Fehlermeldung gibt Access bei der Ausführung aus?

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
mikase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Okt 2006, 10:32
Rufname:

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

also der Verweis auf die Microsoft DAO 3.6 Object Library ist gesetzt. Die Fehlermeldung die kommt ist:
Zitat:
5922 Word konnte die Datenquelle nicht öffnen.
Die Vorlage ist im gleichen Verzeichnis wie die DB und der Tabellenname, auf den zugegriffen werden soll, ist auch richtig. Ich schick nochmal den Code mit, vielleicht liegt dort ja ein dummer Fehler begraben. Beim Einzeldurchlauf erscheint der Fehler ab With .Fields oder .MergeFields.

Vielleicht weißt du ja Rat!
Code:
Private Sub SerienbriefPVMedien_Click()
    If HauptDok = True Then
        WordObjekt.Visible = True
        WordObjekt.Activate
        Set WordDok = Nothing
        Set WordObjekt = Nothing
    End If
End Sub

Function HauptDok() As Integer
    Dim AktDBName As String
    Dim ConnectString As String
    Dim SQLString As String
    Dim XPfad As String
   
' Ist Word schon gestartet (ohne Aufruf einer Fremdfunktion) ? geändert Kobd
    On Error Resume Next 'See if Word is running
    Set WordObjekt = GetObject(, "Word.Application.8")
    If Err.Number <> 0 Then 'Word Not running
        WdAktiv = False
        Err.Clear   ' Clear Err object in case error occurred.
        'Create a new instance of Word
        Set WordObjekt = CreateObject("Word.Application.8")
        'Create an instance of Word
      Else
        WdAktiv = True
        WordObjekt.Activate
    End If
    On Error GoTo HauptDok_Fehler
    AktDBName = CurrentDb.Name
'    If WordTest = 0 Then
'        WdAktiv = False
'        Set WordObjekt = _
'        GetObject("", "Word.Application")
'      Else
'        WdAktiv = True
'        Set WordObjekt = _
'        GetObject(, "Word.Application")
'    End If
    Application.Echo False, "Daten werden an Word übertragen ..."
    XPfad = Left(CurrentDb.Name, Len(CurrentDb.Name) - _
                                 Len(Dir(CurrentDb.Name)))
    'Die Textvorlage muß dafür also immer im gleichen Verzeichnis wie die
    'aktuelle mdb sein
    'XPfad von Kobd hinzugefügt (scheint mir einfacher ?)
    'In der Praxis evtl durch FileDialog in der Maske ersetzen ?
    Set WordDok = WordObjekt.Documents.Add(XPfad & "SbrBrfvl.dot")
    ConnectString = "DSN=MS Access 97-Datenbank;DBQ=" & AktDBName
    SQLString = "SELECT * FROM [tbl_Kunden]"
    With WordDok.MailMerge
        .OpenDataSource Name:=AktDBName, ReadOnly:=True, LinkToSource:=True, _
                        Connection:=ConnectString, SQLStatement:=SQLString
        With .Fields
            WordDok.Bookmarks("Anschrift").Select
            .Add Range:=WordObjekt.Selection.Range, Name:="Vorname"
            WordObjekt.Selection.TypeText Text:=" "
            .Add Range:=WordObjekt.Selection.Range, Name:="Nachname"
            WordObjekt.Selection.TypeParagraph
            .Add Range:=WordObjekt.Selection.Range, Name:="Straße"
            WordObjekt.Selection.TypeParagraph
            WordObjekt.Selection.TypeParagraph
            .Add Range:=WordObjekt.Selection.Range, Name:="PLZ"
            WordObjekt.Selection.TypeText " "
            .Add Range:=WordObjekt.Selection.Range, Name:="Ort"
            WordDok.Bookmarks("Anrede").Select
            .AddIf Range:=WordObjekt.Selection.Range, _
                   MergeField:="Geschlecht", Comparison:=wdMergeIfEqual, _
                   CompareTo:="Weiblich", TrueText:="Sehr geehrte Frau ", _
                   FalseText:="Sehr geehrter Herr "
            WordObjekt.Selection.EndKey Unit:=wdLine
            WordObjekt.Selection.MoveLeft Unit:=wdCharacter, Count:=1
            .Add Range:=WordObjekt.Selection.Range, Name:="Nachname"
            WordDok.Bookmarks("Brieftext").Select
        End With
    End With
    HauptDok = True
    Application.Echo True

HauptDok_Ende:
    Exit Function
HauptDok_Fehler:
    HauptDok = False
    Application.Echo True
    Set WordDok = Nothing
    Set WordObjekt = Nothing
    MsgBox "Fehler: " & Err.Number & vbCrLf & Err.Description
    Resume HauptDok_Ende
End Function
Nouba
nicht ganz unwissend :)


Verfasst am:
07. Okt 2006, 10:45
Rufname:
Wohnort: Berlin

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

funktioniert denn der Serienbrief in der Original-KnowHw30? Hast Du den Serienbrief auch einmal direkt in Word getestet?

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
mikase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Okt 2006, 11:17
Rufname:


AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

also, der Serienbrief in der Original-KnowHow funktioniert auch nicht, dort sagt Access an der Stelle:
Code:
    XPfad = Left(CurrentDb.Name, Len(CurrentDb.Name) - _
                                 Len(Dir(CurrentDb.Name)))
Projekt oder Bibliothek nicht gefunden.

Also, wie gesagt, keine Ahnung!
Nachtrag: mikase am 07. Okt 2006 um 11:19 hat folgendes geschrieben:
....muss man vielleicht in der Briefvorlage noch was ändern? oder sonstige Verweise hinzufügen?
Nouba
nicht ganz unwissend :)


Verfasst am:
07. Okt 2006, 11:45
Rufname:
Wohnort: Berlin

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

hast Du denn die KnowHow30 ins A2000-Format konvertiert?

Ich bin ohne jegliche Änderung zurecht gekommen. Vielleicht kannst Du ja ein Minimalbeispiel Deiner DB plus Word-Vorlage zum Download bereit stellen?

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
mikase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Okt 2006, 12:30
Rufname:

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

ich habe jetzt die knowhow in 2000 konvertiert, fehlende oder fehlerhafte Verweise ersetzt und jetzt läuft sie. Der Serienbrief funktioniert (in der knowhow) aber immer noch nicht, jetzt kommt der gleiche Fehler wie in meiner Datenbank. 5922-Word konnte Datenquelle nicht finden. Ich habe an der Knowhow sonst nichts verändert, das müsste doch sonst eigentlich gehen, oder? wenn das Bsp. schon nicht geht, woran kann das liegen???
Nouba
nicht ganz unwissend :)


Verfasst am:
07. Okt 2006, 12:45
Rufname:
Wohnort: Berlin

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

Hallo,

etwas Schlüssiges zum Fehler 5922 habe ich nicht gefunden, aber vielleicht hilft Dir der Beitrag VBA-gesteuerter Serienbrief - das kann doch nicht sein, oder? bei der Lösung.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
mikase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Okt 2006, 10:01
Rufname:

AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

mikase am 08. Okt 2006 um 16:47 hat folgendes geschrieben:
Hallo,

also ich habe zu meinem Problem nicht wirklich was gefunden, allerdings dort eine andere BspDB (mailmerge.zip), die bei mir funktioniert. Dabei habe ich aber ("natürlich") wieder ein Problem.

Die MailMerge (die verbesserte Version), die du auf der Seite finden kannst, die du mir empfohlen hast, die läuft. Nun wird dort für die Serienbrieffunktion eine Variable übergeben, die vorher die ausgewählten Adressen, die in einem Listenfeld markiert wurden, erkennt und übergibt.
Nun habe ich ein Formular, in dem ich auf einen Button klicke, und alle Adressdaten, die in diesem Formular angezeigt werden, sollen ohne weitere Auswahl übergeben werden. Was muss ich in dafür in dem Code ändern, damit dies funktioniert? (vielleicht ist das einfacher?) Ich hoffe, das ist verständlich. Danke für die bisherigen Hinweise und Hilfen!

Hallo,

hab damit jetzt ein wenig rumgespielt. Es geht voran. Problem: Es existiert der Code:
Code:
        Set lf = Me!lstKunden
        ' For-Nextschleife starten
        For Zeile = 0 To lf.ListCount - 1
            ' Schauen ob Eintag markiert
                If strErg = "" Then
                    strErg = "KundenCode = '" & lf.Column(0, Zeile) & "'"
                  Else
                    strErg = strErg & " OR KundenCode = '" & _
                             lf.Column(0, Zeile) & "'"
                End If
        Next Zeile
also, wenn ich das richtig sehe, durchläuft er das Listenfeld und selektiert, in diesem Fall (habe die Bedingung der Markierung rausgenommen) alle Datensätze.
Wie gesagt, ich habe kein Listenfeld. Bei mir werden die Daten im Formular in Feldern angezeigt aus der Tabelle Kunden. Über eine Abfrage selektiere ich, welche überhaupt angezeigt werden. Und für die soll dann ein Serienbrief erstellt werden. Wie muss ich denn die Schleife, die alle angezeigten Datensätze auswählt, ändern???? Danke!
derArb
getting better


Verfasst am:
09. Okt 2006, 22:26
Rufname: derArb
Wohnort: Berlin


AW: Serienbrief - AW: Serienbrief

Nach oben
       Version: Office 2k (2000)

hallo,

laut meinen Informationen hat der Fehler 5299 mit SQL Inkompatibilitäten zwischen Word und Access zu tun.
überall, wo man 'WHERE' in einem SQL Übergabestring hat, macht
mailmerge Probleme.
Die Allgemeine Empfehlung ist, in mailmerge nur direkt sich auf Abfragen oder Tabellen zu beziehen

Daher nun meine Frage mit der Bitte um Hilfe.
Ich hab eine Zwischentabelle, welche Basis ist für einen Serienbrief.
Diese Tabelle wird bei Aufruf eines Serienbriefs gelöscht und dann neu
gefüllt mit dem Inhalt der rowsource einer gefilterten ungebundenen Listbox.
Es funktioniert auch alles; nur bin ich misstrauisch bei der Anwendung mit grossen Datensätzen bez. der Performance

gibt es eine Verbesserung für folgenden funktionierenden code?
Speziell geht es um die performance beim Löschen und Auffüllen der Zwischentabelle 'SerienbriefÜbergabeTabelle'
Code:
Private Sub btnSerienbrief_Click()
    Dim cancel As Boolean
    Dim ListenFeldstring As String
    Dim Sql_Loeschen As String
    Dim Sql_Uebergeben As String
    Dim ListEintrag As String
    Dim i As Integer
   
    ' Wenn Kombinationsfeld Serienbriefe leer
    If IsNull(Me!cmdSerienBrief.Column(0)) Then
        MsgBox "Bitte erst eine Briefvorlage im Kombinationsfeld auswählen"
        Exit Sub
    End If
    Sql_Loeschen = "DELETE FROM SerienbriefÜbergabeTabelle"
    CurrentDb.Execute Sql_Loeschen
    ListenFeldstring = Me!lstGefunden.RowSource
    Sql_Uebergeben = "INSERT INTO SerienbriefÜbergabeTabelle " & _
                     ListenFeldstring
    CurrentDb.Execute Sql_Uebergeben
    WordMailMerge
End Sub
Modul:
Code:
Public Sub WordMailMerge()
    Dim oWord      As Object
    Dim sMergeDoc  As String
    Dim sSQL       As String
    Dim Xpfad       As String
   
    Xpfad = aktVerzSerienBriefe
    'Die Textvorlage muß dafür also immer im gleichen Verzeichnis wie die
    'aktuelle mdb sein
    sMergeDoc = Xpfad & Forms!MieterNeuErstellen!cmdSerienBrief
    'SQL code mit WHERE ergibt Fehler 5299 und andere Probleme.
    'Daher direkte SQL Tabellenabfrage aus Zwischentabelle
    '"SerienbriefÜbergabeTabelle", in welche vorher die Daten selektiert
    'übergeben sind.
    sSQL = "SELECT * FROM [SerienbriefÜbergabeTabelle]"
    Set oWord = GetObject(sMergeDoc, "Word.Document")
    With oWord
        .MailMerge.OpenDataSource Name:=CurrentDb.Name, LinkToSource:=True, _
                             Connection:="Table SerienbriefÜbergabeTabelle", _
                                  SQLStatement:=sSQL
        .MailMerge.Execute
        .Application.Visible = True
        .Close SaveChanges:=0
    End With
    If Not oWord Is Nothing Then Set oWord = Nothing
    Exit Sub
End Sub

mfg
derArb

{Siehe auch Serienmail - Kriterienauswahl Edit by Willi Wipp}

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Berichte: Bericht Serienbrief Berichtsfuß dynamisch 26 paula 409 24. Jan 2013, 17:29
paula Bericht Serienbrief Berichtsfuß dynamisch
Keine neuen Beiträge Access Berichte: serienbrief schreiben 13 M1234 292 21. Jan 2013, 15:09
Gast serienbrief schreiben
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnetes Feld im Serienbrief 2 Marlboro2 815 19. Feb 2011, 17:31
Nouba Berechnetes Feld im Serienbrief
Keine neuen Beiträge Access Formulare: berechnetes textfeld in serienbrief word eingeben 1 Marlboro2 791 05. Feb 2011, 19:09
derArb berechnetes textfeld  in serienbrief word eingeben
Keine neuen Beiträge Access Berichte: Bericht aus Formular erzeugen ->Serienbrief 3 mh.schreiber 2022 24. Aug 2008, 02:33
derArb Bericht aus Formular erzeugen ->Serienbrief
Keine neuen Beiträge Access Berichte: Eine Art Serienbrief? 1 BoyFks 492 28. Mai 2008, 10:49
badMoon Eine Art Serienbrief?
Keine neuen Beiträge Access Formulare: Abfrage Struktur --> automatisch sortieren (SerienBrief) 0 dondanielo 691 28. Sep 2007, 11:13
dondanielo Abfrage Struktur --> automatisch sortieren (SerienBrief)
Keine neuen Beiträge Access Programmierung / VBA: Aus Acces mittels VBA einen Serienbrief erstellen 5 schessi 1313 09. Jan 2007, 00:45
derArb Aus Acces mittels VBA einen Serienbrief erstellen
Keine neuen Beiträge Access Formulare: Serienbrief 5 jana bens 699 05. Okt 2006, 04:16
derArb Serienbrief
Keine neuen Beiträge Access Formulare: Serienbrief - Übergabe an Word 5 mikase 1223 23. Sep 2006, 12:06
lothi Serienbrief - Übergabe an Word
Keine neuen Beiträge Access Tabellen & Abfragen: Gefilterte Abfrage für Word Serienbrief 1 nuub 812 10. Aug 2006, 16:58
steffen0815 Gefilterte Abfrage für Word Serienbrief
Keine neuen Beiträge Access Programmierung / VBA: Serienbrief in A2K OHNE Word erstellen ?! 2 Tron 1003 19. Jun 2006, 22:44
Tron Serienbrief in A2K OHNE Word erstellen ?!
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum