Fehlende Methoden in Access 2000?

Hallo,

vor kurzem habe ich Access 2000 installiert und war ja etwas „geschockt“. Ich habe mir für ein Formular eine VBA-Programmierung zurechtgemacht, die halt in einer Tabelle bestimmte Datensätze bearbeiten sollte. Das grobe Quelltextgerüst sah ungefähr so aus

dim rstAdressen as Recordset

set rstAdressen = currentdb().openrecordset(„tblAdressen“, dbopendynaset)

Da kam schon die erste Überraschung. In Access 97 hat VBA mir den Ausdruck dbopendynaset automatisch formatiert, also als internes Wort erkannt. Access 2000 macht das nicht. Dann aber kam die richtige Überraschun. Ich gab folgende Zeile ein:

rstAdressen.FindFirst strSuche

Nach dem Punkt klappte auch wie gewohnt die Liste mit Methoden usw. auf, jedoch gab es FindFirst nicht mehr, nur noch Find. Interessant st, dass ich testweise mal eine mit 97 erstellte Datenbank konvertierte und dort den VBA-Text editierte. Dort wurde FindFirst aufgeführt. Auch kennt 2000 den Datentyp „Database“ angeblich nicht mehr, denn

dim db as Database

geht auch nicht mehr.

Was ist da los? Kann ich vielleicht Access 2000 deinstallieren und die 97er Version wieder installieren oder beisst sich das mit dem Rest von Office 2000?

Danke für Eure Hilfe, Robert

Vermutlich stimmt irgendetwas mit deinen Objektbibliotheken nicht. Schau mal unter Extras/Verweise nach „broken Links“ (also nicht gefundenen Verweisen bzw. Objektbibliotheken). Oft steht noch die alte Utility97.MDA drin - die solltest du rauswerfen und durch die aktuelle Version ersetzen.

Reinhard

Hallo Robert,

daran bin ich auch fast verzweifelt. E Tage gesucht und nichts ging. Ich hatte schon Angst ich muß alles nochmal lernen.
Unten steht die Lösung.

Nils

Dort hab ich die Lösung gefunden:
http://www.donkarl.com/FAQ/FAQBugs.htm#7.11

und hier der Text

  1. 11 DIM DB AS DATABASE IN A00 BRINGT FEHLER

P r o b l e m
Du bekommst in A00 bei Code wie
Dim db As database oder Dim rs as recordset
einen Kompilierfehler - „Benutzerdefinierter Typ nicht definiert“ o.ä.

U r s a c h e
Standardmäßig ist bei der Neuanlage von Datenbanken in A00 ADO
als Bibliothek für Datenzugriffe eingestellt.
Die meisten Access-Programmierer arbeiten aber weiterhin mit DAO.
Der Verweis auf DAO fehlt also oder die Priorität des Verweises auf ADO ist höher.

L ö s u n g e n

  1. Lösungsvariante
    Modul öffnen, Menü Extras/Verweise, Verweis auf DAO 3.6 setzen,
    die Priorität des Verweises mit Hilfe der Pfeiltasten höher setzen
    als die des ADO-Verweises. Bei Nichtverwendung von ADO kann der
    Verweis darauf auch rausgenommen werden.

  2. und gründlichere Lösungsvariante
    Wie o.a. Verweis auf DAO 3.6 setzen und explizit deklarieren, auf
    welche Bibliothek du dich berufst. Höchstwahrscheinlich auf DAO, also

Dim db as DAO.Database
Dim rs as DAO.Recordset
etc.

Dann ist die Reihenfolge der Verweise egal.