Fragensteller
Access 2003 Datenbank in Access 2010 umstellen

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 StringConst MB_JANEIN = 4
Const MB_AUSRUFEZEICHEN = 48
Const MB_STDSCHALTFLÄCHE1 = 0, IDJA = 6, IDNEIN = 7
Const FRB_WEISS = 16777215
Const NORMAL = 1Titel = "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 SubFü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?
Alle Antworten
-
-
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_PASTEKann mir jemand die richtigen Codezeilen nennen?
-
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.13Servus
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 -
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
-
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