none
Access 2003 Datenbank in Access 2010 umstellen RRS feed

  • Frage

  • Hi,

    wir haben eine etwas ältere, von einem damaligen Kollegen erstellte, Accessanwendung, die unter Access 2003 noch problemlos lief. Nun haben wir allerdings auf Access 2010 umgestellt und hier und da funktionieren ein paar Befehle nicht. An den meisten Stellen konnte ich das Problem lösen, indem ich die Buttons im Formular gelöscht und neu erstellt habe. Nun bin ich aber in einem Formular hängen geblieben, bei dem folgender Code beim Anlegen eines neuen Titels ausgeführt wird und Access beim ausführen hängen bleibt:

    'Siehe Prozedur "frm_Titeldaten/Lieferant_NotInList"
    Private Sub Titel_NotInList(NewData As String, Response As Integer)
        Dim NeuTitel As Integer
        Dim Titel As String
        Dim MeldungDialog As Integer
        Dim DocName As String
        Dim LinkCriteria As String

        Const MB_JANEIN = 4
        Const MB_AUSRUFEZEICHEN = 48
        Const MB_STDSCHALTFLÄCHE1 = 0, IDJA = 6, IDNEIN = 7
        Const FRB_WEISS = 16777215
        Const NORMAL = 1

        Titel = "Der eingegebene Titel ist nicht in der Liste"
        MeldungDialog = MB_JANEIN + MB_AUSRUFEZEICHEN
        NeueArt = MsgBox("Möchten Sie einen neuen Titel hinzufügen?", MeldungDialog, Titel)
        If NeueArt = IDJA Then
            DocName = "frm_Titel_erfassen"
            SendKeys "{Home}+{End}", True
            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_COPY
            Me!Titel.Undo
            'DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_UNDOFIELD
            DoCmd.OpenForm DocName, A_NORMAL, , LinkCriteria, A_ADD, A_NORMAL
            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_PASTE
            SendKeys "{ENTER}"
            Response = DATA_ERRCONTINUE
        End If
    End Sub

    Für mich stellt es sich so dar, als wenn er einen Befehl ausführen möchte, der so in Access 2010 nicht mehr korrekt ist. Kennt sich damit jemand aus und kann mir weiterhelfen?

    Dienstag, 20. November 2012 07:30

Alle Antworten

  • Noch etwas:

    Beim Debuggen meckert Access diese Befehlszeile an:  NeueArt = MsgBox("Möchten Sie einen neuen Titel hinzufügen?", MeldungDialog, Titel)

    und bringt die Meldung Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden.

    Dienstag, 20. November 2012 07:36
  • Ok, das Problem konnte ich mittlerweile lösen. Die MessageBox 'NeueArt' war noch nicht deklariert. Anscheinend war dies früher nicht notwendig. Jetzt kommt die richtige Abfrage. Allerdings habe ich nun schon das nächste Problem. Anscheinend stimmen diese Befehle auch nicht mehr:

            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_COPY
            Me!Titel.Undo
            'DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_UNDOFIELD
            DoCmd.OpenForm DocName, A_NORMAL, , LinkCriteria, A_ADD, A_NORMAL
            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_PASTE

    Kann mir jemand die richtigen Codezeilen nennen?

    Dienstag, 20. November 2012 07:51
  • Am 20.11.2012 schrieb Maverick1302:

    Ok, das Problem konnte ich mittlerweile lösen. Die MessageBox 'NeueArt' war noch nicht deklariert. Anscheinend war dies früher nicht notwendig.

    In den Modulköpfen sollte schon immer ein Option Explicit eingefügt
    werden. Damit wird man gezwungen zu deklarieren.

            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_COPY
            Me!Titel.Undo
            'DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_UNDOFIELD
            DoCmd.OpenForm DocName, A_NORMAL, , LinkCriteria, A_ADD, A_NORMAL
            DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_PASTE

    Kann mir jemand die richtigen Codezeilen nennen?

    Was passiert da alles? Evtl. hilft dir die FAQ weiter:
    http://www.donkarl.com?FAQ4.13

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Reg2xml:  http://www.reg2xml.com - Registry Export File Converter

    Dienstag, 20. November 2012 17:34
  • Es handelt sich hierbei um eine Art Literaturverwaltung.

    Nachdem hier die Frage mit Ja beantwortet wurde:

     Titel = "Der eingegebene Titel ist nicht in der Liste"
         MeldungDialog = MB_JANEIN + MB_AUSRUFEZEICHEN
         NeueArt = MsgBox("Möchten Sie einen neuen Titel hinzufügen?", MeldungDialog, Titel)
         If NeueArt = IDJA Then
             DocName = "frm_Titel_erfassen"

    Soll sich ein Formular öffnen, um einen neuen Titel zu erfassen und die Bereits eingegebenen Daten sollen schon in das neue Formular übertragen werden.

      	 DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_COPY
             Me!Titel.Undo
             DoCmd.OpenForm DocName, A_NORMAL, , LinkCriteria, A_ADD, A_NORMAL
             DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_PASTE
             SendKeys "{ENTER}"
             Response = DATA_ERRCONTINUE


    • Bearbeitet Jan Merker Mittwoch, 21. November 2012 08:12
    Mittwoch, 21. November 2012 08:11
  • Am 21.11.2012 schrieb Maverick1302:

    Soll sich ein Formular öffnen, um einen neuen Titel zu erfassen und die Bereits eingegebenen Daten sollen schon in das neue Formular übertragen werden.

                 DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_COPY
                     Me!Titel.Undo
                     DoCmd.OpenForm DocName, A_NORMAL, , LinkCriteria, A_ADD, A_NORMAL
                     DoCmd.DoMenuItem A_FORMBAR, A_EDIT, A_PASTE
                     SendKeys "{ENTER}"
                     Response = DATA_ERRCONTINUE

    Dann sieh dir bitte die Variante 2 der FAQ an:
    http://www.donkarl.com?FAQ4.13 Macht im Prinzip genau das, was Du
    möchtest. Nur ist es übersichtlicher als der bisherige Code.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Reg2xml:  http://www.reg2xml.com - Registry Export File Converter

    Mittwoch, 21. November 2012 20:17