MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 05.02.2018, 01:24   #1
Flöchen99
Neuer Benutzer
Neuer Benutzer
Standard Acc2007 - Sonderbares Verhalten der Datenbank

Hallo,

ich hab gerade ein skurriles Problem mit einer Access Datenbank, das mich seit Stunden in den Wahnsinn treibt.

Die Datenbank besitzt ein selbst erstelltes Login-Formular und öffnet bei korrektem Login ein Startformular. Zumindest war das bisher so.

Heute habe ich an diesem Startformular gearbeitet und sehe mich plötzlich mit zwei skurrilen Dingen konfrontiert:
Wenn ich mich einlogge, wird das Startformular nicht mehr angezeigt. Ich kann es danach aber problemlos händisch öffnen. Außerdem habe ich zur Problemfindung versucht, Haltepunkte im VBA-Code zu setzen, diese "funktionieren" aber nicht, Access stoppt nicht, obwohl eindeutig Code ausgeführt wird, ich kann mir mit Debug.Print zwischen den Haltepunkten Text ausgeben lassen. Ich habe auch aus gegebenem Fall dann mit Debug.Print "Test" getestet, ob das Startformular geöffnet wird und sich wieder schließt, das war aber nicht der Fall, es wurde nie geöffnet. Wie ich herausfinden konnte, wird der VBA Code im Loginformular genau bis vor das Öffnen des Startformulars durchgeführt und dann scheinbar abgebrochen??? Der Befehl direkt davor wurde noch ausgeführt, das Formular wie gesagt nicht geöffnet und ein Debug.Print Befehl zum Test danach nicht ausgegeben.
Noch skurriler ist, dass sich ein anderes Formular aus dem Loginformular problemlos öffnen lässt.

Nachdem ich keine Lösung gefunden habe, hab ich die gesamte Datenbank in eine neue Access Datei importiert, zunächst schien da der Fehler behoben. Nachdem ich aber alle nötigen Verweise wieder eingefügt habe, hatte ich kurz darauf wieder den selben Fehler. An den Verweisen kann es jedoch nicht liegen, wenn ich sie wieder entferne, bleibt der Fehler bestehen.

Also das Ganze mal kurz gesagt: Das Startformular lässt sich nicht per VBA aus einem anderen Formular öffnen (hab ich auch nochmal mit einem anderen als dem Loginformular getestet). Sehr wohl aber von Hand.

Es folgt der VBA-Code des Startformulars:
Code:

Option Compare Database
Option Explicit

Private Sub cmdAnsichtsmodus_Click()
    p_strDatenAktuell = Me!Daten_HUF.SourceObject

    If Me.cmdAnsichtsmodus.Caption = "PopUp Ansicht" Then
        DoCmd.Close acForm, "frmHauptfenster"
        DoCmd.OpenForm "frmHauptfenster", , , , , acDialog, OpenArgs:="Standardansicht"
    Else
        DoCmd.Close acForm, "frmHauptfenster"
        DoCmd.OpenForm "frmHauptfenster", , , , , acWindowNormal, OpenArgs:="PopUp Ansicht"
    End If
End Sub

Private Sub cmdBeenden_Click()
    p_blnLoggedIn = False
    Application.Quit
End Sub

Private Sub cmdLogout_Click()
    p_blnLoggedIn = False
    DoCmd.Close acForm, "frmHauptfenster"

    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    DoCmd.SelectObject acTable, , True
    RunCommand acCmdWindowHide

    DoCmd.OpenForm "frmLogin"
End Sub

Private Sub Form_Close()
    If Me!txtNutzerRechte <> "Systemadministrator" And p_blnLoggedIn <> False Then
        Application.Quit
    End If
End Sub
Private Sub Form_Load()
    If p_blnLoggedIn = False Then
        DoCmd.SetWarnings False
        DoCmd.Close acForm, "frmHauptfenster"
        DoCmd.SetWarnings True
        MsgBox "Unerlaubter Zugriff! Bitte melden Sie sich an.", vbCritical, p_cstrDBTitel
    End If
End Sub

Private Sub Form_Open(Cancel As Integer)
    Me!imgLogo.Picture = DB_Pfad() & "DataLogo_klein.bmp"
    Me.Caption = p_cstrDBTitel
    DoCmd.Maximize

    If Me!txtNutzerRechte = "Systemadministrator" Then
        Me!cmdAnsichtsmodus.Visible = True
        If Me.OpenArgs <> 0 Then
            Me.cmdAnsichtsmodus.Caption = Me.OpenArgs
            Me!Daten_HUF.SourceObject = p_strDatenAktuell
        Else
            Me!Daten_HUF.SourceObject = "frmStartBildHauptfenster"
        End If
    Else
        Me!Daten_HUF.SourceObject = "frmStartBildHauptfenster"
        Me!cmdAnsichtsmodus.Visible = False
    End If
End Sub

Private Sub Formularkopf_Click()
    Me!Daten_HUF.SourceObject = "frmStartBildHauptfenster"
End Sub

Private Sub imgLogo_Click()
    Me!Daten_HUF.SourceObject = "frmStartBildHauptfenster"
End Sub

Private Sub Titel_Click()
    Me!Daten_HUF.SourceObject = "frmStartBildHauptfenster"
End Sub

Private Sub txtImpressum_Click()
    Me!Daten_HUF.SourceObject = "frmImpressum"
End Sub
Ich hoffe, mir kann jemand mit mehr Erfahrung bei diesem Problem helfen. Ich bin echt ratlos.

Viele Grüße,
Florian

Geändert von Flöchen99 (05.02.2018 um 01:30 Uhr).
Flöchen99 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.02.2018, 10:37   #2
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Nachdem ich aber alle nötigen Verweise wieder eingefügt habe, hatte ich kurz darauf wieder den selben Fehler.

Manchmal wird innerhalb der Verweise auch ein Versionenproblem auftreten (Wechsel zu Late Binding?). Kontrollieren.
Verweisprobleme stören dann das ganze VBA-Projekt, sollten sich aber auch durch eine (nicht immer zielführende) Fehlermeldung bemerkbar machen.

Zusätzlich würde ich nach Anlegen einer Sicherheitskopie die Datenbank decompilieren.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.02.2018, 23:27   #3
Flöchen99
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Eberhard,

ich hab die DB nochmal komplett in eine neue Datei übertragen, keine zusätzlichen Verweise gesetzt - funktioniert trotzdem nicht.
Fehlermeldung gab es außerdem gar keine.

Ich hab die DB auch wie beschrieben decompiliert, hat aber auch nichts genutzt. Genau das Selbe, beide Probleme bestehen weiterhin.

Viele Grüße,
Florian

Edit: Also einen Fehler hab ich bei weiteren Versuchen gefunden! Der Grund dafür, dass das Formular nicht geladen wurde, war ein nicht fertiger aber auch nicht auskommentierter Codeschnipsel im VBA-Code eines Unterformulars des Startformulars.
Das andere Problem besteht aber weiterhin, warum wurde erstens hierfür keine Fehlermeldung angezeigt und zweitens, warum funktionieren die Haltepunkte nicht? Das ist immer noch sehr verwirrend ...
Scheint aber nicht Datenbankspezifisch sondern global zu sein, es tritt auch bei einer Sicherungsversion der DB auf, die ca. eine Woche vor Auftauchen des Problems erstellt wurde.

Geändert von Flöchen99 (06.02.2018 um 00:34 Uhr).
Flöchen99 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 15:56   #4
Flöchen99
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hat vielleicht noch irgendjemand eine Idee, was der Grund für die fehlerhafte Funktionalität der VBA-Umgebung sein könnte? Kann man diese "Stop-Funktion" vielleicht irgendwie versehentlich ausstellen?

Viele Grüße,
Florian
Flöchen99 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 16:12   #5
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Florian,
Du kannst auch statt eines Haltepunktes auf dem linken Balken zu setzen mal
versuchen eine Zeile
Code:

Stop
einzufügen.
gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 16:59   #6
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Ich hab die DB auch wie beschrieben decompiliert, hat aber auch nichts genutzt.

Ach so, kompilieren sollte man den Code auch, das wäre ein erster Test auf Funktionsfähigkeit.
Und dann sollte man testen, als problematisch erkannte Abschnitte zuerst. In höherer Form dann AccUnit ist ein Werkzeug zum Testen von Anwendungscode unter Access und VBA.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 18:58   #7
Flöchen99
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

@Ekkehard das funktioniert leider auch nicht.

@Eberhard das Kompilieren hat keinen Fehler hervorgebracht.
Ich werde mir das AccUnit am WE mal anschauen.

Viele Grüße,
Florian
Flöchen99 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.