September 24, 2020, 05:00:37

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


VBA-Befehle werden zum Teil nicht erkannt

Begonnen von mmaxx, August 31, 2020, 21:52:34

⏪ vorheriges - nächstes ⏩

mmaxx

August 31, 2020, 21:52:34 Letzte Bearbeitung: August 31, 2020, 21:59:47 von mmaxx Grund: Zusatzinfos
Hallo zusammen,
ich habe folgendes Problem. In meinem Betrieb laufen einige meiner Datenbanken als lokale Installation auf einigen Rechnern. Erstellt mit Access 2010 liefen Sie Jahrelang problemlos, auch auf Rechnern mit nur der Runtime. Letzte Woche Update auf Office 2016 und Windows 10 (vorher Win 7). Nun passiert folgendes welches mich ratlos macht:
Manche VBA-Befehle werden ausgeführt, manche wiederum nicht. Der VBA-Befehl in einem Steuerelement zum öffnen eines Formulares geht, ein anderer zum schließen des aktuellen Formulares geht nicht. Berichte können nicht mehr durch anclicken angezeigt werden. VBA-Funktion zum Filtern einer Ansicht gehen auch nicht.
Habe die DB repariert und komprimiert, kein Ergebnis. Habe aus Interesse auf ein bestehendes Steuerlement und auf ein neu erstelltes beim Ereignis beim clicken eine MsgBox Info hinterlegt...keine Reaktion. Makros funktionieren.
Habe mit der aktuellen Version eine leere DB erstellt und alle Inhalte aus der alten importiert....nun konnte ich Sie öffnen und alles lief korrekt, aber nach einmaligem schließen und wieder öffnen der DB  geht wieder nichts mehr???
Ich selbst habe im Betrieb keinen Admin-Zugriff, aber die IT´ler sind auch nicht so auf Office geschult....und die Motivation......naja, anderes Thema.
Hat jemand einen Tipp was ich denen empfehlen kann? Fehlen Vielleicht irgendwelche Bibliotheken und/oder Verweise?
Sorry wenn ich etwas frage was schon evtl geposted wurde...habe leider nichts helfendes gefunden.
Ich Danke Euch im voraus für Eure Hilfe.
LG
Mmaxx

markus888

Zitat von: mmaxx am August 31, 2020, 21:52:34Fehlen Vielleicht irgendwelche Bibliotheken und/oder Verweise?

Wohl kaum, da hättest du zumindest Fehlermeldungen.
Was du prüfen kannst, ist die Reihenfolge der Verweise.

Zitat von: mmaxx am August 31, 2020, 21:52:34Habe mit der aktuellen Version eine leere DB erstellt und alle Inhalte aus der alten importiert....nun konnte ich Sie öffnen und alles lief korrekt, aber nach einmaligem schließen und wieder öffnen der DB  geht wieder nichts mehr???

Normalerweise mache ich bei einem Systemwechsel - Betriebssystem, oder Access - erstmal ein Decompile und kompiliere in der neuen Anwendung.
Es ist mir auch schon passiert, dass Controls die Verbindung zu den Events verloren haben.
Einfach nachschauen ob die "Event-Aufrufe" bei den Controls noch vorhanden sind.

Was mich interessiert: Verwendest du ein Fehlerhandling oder gar eine Protokollierung?
10 Jahre Access

mmaxx

Hi markus888,
Vielen Dank für die schnelle und aussagekräftige Antwort. Ich bin nicht wie der Großteil der User hier ein Profi sondern ein noob der sich mit den Jahren ein gewisses rudimentäres grundwissen angeeignet hat.
Ein Fehler Handling zum Abfangen z.B. gewisser laufzeitfehler verwende ich. Eine Protokollierung leider nicht. Ich muss zu meiner Schande gestehen dass ich noch nie dekompiliert habe. Habe mal gegoogelt und werde es probieren. Kennst du eventuell eine Anleitung die auch ein nicht-profi gut versteht und umsetzten kann;) ? Habe zwar eine gefunden an der ich mich durchhangeln kann...aber vielleicht kennst Du ja was besseres.

Du hast mir noch den Tipp gegeben:
"Was du prüfen kannst, ist die Reihenfolge der Verweise.... Einfach nachschauen ob die "Event-Aufrufe" bei den Controls noch vorhanden sind."
Wie prüft man die Reihenfolge?

Sorry wenn alles etwas laienhaft rüber kommt. Ich habe meine Bekanntschaft mit Access dadurch gemacht dass ich etwas umsetzen wollte und mit Excel an Grenzen
stieß. Also rum gehört und kam auf Access. Dann gab es da natürlich Probleme die ich je nach Aufgabenstellung nach und nach gelöst habe. Ich habe das weder professionell gelernt noch einen Kurs absolviert. Nur so viel zu meinem background.

Ich danke dir für deine Unterstützung.
LG
mmaxx


DF6GL

Hallo,


Zitat...noch nie dekompiliert habe...

dann solltest Du Dich schläunigst damit befassen:

VBA-Editor öffnen (<Alt>F11) . Unter "Debuggen" findest Du den Punkt "Kompilieren von ...".

Wenn beim Klicken Fehlermeldungen auftauchen, dann müssen diese Fehlersituationen allesamt bereinigt werden, bis ein fehlerloses Kompilieren erfolgt ist.

Die Verweise findest Du unter "Extras/Verweise".  Alle dort angehakten Libraries sind eingebunden. Wenn bei einem Haken ein Fehlerhinweis steht, dann "enthake" diesen Punkt.

Die Reihenfolge ist einfach von oben nach unten in der Liste gesehen.  Wobei die Reihenfolge keine Rolle spielt, solange die Variablen-Deklarationen qualitativ sind, d. h. explizit auf die entspr. Library verweisen.

Kompiliere danach wieder, solange bis "Kompilieren von.." ausgegraut erscheint.




mmaxx

Hi,
Vielen Dank für die Hinweise. Werde mich mit dem Thema ganz sicher auseinandersetzen.
Ich habe die Sicherheitskopie der betreffenden Datenbank auf meinem System (win 10 und Access 2013) kompiliert. Das ging beim ersten Mal ohne Probleme durch und im Menüpunkt ist dies jetzt grau hinterlegt. Ich bin gespannt wie sich das auf einem Dienstrechner verhält und ob es den gewünschten Effekt hat. Am Donnerstag weiß ich mehr und werde auch berichten.
Ich hatte eine Anleitung zum compilieren gefunden die doch recht kompliziert war. Verknüpfung erstellen dann unter Eigenschaft /decompile einfügen.. dann Datenbank mit Umschalttaste anzeigen lassen und so weiter....
Aber wie gesagt, NOCH bin ich nicht so fest in der Materie drin.... Wird sich aber ändern.
LG
mmaxx

markus888

Zitat von: mmaxx am September 01, 2020, 16:56:14Ich hatte eine Anleitung zum compilieren gefunden die doch recht kompliziert war. Verknüpfung erstellen dann unter Eigenschaft /decompile einfügen.. dann Datenbank mit Umschalttaste anzeigen lassen und so weiter....

Du vermischt hier zwei ganz unterschiedliche Dinge.
Dekompilieren versucht die Kompilierung rückgängig zu machen.
Die VBE ist grundsätzlich ein Murx, wenn es ums Kompilieren geht, aber das kann man nunmal nicht ändern.
Man braucht das Dekompilieren auch nur dann, wenn alles andere nicht hilft.

Anleitung zum Dekompilieren
10 Jahre Access

mmaxx


mmaxx

September 03, 2020, 13:53:56 #7 Letzte Bearbeitung: September 03, 2020, 14:00:41 von mmaxx
Hi zusammen,
war jetzt am betroffenen Firmenrechner. Kompilieren ging ohne Probleme, keine Fehler. Verweise sind fast  identisch wie bei meinem Rechner auf dem alles läuft.
- Visiual Basic for Applications
- MS Access 15.0 Object Library
- OLE Automation
- MS Office 15.0 Access database engine Object Library
Keine Fehlermeldungen.
bei mir sind es noch die Access und Office 14.0 Versionen...sonst identisch.
Trotzdem läuft es nicht.
Seltsam ist: ich erstelle ein Formular in der 2016 Version in einer neuen DB, generiere einen Button mit Ereignis "DoCmd.close"...Button funktioniert. DB einmal schließen und öffnen...Button funktioniert nicht.
Auch die betroffene DB zeigt das gleiche Verhalten: Alles in eine neue Datenbank importiert...alles geht...DB einmal schließen und wieder öffnen...geht nicht. Office-Installation liegt auf ZENworks, Reparatur-Option durchgeführt. Keine Änderung .Bin ratlos!? Die IT-Abteilung bis jetzt auch :(
LG
mmaxx


markus888

Zitat von: mmaxx am September 03, 2020, 13:53:56Keine Änderung .Bin ratlos!? Die IT-Abteilung bis jetzt auch

Ich auch.
Du kannst die Beispiel Datei die du da grade erzeugt hast ja mal hochladen.
Hast du auch geprüft, ob sich die Datei an einem "vertrauenswürdigen Speicherort", wie im TrustCenter eingestellt befindet.
10 Jahre Access

DF6GL

Hallo,



ZitatKompilieren ging ohne Probleme

weiß jetzt nicht, ob schon angesprochen:

In ALLEN Modulköpfen MUSS Option Explicit  vorhanden sein. Dies prüfen/korrigieren und nochmal kompilieren.


ShenTo19

Hallo zusammen,
im Smart-Tools-Newsletter vom 20.8. wird vor einem neuen Access-Update-Bug gewarnt:
Die August-Updates aus der letzten Woche sorgen einmal wieder für Probleme mit Access. Auslöser ist diesmal das Windows 10-Update KB4566782, das eine fehlerhafte msjet40.dll installiert. Betroffen von dem Fehler sind alle Systeme, auf denen noch mit Datenbanken im alten MDB-Format gearbeitet wird. Die Fehlerbeschreibungen reichen von Problemen beim Öffnen der Datenbank, über Fehlermeldungen zur Systemtabelle "MsysAccessObjects" bis hin zum unkontrollierten Aufblähen der Datenbank auch bei reinen Lesezugriffen.

Microsoft hat den Fehler bis zum Redaktionsschluss noch nicht offiziell bestätigt, aber in verschiedenen Foren berichten MVP's von direkten Microsoft-Rückmeldungen zu dem Bug, der vom Windows-Team schnellst möglich behoben wird.

Wenn Sie mit MDB-Datenbanken unter Windows 10 arbeiten sollten Sie bis zu einem offiziellen Bugfix entweder das Update KB4566782 entfernen oder die fehlerhafte msjet40.dll (Version 4.0.9801.25) aus dem Verzeichnis C:WindowsSysWOW64 durch die letzte fehlerfreie Version 4.0.9801.24 von einem noch nicht gepatchten System ersetzen.
Möglicherweise hängen Deine Probleme hiermit zusammen.
Gruß Thomas

markus888

Zitat von: ShenTo19 am September 03, 2020, 17:18:04Möglicherweise hängen Deine Probleme hiermit zusammen.



Keines der beschriebenen Probleme trifft zu.
Die genannten Voraussetzungen werden nicht erfüllt.

Wo soll denn der Zusammenhang bestehen?
10 Jahre Access

ShenTo19

Hallo,
es werden nur drei Probleme konkret beschrieben, ich verstehe das so, dass damit die Art der Probleme nicht erschöpfend benannt wurde sondern nur beispielhaft. Die von mmax erwähnte Datenbank wurde mit A 2010 erstellt, gut möglich, dass es sich um eine MDB und nicht um eine ACCDB handelt, die anscheinend nicht betroffen sind, oder hast Du andere Indormationen? Ich halte den Hinweis daher immer noch für sinnvoll.
Gruß Thomas

mmaxx

September 04, 2020, 14:35:43 #13 Letzte Bearbeitung: September 04, 2020, 14:41:38 von mmaxx
Hi,
Ich denke das es an der Office Installation liegt. Habe es auf 5 Rechnern liegen ( Win7/Office 2010/2013 und Win 10/ office 2010/2013) und dort läuft es ohne Probleme. Wurde als accdb erstellt.
Die Beispieldatenbank bestand nur aus einem Formular mit nur einem Button mit einem VBA-Befehl. Sie wurde in der neuen Office-Version erstellt.

"In ALLEN Modulköpfen MUSS Option Explicit vorhanden sein. Dies prüfen/korrigieren und nochmal kompilieren."

Option Explizit ist in allen Modulköpfen vorhanden.

Ist halt doof wenn es überall funktioniert nur nicht dort wo es gebraucht wird. Da die Leute der IT keinen Plan haben (sorry!), sie schieben es auf Office, ein externer IT'ler sagte es liegt am Netzwerk/ oder der Installation was unsere IT-Leute wiederum verneinen...aber keiner kann es Regeln. Wenn jetzt gar nichts mehr ginge und nur Fehlermeldungen aufpoppen würde hätte man ja einen Hinweis...aber so?
Mich irritiert das es erst funktioniert und nach einmaligem öffnen nicht mehr.

"Hast du auch geprüft, ob sich die Datei an einem "vertrauenswürdigen Speicherort", wie im TrustCenter eingestellt befindet."
Das werde ich natürlich Montag gleich überprüfen....aber da sich am Speicherort  nichts geändert hat glaube ich kaum das dies die Ursache für dieses Verhalten ist.

Es sieht doch laienhaft ausgedrückt so aus als ob beim 2. Öffnen irgendwelche Bibliotheken nicht mehr gefunden werden....aber täusche mich bestimmt auch.
Kann nur abwarten und die IT nerven...oder noch auf den Hinweis warten.
Ich danke Euch allen für die Unterstützung....Ist ein tolles Forum, bei dem ein newbie auch Mal Basicfragen oder Unsinn fragen kann..:)...ohne gleich von hyperprofessionellen in der Luft zerpflückt zu werden.

LG
Mmaxx

DF6GL

Hallo,,

wenn es möglich ist, lade die DB hier hoch, komprimiert/repariert und gezippt.


Datenreduktion würde ich jetzt nicht empfehlen, weil ja auch evtl. eine besondere Datenkonstellation die Fehlersituation bewirken könnte.

Falls Du mit der Preisgabe der Daten Probleme hast oder bekommen könntest,  schreibe mir eine PN.