Access2000 Programmierprobleme

Dieser Thread ist Teil einer Diskussion zu einem Artikel:  Zum News-Artikel gehen

Fritz50

Stammgast
Hallo
Ich möchte gerne eine alte Accessanwendung zum laufen bringen, mindestens fehlerfrei durch die Formulare klicken. Dabei gibt es eine Teilanwendung, weil damals Daten an mehreren PC erfasst wurden und die Daten dann mit Disketten in die DB eingelesen wurden.
Eine Fehlermeldung lautet "Benutzerdefinierter Typ nicht definiert" in der Zeile 'Dim DB As Database'. Database sollte doch m.E. bekannt sein. Einmal konnte ich bei einem ähnlichen Fehler via Verweise eine Bibliothek einbinden (damals hiess es Typ oder ähnlich unbekannt oder fehlend). In diesen Fall aber sind Verweise nicht aktiviert (blass dargestellt).

Im andern Programm (Datenerfassungen) soll ein Klickereignis ein weiteres Formular öffnen. Es gibt dieses Formular auch, geschrieben wie in der Fehlermeldung. Aber in der Zeile
'DoCmd.OpenForm "Postendaten Kategorie-Auswahl" '
gibt es einen Laufzeitfehler '2485' kann das Makro xy nicht finden.

In der ursprünglichen Version der "kleinen Anwendung" geht diese beim Öffnen nicht in den Entwurfsmodus, sondern immer das Hauptformular öffnet. Wie kann ich das den Entwurfsmodus erzwingen.

Danke für hilfreiche Hinweise.

freundliche Grüsse
Fritz
 

UeliF

Stammgast
Ich sehe, dass hier noch keine Antwort eingegangen ist. Arbeite seit vielen Jahren mit Access. Bei solchen Problemen habe ich mich via Fiverr mit einem guten Spezialisten aus Sri Lanka gefunden. Er bedient mich (English, via Zoom oder Skpye) bestens. Kostet jeweils ca. 100 Euro und die Datenbank läuft wieder. Falls es dich interessiert sende mir ein Email auf uf@nlp.ch
 

Fritz50

Stammgast
Ich hoffe, dass ich vielleicht hier doch noch den einen oder andern Hinweis erhalte. Geld investieren möchte ich eher nicht.

Mittlerweile habe ich festgestellt, dass doMenuItem ab Access2000 durch RunCommand ersetzt worden ist. Auch enthält der Code alte Access 2.0 Konstanten. Aber Access2000 versteht die meisten Ausdrücke.

Auf die Verweise konnte ich meistens zugreifen (bei welchen Zuständen/Konstellation es nicht geht und bei welchen es geht ist mir noch nicht eindeutig klar). Ich muss den Verweis auf DAO6.1 ankreuzen und einen alten DAO.., als fehlend angezeigt, canceln.

Dafür ist da ein anderes Problem. Mit einem Formularbefehl sollte die Datei auf eine Diskette geschrieben werden. Natürlich habe ich kein Disketten LW mehr. Ich weiss nicht, ob der Fehler auftritt weil der Befehl falsch oder unvollständig ist oder weil das LW fehlt. Im Code finde ich keine Hinweise auf ein LW oder einen Pfad, aber das Problem ist m.E in einem Query Ausdruck. Es scheint auch, dass Dateien fehlen.

Nun suche ich aber noch einen Tip für dieses Speichern/Laden Poblem, ohne Netzwerkverbindung. Von den Erfassungsstationen (PCs) sollen die Daten auf ein Medium gespeichert werden. Und im zentralen PC sollen die Daten vom Datenträger in die Haupttabelle integriert werden. Diese Aufgaben sollten programmiert sein, so dass man diese aus einem Formular heraus oder vielleicht auch manuell auslösen kann.

Dabei weiss ich nicht ob fixe Pfade oder eine Navigation via Explorer schlauer ist.
Der RunCommand-Befehl ist in Access2000 bekannt.
Danke für jeden Hinweis.

freundliche Grüsse
Fritz
 

Billmar

Stammgast
Hallo Fritz

Dafür ist da ein anderes Problem. Mit einem Formularbefehl sollte die Datei auf eine Diskette geschrieben werden. Natürlich habe ich kein Disketten LW mehr. Ich weiss nicht, ob der Fehler auftritt weil der Befehl falsch oder unvollständig ist oder weil das LW fehlt.
Für das Laufwerk A: (ehemals erstes Diskettenlaufwerk) könntest Du ev. mit dem "subst - Befehl" einen Schreibvorgang auf die HDD/SSD umleiten.
Hier der Befehl für die Eingabeaufforderung wenn Du auf Laufwerk C: ein Verzeichnis "temp" eingerichtet hast (andere Verzeichnispfade gehen natürlich auch):
Code:
subst A: C:\temp
Möglicherweise fehlen aber Dateien, welche der Programmcode voraussetzt, in diesem Verzeichnis. Dann wird's schwieriger.

Zu den anderen Punkten kann ich leider nicht viel beitragen da ich nur marginale Kenntnisse zu Access habe. Eines vielleicht noch: Was passiert wenn Du die Applikation mit gedrückter Shift-Taste startest?

Gruss Mario
 

Fritz50

Stammgast
Hallo

Es sind nochmal zwei Probleme die mich beschäftigen: Zur Erinnerung: es handelt sich um ein Wettkampfprogramm, das ich zuerst von A97 auf A2000 konvertiert habe. Dann den einen oder andern Fehler korrigiert. Auch habe ich versucht das Programm neu „aufzubauen“ indem ich Formular um Formular (und Abfragen, Tabellen etc) in eine leere Anwendung importiert habe. Einmal ist dieser Fehler, dann ein anderer je nach Herangehensweise.

Jetzt ist mir aufgefallen, dass eine Methode auf ein Recordset einmal möglich ist und ein andermal nicht. Es ist dies FindFirst/Last/Next/Previous. Im andern Fall ist nur Next verfügbar. Dabei ist die Funktion die Gleiche aber nicht gleiche DB, sondern in Varianten. Wo muss ich suchen?

Im andern Fall geht es ums Verlassen/Beenden der Anwendung. Manchmal kommt eine Fehlermeldung „Access kann das Makro Schaltflächen Haupübersicht nicht finden“. Es gibt dieses Makro auch nicht (mehr?). Aber in den Eigenschaften des Formulars ist das Makro unter dem Stichwort Entladen enthalten mit der Methode .verlassen. Das Formular hat auch eine Clickfläche, die eine Funktion aufruft die DoCmd.Close enthält. Muss ich da etwas beachten? Das Makro wir auch vermisst, wenn ich in den Entwurfmodus wechseln will und wenn im Umkehrfall nach einer Änderung im Code wegen dem Speichern gefragt wird. Mit DoCmd.Close schliesst das Formular, aber nicht die Anwendung. Es bleibt das DB-Fenster offen.

Und doch noch etwas zum Dritten: Wie kann ich suchen wo ein Makro aufgerufen wird?

Manchmal habe ich auch den Laufzeitfehler(13) Typen unverträglich bei:
Set Abfrage = DB.OpenRecordset("maximale Gruppen-Nr", DB_OPEN_SNAPSHOT)
Dabei ist Abfrage als Recordset definiert und „maximale Gruppen-Nr“ ist eine Abfrage.
Danke

Gruss
Fritz
 
Oben