none
Access 2007 zu Word "Die Datenbank wurde in einen Zustand versetzt ... "

    Frage

  • Eine Access 2000 DB hat bisher problemlos per VBA Serienbriefe in Word 2000 erstellt.

     

    Jetzt habe ich die DB unter Access/Word 2007 aufgerufen. Immer wenn ich den Serienbrief starten will, bekomme ich unter Word die Nachricht:

    Die Datenbank wurde vom Admin in einen Status versetzt, in dem sie weder geöffnet noch gesperrt werden kann.

     

    Wieso, weshalb, warum ? (Einzelpatz-Rechner)

     

    der VBA-Code:

     

     With objWord
            .Visible = True
            .Documents.Add Template:=CurrentProject.Path & "\" + strDot + ".dot", NewTemplate:=False
            With .ActiveDocument.Mailmerge
                .MainDocumentType = wdFormLetters
                .OpenDataSource Name:=CurrentDb.Name, _
                 Connection:="QUERY tmpAbfrage", _
                 LinkToSource:=True, _
                 AddToRecentFiles:=False
                .ViewMailMergeFieldCodes = False
            End With
            .Selection.Goto What:=wdGoToBookmark, Name:="Text"
            .Activate
            Set objWord = Nothing
        End With

    Montag, 6. Mai 2013 14:47

Antworten

  • (wie in Deinem Link gesagt:
    "Besonders im Mehrbenutzerbetrieb ist eine Aufteilung in Frontend (FE) und Backend (BE) dringend angesagt.")

    So, mit diesem Coding funktionierts (auch ohne Aufteilung in FE u. BE ):

         With objWord
            Set objDocument = .Documents.Add("Geschäfts Brief Access Serie.dotm")
            With .ActiveDocument.Mailmerge
                 .OpenDataSource Name:=CurrentDb.Name, _
                  ConfirmConversions:=False, _
                  ReadOnly:=False, _
                  LinkToSource:=True, _
                  AddToRecentFiles:=False, _
                  PasswordDocument:="", PasswordTemplate:="", _
                  WritePasswordDocument:="", WritePasswordTemplate:="", _
                  Revert:=True, _
                  Format:=wdOpenFormatAuto, _
                  Connection:="TABLE tblKontakte", _
                  SQLStatement:="SELECT * FROM [tblKontakte]", SQLStatement1:="", _
                  SubType:=wdMergeSubTypeOther
                 .ViewMailMergeFieldCodes = False
            End With
            .Selection.GoTo What:=wdGoToBookmark, Name:="InhaltAnfang"
            .Visible = True
        End With

    Es war zwar meine Absicht gewesen zu ermitteln welcher Parameter exakt verantwortlich ist. War mir aber dann zu mühsam, wahrscheinlich ists eine Kombination.

     

    Zu beachten ist:
    Die Nachricht kommt, wenn die DB exklusiv gesperrt ist. Dies geschieht durch den VB Editor. D.h., im Editor Änderungen machen und im Formularfenster Serienbriefe auslösen geht nicht. Den Editor zu schließen bringt auch nichts, dann muss Acceess beendet und neu gestartet werden.

     




    • Bearbeitet RainerHH Donnerstag, 13. Juni 2013 10:10
    • Als Antwort markiert RainerHH Donnerstag, 13. Juni 2013 10:11
    Donnerstag, 13. Juni 2013 10:07

Alle Antworten

  • Hallo RainerHH

    Die Datenbank ist nicht in Frontend/Backend aufgetrennt, gell?
    Grund ist das geänderte Verhalten seit Access 2003 IIRC, dass eine Anwendung im Exklusiv Modus geöffnet wird, wenn diese bearbeitet wird. Abhilfe ist eben das Auftrennen von Anwendung und Daten.
    Siehe Whitepaper "Betrieb von Access Anwendungen" im Download Bereich von http://www.dbdev.org
    Gruss
    Henry

    Dienstag, 7. Mai 2013 03:08
  • das Auftrennen ist doch nur gedacht für den Multi-User Betrieb.
    Im Single-User Betrieb völlig unsinnig!
    Montag, 13. Mai 2013 21:13
  • Am 13.05.2013 schrieb RainerHH:

    das Auftrennen ist doch nur gedacht für den Multi-User Betrieb.
    Im Single-User Betrieb völlig unsinnig!

    Nein, das Trennen in Front- und Backend ist immer wichtig!

    Servus
    Winfried


    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Montag, 13. Mai 2013 21:35
  • Hallo,

    RainerHH wrote:

    das Auftrennen ist doch nur gedacht für den Multi-User Betrieb.
    Im Single-User Betrieb völlig unsinnig!

    Schau mal hier: http://www.donkarl.com?FAQ1.35

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Dienstag, 14. Mai 2013 07:48
    Moderator
  • (wie in Deinem Link gesagt:
    "Besonders im Mehrbenutzerbetrieb ist eine Aufteilung in Frontend (FE) und Backend (BE) dringend angesagt.")

    So, mit diesem Coding funktionierts (auch ohne Aufteilung in FE u. BE ):

         With objWord
            Set objDocument = .Documents.Add("Geschäfts Brief Access Serie.dotm")
            With .ActiveDocument.Mailmerge
                 .OpenDataSource Name:=CurrentDb.Name, _
                  ConfirmConversions:=False, _
                  ReadOnly:=False, _
                  LinkToSource:=True, _
                  AddToRecentFiles:=False, _
                  PasswordDocument:="", PasswordTemplate:="", _
                  WritePasswordDocument:="", WritePasswordTemplate:="", _
                  Revert:=True, _
                  Format:=wdOpenFormatAuto, _
                  Connection:="TABLE tblKontakte", _
                  SQLStatement:="SELECT * FROM [tblKontakte]", SQLStatement1:="", _
                  SubType:=wdMergeSubTypeOther
                 .ViewMailMergeFieldCodes = False
            End With
            .Selection.GoTo What:=wdGoToBookmark, Name:="InhaltAnfang"
            .Visible = True
        End With

    Es war zwar meine Absicht gewesen zu ermitteln welcher Parameter exakt verantwortlich ist. War mir aber dann zu mühsam, wahrscheinlich ists eine Kombination.

     

    Zu beachten ist:
    Die Nachricht kommt, wenn die DB exklusiv gesperrt ist. Dies geschieht durch den VB Editor. D.h., im Editor Änderungen machen und im Formularfenster Serienbriefe auslösen geht nicht. Den Editor zu schließen bringt auch nichts, dann muss Acceess beendet und neu gestartet werden.

     




    • Bearbeitet RainerHH Donnerstag, 13. Juni 2013 10:10
    • Als Antwort markiert RainerHH Donnerstag, 13. Juni 2013 10:11
    Donnerstag, 13. Juni 2013 10:07
  • Hallo,

    RainerHH wrote:

    > (wie in Deinem Link gesagt: "Besonders im Mehrbenutzerbetrieb ist eine
    > Aufteilung in Frontend (FE) und Backend (BE) dringend angesagt.")
    >
    > So, mit diesem Coding funktionierts (auch ohne Aufteilung in FE u. BE ):

    Schön für dich. Trotzdem sei der Satz, den du im Zitat weggelassen hast,
    nochmal erwähnt, weil er einfach wichtig und richtig ist:

    | Access-Anwendungen sollten grundsätzlich aus zwei (oder mehr) Dateien bestehen.

    Gruss - Peter

    --
    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com
    Montag, 17. Juni 2013 10:01
    Moderator
  • sollten

    nicht müssen !

    die Aufteilung ist nun mal nur gebaut worden um Multiuser Problem in den Griff zu kriegen.

    Montag, 17. Juni 2013 13:59