Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Problem mit Screen.PreviousControl
zurück: Anzahl von Kontrollkästchen einer Abfrage im Formular weiter: Blutiger Anfänger Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Stefan1982
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2006, 16:21
Rufname:

Problem mit Screen.PreviousControl - Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Hallo Leute,

auf einer Seite meines Registersteuerelements habe ich einen Button ("Erbengemeinschaft anlegen"). Klickt der User auf diesen Button, öffnet sich ein PopUp, in welchem der User die zugehörigen Daten eingeben kann. Auf diesem PopUp gibt es eine Kontrollkästchen ("Bankverbindung"). Wenn der User den Haken in dieses Kontrollkästchen setzt, wird geprüft ob zuvor im PopUp-Formular gewisse Felder ausgefüllt wurden. Dies geschieht mit dieser Funktion:
Code:
Public Function FnCheckFieldsPrivate() As Boolean
    FnCheckFieldsPrivate = False
    If Nz(Screen.PreviousControl.Parent!txtAnrede, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtVorname, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtName, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtStraße, "") = "" Then
        MsgBox "Bitte geben Sie zunächst die Eigentümerdaten vollständig " & _
               "ein!", vbOKOnly + vbInformation, "Daten unvollständig"
        If Nz(Screen.PreviousControl.Parent!txtAnrede, "") = "" Then
            Screen.PreviousControl.Parent!txtAnrede.SetFocus
          ElseIf Nz(Screen.PreviousControl.Parent!txtName, "") = "" Then
            Screen.PreviousControl.Parent!txtName.SetFocus
          ElseIf Nz(Screen.PreviousControl.Parent!txtVorname, "") = "" Then
            Screen.PreviousControl.Parent!txtVorname.SetFocus
          ElseIf Nz(Screen.PreviousControl.Parent!txtStraße, "") = "" Then
            Screen.PreviousControl.Parent!txtStraße.SetFocus
        End If
        FnCheckFieldsPrivate = False
      Else
        FnCheckFieldsPrivate = True
    End If
End Function
Ist diese Prüfung i.O., öffnet sich ein weiteres PopUp und der User kann die Bankverbindung eintragen (das vorherige PopUp bleibt geöffnet). Nun passiert folgendes: Angenommen der User entschließt sich im PopUp "Bankverbindung" keine Eintragungen zu machen und schließt dieses wieder, dann landet er wieder im vorherigen PopUp. Klickt der User nun nochmals auf das Kontrollkästchen(Bankverbindung), dann erhalte ich folgende Fehlermeldung:
Zitat:
In dem von Ihnen eingegebenen Ausdruck wird auf ein Objekt verwiesen, das geschlossen ist oder nicht existiert.
Diese Zeile wird gelb markiert:
Code:
    If Nz(Screen.PreviousControl.Parent!txtAnrede, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtVorname, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtName, "") = "" Or _
       Nz(Screen.PreviousControl.Parent!txtStraße, "") = "" Then
Hat jemand ne Ahnung woran das liegen könnte?

Gruß

Stefan
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2006, 16:49
Rufname:
Wohnort: Berlin


AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Ich vermute, das liegt daran, dass dann das PreviousControl auf dem inzwischen geschlossenen Popup liegt.

Musst Du das wirklich so allgemein programmieren?
Normalerweise würde auch ein Forms("Formularname")!txtAnrede reichen.

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
Stefan1982
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2006, 17:09
Rufname:

AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Hallo Rita,

normalerweise würde ich auch mit dem direkten Formularbezug arbeiten, aber ich brauch diese Funktion an 7 verschiedenen Stellen. Manchmal müsste ich mich dann direkt auf ein einzelnes Formular beziehen,
eben wie Forms("Formularname")!Feld und manchmal ist ein Bezug auf ein Unterformular in einem Hauptformular.
Also eher Forms!Formularname.Form!Formularname!Feld
Deswegen hab ich die Screen.Previous - Variante genommen. So brauch ich nur eine globale Funktion, die ich überall nehmen kann. Hab aber nun folgendes gemacht: Beim Schließen des PopUps "Bankverbindung" setzt ich den Fokus einfach wieder in ein Textfeld des PopUps "Erbengemeinschaft anlegen". Dann hauts wieder hin.

Gruß

Stefan
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2006, 17:13
Rufname:
Wohnort: Berlin

AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Eine andere Möglichkeit wäre, der Funktion FnCheckFieldsPrivate() das entsprechende Formular als Parameter zu übergeben.
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
Stefan1982
Im Profil kannst Du frei den Rang ändern


Verfasst am:
01. Dez 2006, 12:53
Rufname:

AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Hallo Rita,

an die Parameter-Übergabe hab ich auch schon gedacht. Aber da müsst ich doch trotzdem zwischen Formularnamen als Hauptformular und solchen als Unterformular unterscheiden oder? Oder kann man den kompletten Formularnamen, also inklusive voran stehender HFO-Namen übergeben?

Gruß

Stefan
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
01. Dez 2006, 13:01
Rufname:
Wohnort: Berlin

AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Wenn Du nicht den Formularnamen, sondern direkt das Formular übergibst, also:
Code:
Public Function FnCheckFieldsPrivate(f As Form)
Aufruf beim Unterformular dann
Code:
fnCheckFieldsPrivate(Forms!Formularname!UF-Steuerelement.Form)
sollte es auch funktionieren.
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
Stefan1982
Im Profil kannst Du frei den Rang ändern


Verfasst am:
01. Dez 2006, 13:24
Rufname:

AW: Problem mit Screen.PreviousControl - AW: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Hallo Rita,

vielen Dank. Klappt wunderbar. Hab den Code nach deinem Vorschlag angepasst und habe nun keine Probleme mehr mit den Fehlermeldungen bezüglich Screen.PreviousControl wenn das Formular den Fokus verliert.
Code:
Public Function FnCheckFieldsPrivate(frm As Form) As Boolean
    FnCheckFieldsPrivate = False
    If Nz(frm!txtAnrede, "") = "" Or Nz(frm!txtVorname, "") = "" Or _
       Nz(frm!txtName, "") = "" Or Nz(frm!txtStraße, "") = "" Then
        MsgBox "Bitte geben Sie zunächst die Eigentümerdaten vollständig " & _
               "ein!", vbOKOnly + vbInformation, "Daten unvollständig"
        If Nz(frm!txtAnrede, "") = "" Then
            frm!txtAnrede.SetFocus
          ElseIf Nz(frm!txtName, "") = "" Then
            frm!txtName.SetFocus
          ElseIf Nz(frm!txtVorname, "") = "" Then
            frm!txtVorname.SetFocus
          ElseIf Nz(frm!txtStraße, "") = "" Then
            frm!txtStraße.SetFocus
        End If
        FnCheckFieldsPrivate = False
      Else
        FnCheckFieldsPrivate = True
    End If
End Function
Vielen Dank nochmal

Gruß

Stefan
Willi Wipp
Moderator


Verfasst am:
01. Dez 2006, 13:39
Rufname:
Wohnort: Raum Wiesbaden


Re: Problem mit Screen.PreviousControl - Re: Problem mit Screen.PreviousControl

Nach oben
       Version: Office 2k (2000)

Hi Stefan1982,

Du koenntest auch versuchen den If-ElseIf-Teil so zu ersetzen
Code:
        Select Case True
          Case Nz(frm!txtAnrede, "") = "":  frm!txtAnrede.SetFocus
          Case Nz(frm!txtName, "") = "":    frm!txtName.SetFocus
          Case Nz(frm!txtVorname, "") = "": frm!txtVorname.SetFocus
          Case Nz(frm!txtStraße, "") = "":  frm!txtStraße.SetFocus
        End Select

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Screen.activeForm in einer Function 4 hallovelo 992 04. Nov 2010, 10:15
steffen0815 Screen.activeForm in einer Function
Keine neuen Beiträge Access Programmierung / VBA: Screen.Previouscontrol nicht definiert 1 Gast 793 14. Okt 2009, 14:20
MissPh! Screen.Previouscontrol nicht definiert
Keine neuen Beiträge Access Programmierung / VBA: Screen.ActiveForm für Popup 6 leenas 1848 13. Jul 2008, 15:10
leenas Screen.ActiveForm für Popup
Keine neuen Beiträge Access Programmierung / VBA: mit Screen.Previouscontrol Feldnamen abfragen 1 Volker 947 13. Nov 2007, 04:11
Volker mit Screen.Previouscontrol Feldnamen abfragen
Keine neuen Beiträge Access Programmierung / VBA: Problem mit Screen.PreviousControl 3 Guybrush junior 624 27. Mai 2007, 18:15
Willi Wipp Problem mit Screen.PreviousControl
Keine neuen Beiträge Access Formulare: Command button in Formular einbinden mit Print Screen?? 1 sandygenator 1405 08. Feb 2007, 08:01
blicki Command button in Formular einbinden mit Print Screen??
Keine neuen Beiträge Access Formulare: Usernamen im Start Screen anzeigen 4 sandygenator 623 26. Jan 2007, 11:52
sandygenator Usernamen im Start Screen anzeigen
Keine neuen Beiträge Access Programmierung / VBA: Screen einfrieren 2 olliminator 2598 07. Dez 2006, 09:21
ichbinsnur Screen einfrieren
Keine neuen Beiträge Access Programmierung / VBA: Screen.MousePointer = Pointer 2 Helmut 6337 05. Feb 2006, 14:11
cablit Screen.MousePointer = Pointer
Keine neuen Beiträge Access Formulare: Touch Screen Eingaben per Formular ermöglichen. 0 missionhro 1237 08. Nov 2005, 19:45
missionhro Touch Screen Eingaben per Formular ermöglichen.
Keine neuen Beiträge Access Programmierung / VBA: UFrm screen.activeform (Access/Word Datenaustausch) 2 kwakS00 2359 13. Sep 2005, 14:56
kwakS00 UFrm screen.activeform (Access/Word Datenaustausch)
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps