Welche Access-Query steckt hinter einem Word-Serienbrief?

Letzthin stolperte ich bei einer Kundin über ein kniffliges Microsoft-Problem. Ich bin dort für Wartung und Support einer Access-Datenbank zuständig, die ich von einem Vorgänger übernommen habe. Zahlreiche Word-Serienbriefe sind mit Dutzenden von Queries verbunden, um diverse Dokumente für den Versand zu erzeugen. Es kommt nun immer mal wieder vor, dass man eine solche Query erweitern oder ändern muss. Das Problem ist nun, dass ich in Word zwar die Datenbank und die Daten der Access-DB sehe, nicht aber dem Namen der zugehörigen Query. Normalerweise sieht man beim Öffnen des Serienbriefs eine Meldung “Beim Öffnen des DokumentS wird der folgende SQL-Befehl ausgeführt” und anschliessend das zugehörige SQL-Statement inkl. Name der Query oder Tabelle. Leider ist diese Anzeige bei der Kundin unterdrückt und mir fehlen die Berechtigungen, um dies zu ändern. In einer Datenbank mit Dutzenden von sehr ähnlichen Queries kann das ziemlich aufwändig werden, manuell nach einer Query zu suchen. Auch Tante Google hatte dazu keinen Tipp für mich.

Wenn man weiss, dass hinter einer docx-Datei eigentlich eine ZIP-Datei mit diversen verpackten XML-Dateien steckt, dann lässt sich mit folgendem Workaround der Name der Query zumindest für Dokumente im OpenXML-Format .docx herausfinden:

  1. Kopie der Word-Serienbriefdatei machen
  2. Dateiendung in .zip ändern
  3. Alle Verzeichnisse und Dateien aus der ZIP auspacken
  4. Im Unterverzeichnis word die Datei settings.xml suchen
  5. Die Datei mit einem beliebigen Text-Editor öffnen
  6. Nach SELECT suchen -> der Name der Abfrage befindet sich hinter dem Stichwort FROM, z.B.
    <w:query w:val=”SELECT * FROM ‘qryAdressenKunden‘ “/>

Das ist zugegebenermassen ziemlich umständlich, aber immer noch besser als eine händische Suche.

Quellen:

Comments are closed.