Office: (Office 2016) FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden

Helfe beim Thema FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich erzeuge aus MS Access heraus einen Seriendruck in Word wie folgt: Code: '... sSQL = "SELECT * FROM [tblSerienbrief_Druck]" Set oWord =... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Stephan_2019, 9. November 2019.

  1. FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden


    Hallo,

    Ich erzeuge aus MS Access heraus einen Seriendruck in Word wie folgt:

    Code:
    Hierbei kommt es (logischerweise) zu einem Fehler wenn die Dokumentvorlage micht zur Datentabelle (tblSerienbrief_Druck) 'passt', d.h. wenn Seriendruckfelder im Dokument enthalten sind die nicht in der Datentabelle vorkommen.
    Es geht dann ein Meldungsfenster auf mit dem Titel "Ungültiges Seriendruckfeld" ("Dieses Seriendruckfeld wird im Haupdokument verwendet, ist aber in der Datenquelle nicht vorhanden, ...).

    Wenn MS Word (im Makro oWord.Application) nicht sichtbar geschaltet ist blockiert dabei auch MS Word komplett und ich kann es nur über den Taskmanager benden.


    Wie kann ich (im Makro) prüfen ob alle in der Vorlage vorhandenen Seriendruckfelder mit der Datentabelle korrespondieren?

    Ich habe versucht durch alle Seriendruckfelder zu interieren, aber das ist aufwändig weil die Seriendruckfelder auch in Shapes enthalten sind und weil (mir unverständlicher Weise) ein direkter Zugriff auf den Feldnamen Probleme macht, wenn dieser Namen einen Unterstrich enhält, denn ein Zugriff per:

    .Shapes(...).TextFrame.TextRange.Fields(...).Code.Word(...)

    liefert bei vorhandenem Unterstrich nicht den kompletten Namen.

    Ich lese deshalb derzeitig nur:

    .Shapes(...).TextFrame.TextRange.Fields(...).Code

    und zerlege diesen Ausdruck per String-Operationen mühevoll, bis ich den Namen des Feldes habe.



    Gibt es keine Möglichkeit auf einfache Weise zu prüfen:
    'Diese Dokumentvorlage, mit den enthaltenen Seriendruckfeldern, 'passt' zur Datentabelle'?



    Gruß
    Stephan

    :)
     
    Stephan_2019, 9. November 2019
    #1
  2. Hallo Stephan,

    dafür gibt es in Word die MailMergeDataFields -Auflistung, siehe h i e r
    Diese Auflistung enthält alle Felder aus der Datenquelle, egal ob sie im Serienbrief verwendet werden oder auch nicht.

    Gruß von Luschi
    aus klein-Paris
     
  3. Hallo Luschi,

    Diese Auflistung ist mir (eigentlich) bekannt, aber:

    Diese Auflistung ist doch erst verfügbar wenn die Datenquelle mit dem Dokument verbunden wurde Oder nicht?
    Wenn Ja, wie verbinde ich denn per VBA die Datenquelle mit dem Dokument OHNE das der Dialog "Ungültiges Seriendruckfeld" erscheint? Ich weiß das derzeitig wirklich nicht, falls es einen Weg gibt.

    (mir war die Seite bei MS bekannt auf die Du linkst, nur ich kam mit dem Code nicht weiter, weil ich keine Ergebnisse bekam und imho nur welche bekäme wenn ich vorher die Datenquelle verbinde, ich weiß nicht wie ich Letzteres tun kann ohne das die Fehlermeldung erscheint.)


    Vor allem aber:
    Sagt mir diese Auflistung nicht nur welche Felder in der Datenquelle sind? (Diese Info würde ich doch dann auch bekommen wenn ich von der Datentabelle die Spaltennamen auslese?)
    Ich suche jedoch die Seriendruckfelder die tatsächlich im Dokument sind, d.h. die Datenquelle hat u.U. 30 Felder, aber im Dokument gibt es nur 10 Seriendruckfelder und ich suche die "10" nicht die "30".
    (um nicht missverstanden zu werden, die "10" sind eben nicht garantiert Teil der "30", sondern vielleicht nur 8 und zwei sind fehlerhaft, und das will ich herausfinden)


    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #3
  4. FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden

    Vielleicht würde man vorab definieren, was man unter Vorlage versteht.

    Wenn die Vorlagen nicht laufend unkontrolliert verändert werden (wenn ja, wieso?), könnte man sich schlicht eine Zuordnung Vorlage zu Datenquelle ablegen.
    Standardisierung und Organisation können das Leben viel einfacher machen.

    Ansonsten:
    Code:
    Diesen kompakten Ausdruck sollte man auseinandernehmen und dann erst nur die Vorlage öffnen und prüfen, um somit erst abhängig von der Prüfung die Seriendruckquelle zuzuweisen.
     
  5. Im vorliegenden Falle eine *.dotx Datei mit eingefügten Mergefields.

    Ja, das ist völlig richtig und daran arbeite ich seit gestern, indem ich in den Dokumenteigenschaften der Vorlagen (im Tag-Feld) eineindeutige IDs hinterlege die ich im Makro prüfen kann (das hindert zwar niemanden doch die Vorlagen zu ändern, aber bringt mich etwas außerhalb der Verantwortung dafür).

    "wenn ja, wieso?"
    Das ist eher 'andersherum', es gibt in einer umfangreichen Datenbank ein Formular zum Seriendruck wo ein Unterformular (Datenblattansicht) genutzt wird die Datensätze auszuwählen. Dieses Unterformular wird mit Daten einer Tabelle bestückt die per VBA dynamisch geändert werden kann (AUCH Struktur).
    Die Bedienung ist: der Benutzer wählt aus einer combobox den Namen einer Abfrage, VBA erzeugt daraus dynamisch eine Tabelle und zeigt diese im Unterformular (Datenblattansicht) an, zum Auswählen von Datensätzen.

    Da es viele Abfragen gibt und viele Seriendruckvorlagen passt nicht jede Seriendruckvorlage zu jeder Abfrage und ich suche nach einer Möglichkeit hierdurch entstehende Fehler abzufangen.

    (Natürlich könnte ich vorab alle Abfragen/Tabellen und Vorlagen STATISCH im Makro prüfen, aber ich will eine Prüfung die verhindert das es zum FEhler kommt falls ein DRitter Änderungen macht auf die ich keinen Einfluss habe.)


    Und WIE ich das machen kann ist ja die eigentliche Frage. Wie schon geschrieben sind die Felder (auch) in Shapes und ich sehe auch keinen Weg mit .Shapes(...).TextFrame.TextRange.Fields(...).Code.Word(...) zuverlässig FEldnamen auszulesen, WENN diese Leeerzeichen bzw. UNterstriche enthalten.

    Mein _Ansatz_ zur Lösung ist deshalb äußerst kompliziert und läuft bisher noch nicht einmal richtig. Hier der derzeitige testweise Code (der noch garkeine Prüfung enthält sondern nur zeigt wie ich die Feldnamen sauber zu 'extrahieren' versuche):

    Code:
    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #5
  6. Hallo Stephan,

    probier doch mal, ob Du mit einer Routine wie dieser Deine Mergefields gelistet bekommst: Code:
     
    haklesoft, 10. November 2019
    #6
  7. Hallo,

    Wie bereits in meinem Startpost geschrieben stehen die Seriendruckfelder teilweise in Shapes und es muss über die Shapes darauf zugegriffen werden.

    Davon abgesehen ist Dein Code auch nur geringfügig einfacher als mein Code, denn Dein Code schneidet ja auch nur den Anfang des Feldes weg und ich müsste nun immer noch den reinen Feldnamen per String-Operationen aus dem Rest abtrennen.


    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #7
  8. FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden

    Deine Fragen zur Analyse von Worddokumenten wären im Wordforum besser platziert. Diese sind ja nun kein eigentliches Accessthema. Eine Dynamik bei der Datenzusammenstellung schon, da wäre der zuständige Entwickler in seinem konkreten Tun zu hinterfragen.
    Der Gedankenkette dynamisch + variabel = kompliziert und strukturell durcheinander mit der Notwendigkeit, hinterher erfragen zu müssen, was denn nun vorliegt, muss man sich nicht immer zwingend anschließen.

    Wenn zwei Felder fehlen, könnte man der Einfachheit auch immer eine vollständige Datenherkunft über alles erstellen.

    Wer den Stein, den er braucht, erst in den See wirft, um ihn dann zu suchen und wieder in die Hand zu nehmen, ist nun nicht das Leitbild für Einfachheit, Direktheit, Fehlerfreiheit, Effizienz.

    Von einer Vorlage würde ich prinzipiell per Add (von der Vorlage) ein Dokument ableiten und dann nur mit diesem arbeiten. Die Vorlagen hätten dann schon etwas Exklusiveres in Erstellung und Verwaltung.
    Ein Eingriff in solche Vorlagen wäre ein bewusster Eingriff und würde also, abgesehen von Böswilligkeit oder Dummheit, nur von qualifiziertem Personal vorgenommen. Hier hätte man auch die Möglichkeit, mit Erstellung der Vorlage zu deren Name/Pfad gleich die Felderliste mit abzulegen, die dann von außen einfacher auswertbar ist. So eine Liste könnte in einer externen Tabelle/Datei geführt werden, seit XML-Formaten gibt es auch Datencontainer im Dokument. Da stecke ich aber inhaltlich nicht drin.
     
  9. das hast Du probiert?!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    haklesoft, 10. November 2019
    #9
  10. Hallo Eberhard,

    Ich habe nachgedacht wo ich posten soll und mich für das Access-Forum entschieden, Sorry wenn das nun hier nicht als optimal platziert angesehen wird.

    SEHR richtig, aber was hilft mir das hier weiter?

    Das Problem das ich lösen will ist letztlich das eine Fehlbedienung des Anwenders abgefangen wird und nicht das ganze Programm deswegen abstürzt (Word stürzt ab und Access ist blockiert).
    Es ist doch Unsinn dem Anwender entgegenzuhalten, das es an ihm ist erst garkeine Fehler zu machen. Es ist meine Aufgabe dem Anwender eine Datenbank zu liefern die Bedienfehler toleriert, indem sie sie abfängt und dem Anwender Hinweise gibt was zu tun ist.
    Klar kann ich den Anwender mit starren Abfragen und Vorlagen fesseln und darauf bestehen das er nicht selbst Änderungen machen darf, sondern alle Änderungen bei mir als Support bezahlen soll, ist dann zumindest gut für meinen Umsatz ;-)

    Ja, einverstanden, aber was hilft mir das bei der Lösung der eigentlichen Frage?

    NEIN, es fehlen keine Felder! Es fehlen Beispielsweise bei 2 Feldern die nötigen Spalten in der Datentabelle.


    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #10
  11. Ja, habe ich (in Word 2016)

    Rückgabe im Debugfenster ist beispielsweise: Abt_B * MERGEFORMAT

    (die Forumssoftware schluckt den Backslash vor dem *)


    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #11
  12. nochmals einen Hinweis das wir uns hier nicht unnötig in Details verzetteln:

    Wenn die Seriendruckfelder in der Vorlage nicht 'passen' stürzt Word ab. Weil die Dokumenterzeugung im Hintergrund läuft (Word wird erst sichtbar geschaltet wenn das Dokument fertig ist) bekommt der Anwender davon keine sichtbare Rückmeldung, sondern Access blockiert (bis man im Taskmanager den hängenden Word-Prozess killt).

    Ich brauchte einfach nur etwas was ich auswerten, und eine Meldung ausgeben kann, kann BEVOR Word das Fenster "Ungültiges Seriendruckfeld" einblendet und dadurch Word blockiert.
    Ein On Error Goto ... hilft mir nicht weiter.


    Gruß
    Stephan
     
    Stephan_2019, 10. November 2019
    #12
  13. FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden

    Hm...
    Mit etwas Vorplanung können starre Abfragen und Vorlagen sehr variabel sein. Das Datenmodell in einer Datenbank ist doch auch starr und kein Lämmerschwanz. Es sollte aber erweiterungsfähig sein und mit Sicherheit keinen Umbau oder Prüfungen auf Selbstverständlichkeiten beinhalten, wenn mal eine Anforderung hinzu kommt.

    Wenn der User Beweglichkeit im Sinne von neuen Vorlagen und der Datenbelieferung dazu benötigt, kann er natürlich nicht warten, bis ein spezieller Service Zeit für ihn freischaufelt - oder würdest Du Urlaub und Nachtruhe abbrechen und alles sonstige auch einfach liegen lassen?

    Dann sollte er über eine Bedienoberfläche dazu in die Lage versetzt werden, sich die neuen Objekte standardisiert selber anzulegen.

    Angesichts des Bezeichnungsproblems lt. Deinem anderen Thema im Zusammenhang mit der dynamischen Datenquellenerzeugung laut den von Dir verwendeten Möglichkeiten und zugelassenen Freiheiten liegt das sichbare Problem nicht bei den Anwendern, sondern in Deinem Programmablauf.
     
  14. Auch ich NOCH EINMAL: Stürzt Word ab, wenn Du die Vorlage OHNE Datenzuweisung öffnest?

    Gehe mal drei Schritte zurück. Dann wird der Balken vor den Augen zum Streichholz.
     
  15. Das klappt nur dann, wenn Du in Deinen Vorlagen grundsätzlich vor dem Speichern soetwas ausgeführt hast: Code:
    Beim Start der Vorlage kannst Du die MergeFields durchlaufen und dem Dokument eine passende Datenbasis zuweisen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    haklesoft, 11. November 2019
    #15
Thema:

FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden

Die Seite wird geladen...
  1. FEhlermeldung "Ungültiges Seriendruckfeld" vermeiden - Similar Threads - FEhlermeldung Ungültiges Seriendruckfeld

  2. Bedingte Formatierung funktioniert nicht

    in Microsoft Excel Hilfe
    Bedingte Formatierung funktioniert nicht: Hallo, ich habe eine Excel Datei erstellt und es funktioniert alles, bis auf eine bedingte Formatierung. Ich verstehe einfach nicht wieso. Habe in der Liste schon andere Formatierungen, die sehr...
  3. Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...

    in Microsoft Outlook Hilfe
    Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...: Hallo, habe seit der Installation von MS Office 2021 Pro ein Problem mit Outlook, dass auch nach 3-maliger Neuinstallation und mit dem MFCMAPI-Tool die Fehlermeldung auch nicht verschwindet. Bin...
  4. Fehlermeldung XML Erweiterungspacket

    in Microsoft Word Hilfe
    Fehlermeldung XML Erweiterungspacket: Hallo, kennt wer diese Fehlermeldung bei Word (Windows 10 pro/Word 2016)? Es tritt auf, wenn ich auf die Registerkarte Ansicht gehe und geht nicht mehr weg. Word stellt dann im Hintergrund eine...
  5. Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]

    in Microsoft Excel Hilfe
    Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]: Hallo zusammen! Ich bin gerade dabei von einem Teams-Sharepoint-Ordner Daten mit Power-Query abzurufen. Ich lade die Daten über "Daten Abrufen -> Datei -> Sharepoint-Ordner" und gebe dann den...
  6. Hyperlink mit Hilfe Sverweis

    in Microsoft Excel Hilfe
    Hyperlink mit Hilfe Sverweis: Hallo, ich weiß ähnliche Themen gab es leider schon, aber ich bin bisher dadurch absolut nicht weitergekommen. Ich bin hier echt am verzweifeln. Ich habe eine Liste mit verschiedenen Dateien...
  7. Fehlermeldung Pivot-Tabelle

    in Microsoft Excel Hilfe
    Fehlermeldung Pivot-Tabelle: Hallo Zusammen, Wenn ich: 1) eine neue Pivot-Tabelle erstellen oder 2) eine bestehende Pivot-Tabelle bearbeiten möchte erscheint folgende Fehlermeldung: "Ein Problem mit dem Datenmodell hindert...
  8. HILFE!! Fehlermeldung Dokumentname oder Pfad ungültig

    in Microsoft Word Hilfe
    HILFE!! Fehlermeldung Dokumentname oder Pfad ungültig: Hallo, ich wollte ein Dokument (meine Examensarbeit) öffnen und dann kommt die Fehlermeldung. Dokumentname oder Pfad ungültig. Mit den Hinweisen die Dateizugriffsrechte zu überprüfen oder noch...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden