Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fokus zurücksetzen bei falscher Eingabe
zurück: Listenfeld abhängig von Kombinationsfelder weiter: Access aendert Datensaetze 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
Naddy
Gast


Verfasst am:
22. Jul 2009, 17:00
Rufname:

Fokus zurücksetzen bei falscher Eingabe - Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,
ich habe eine Sub die ein Datumsfeld kontrolliert:
Code:
Private Sub C_DATE_A()
    'ASL_A_DATUM = Ausleihdatum
    Dim VAR_01 As Date
    Dim VAR_02 As Date
   
    VAR_01 = DateValue("01.01.2009")
    VAR_02 = DateValue("01.01.2100")
    If Me!ASL_A_DATUM < VAR_01 Then C7
    If Me!ASL_A_DATUM > VAR_02 Then C7
    If Len(Nz(Me!ASL_R_DATUM, "")) = 0 Then _
        If Me!ASL_R_DATUM < Me!ASL_A_DATUM Then C8
End Sub
Die Sub wird beim Fokusverlust des Textfeldes ausgelöst.
Dann gibts noch die Sub C7:
Code:
Private Sub C7()
    'ASL_A_DATUM = Ausleihdatum
    Dim C1 As Integer
   
    'DoCmd.GoToControl "ASL_A_DATUM"
    Me!ASL_A_DATUM.SetFocus
    MsgBox "Die Ihnen angegebene Ausleihdatum ist unzulässig!"
End Sub
Ich möchte nur das, wenn das Datum in "Me!ASL_A_DATUM" nicht der Sub "C_DATE_A" entspricht, der Fokus nicht aus dem Feld "Me!ASL_A_DATUM" auf Endlosformularebene das Feld verlässt. Also wenn ich in ein anderes Feld klicken will und das Datum ist falsch, dann soll der Fokus in "Me!ASL_A_DATUM" bleiben.
Code:
    DoCmd.GoToControl "ASL_A_DATUM"
' und
    Me!ASL_A_DATUM.SetFocus
klappen nicht!!
Weiß jemand weiter???
Gruß
Naddy
KlausMz
Moderator Access


Verfasst am:
22. Jul 2009, 17:17
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,
verlagere die Sub in das Ereignis "Vor Aktualisierung" des Feldes.
Bei falschem Datum setzt Du den Parameter Cancel auf True, dann wird abgebrochen, und das Feld erst gar nicht verlassen.
Code:
    Cancel = True

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
22. Jul 2009, 18:40
Rufname:
Wohnort: NRW

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,
Zitat:
If Len(Nz(Me!ASL_R_DATUM, "")) = 0 Then _
If Me!ASL_R_DATUM < Me!ASL_A_DATUM Then C8
das halte ich für falsch, sollte es nicht besser so heißen:
Code:
    If IsDate(Me!ASL_R_DATUM) Then _
        If Me!ASL_R_DATUM < Me!ASL_A_DATUM Then C8

_________________
Gruß MissPh!
Naddy
Gast


Verfasst am:
23. Jul 2009, 10:45
Rufname:

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,

Wo muss das Cancel = True hin???

Gruß
Naddy
KlausMz
Moderator Access


Verfasst am:
23. Jul 2009, 11:12
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,

dort wo festgestellt wird, dass der Wert falsch ist.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Naddy
Gast


Verfasst am:
23. Jul 2009, 11:17
Rufname:

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Sorry, aber irgendwie verstehe ich es nicht.
Muss das irgendwo in meine Sub mit hinein????

(Irgendiwe stehe ich uaf dem Schlauch!)

Gruß
Naddy
KlausMz
Moderator Access


Verfasst am:
23. Jul 2009, 11:32
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,
wei ich bereits schrieb
Zitat:
verlagere die Sub in das Ereignis "Vor Aktualisierung" des Feldes.
muss der Code zum Prüfen in das in das Ereignis "Vor Aktualisierung". Nach der Msgbox "Falsch ..." kommt dann die Zeile mit dem Cancel = True
_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Naddy
Gast


Verfasst am:
23. Jul 2009, 13:38
Rufname:

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,

Also, hab jetzt alles so eingefügt, aber der Focus wird immer noch versetzt, obwohl die Msgbox anschlägt.
Code:
    Cancel = True
klapp nicht!

Gruß
Naddy
MissPh!
Office-VBA-Programmiererin


Verfasst am:
23. Jul 2009, 13:42
Rufname:
Wohnort: NRW

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,

mit einer einzelnen Codezeile können wir nicht viel anfangen, zeig doch mal die ganze Prozedur bzw. alles was in diesem Zusammenhang eine Rolle spielt.

_________________
Gruß MissPh!
Naddy
Gast


Verfasst am:
23. Jul 2009, 14:33
Rufname:

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

ok:
Code:
Private Sub ASL_A_DATUM_BeforeUpdate(Cancel As Integer)
    C_DATE_A
End Sub

Private Sub C_DATE_A()
    'ASL_A_DATUM = Ausleihdatum
    VAR_01 = DateValue("01.01.2009")
    VAR_02 = DateValue("01.01.2100")
    If Me!ASL_A_DATUM < VAR_01 Then C7
    If Me!ASL_A_DATUM > VAR_02 Then C7
    If IsDate(Me!ASL_R_DATUM) Then _
        If Me!ASL_R_DATUM < Me!ASL_A_DATUM Then C8
End Sub

Private Sub C7()
    MsgBox "Das von Ihnen angegebene Ausleihdatum ist unzulässig!"
    Cancel = True
End Sub

Private Sub C8()
    MsgBox "Das von Ihnen angegebene Datum ist unzulässig!" & _
           vbCrLf & vbCrLf & "Das Rückgabedatum ist kleiner als das Ausleihdatum!"
End Sub

Gruß
Naddy
MissPh!
Office-VBA-Programmiererin


Verfasst am:
23. Jul 2009, 14:53
Rufname:
Wohnort: NRW

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Deine Angewohnheit, mit Mini- und Teilprozeduren zu arbeiten ist hier sehr hinderlich.
Machen wir doch daraus mal eine hübsche Ereignisprozedur. ;)
Code:
Private Sub ASL_A_DATUM_BeforeUpdate(Cancel As Integer)
    'ASL_A_DATUM = Ausleihdatum
    VAR_01 = DateValue("01.01.2009")
    VAR_02 = DateValue("01.01.2100")
    If Me!ASL_A_DATUM < VAR_01 Or Me!ASL_A_DATUM > VAR_02 Then
        MsgBox "Das von Ihnen angegebene Ausleihdatum ist unzulässig!"
        Cancel = True
    End If
    If IsDate(Me!ASL_R_DATUM) Then
        If Me!ASL_R_DATUM < Me!ASL_A_DATUM Then
            MsgBox "Das von Ihnen angegebene Datum ist unzulässig!" & _
                   vbCrLf & vbCrLf & _
                   "Das Rückgabedatum ist kleiner als das Ausleihdatum!"
            Cancel = True
        End If
    End If
End Sub

_________________
Gruß MissPh!


Zuletzt bearbeitet von MissPh! am 23. Jul 2009, 15:06, insgesamt einmal bearbeitet
Naddy
Gast


Verfasst am:
23. Jul 2009, 15:01
Rufname:

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Hallo,
klappt super danke!

Aber ich verstehe nicht warum es nicht bei mir geklappt hat. Mein Code bestehet zwar aus Teilprozeduren, aber ist doch in der Syntax richtig gewesen oder ????

Bitte um Antwort!

Danke!

Gruß
Naddy
MissPh!
Office-VBA-Programmiererin


Verfasst am:
23. Jul 2009, 15:09
Rufname:
Wohnort: NRW

AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Nein, der Cancel-Befehl muss in der Ereignisprozedur stehen, woanders macht er keinen Sinn.

Du hättest da höchstens mit einer globalen Variablen und einer Function mit Rückgabewert arbeiten können, aber das ist doch viel zu umständlich.
Gewöhne dir lieber einen "linearen" Programmierstil an, da fährst du besser mit.
Außerdem sind die Prozeduren C7 und C8 so speziell, dass sie eh nicht mehrfach eingesetzt werden können.

_________________
Gruß MissPh!


Zuletzt bearbeitet von MissPh! am 23. Jul 2009, 15:21, insgesamt einmal bearbeitet
Naddy
Gast


Verfasst am:
23. Jul 2009, 15:13
Rufname:


AW: Fokus zurücksetzen bei falscher Eingabe - AW: Fokus zurücksetzen bei falscher Eingabe

Nach oben
       Version: Office XP (2002)

Danke!
Ich werds mir merken!
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 Tabellen & Abfragen: Access DAtenbank zur Eingabe/Verwaltung von Lagerbeständen 3 AccessMuffel 2041 03. Nov 2008, 11:05
KlausMz Access DAtenbank zur Eingabe/Verwaltung von Lagerbeständen
Keine neuen Beiträge Access Tabellen & Abfragen: Letzte Eingabe filtern 3 Hibbidi 386 30. Okt 2008, 17:42
lleopard Letzte Eingabe filtern
Keine neuen Beiträge Access Tabellen & Abfragen: Daten in Abfrage löschen, AutoWert zurücksetzen 3 AccessNub 3525 30. Okt 2008, 02:32
Willi Wipp Daten in Abfrage löschen, AutoWert zurücksetzen
Keine neuen Beiträge Access Tabellen & Abfragen: abfrage eingabe letzte Zahl 23 vincentk 2039 16. Apr 2008, 13:31
vincentk abfrage eingabe letzte Zahl
Keine neuen Beiträge Access Tabellen & Abfragen: Zurücksetzen eines Kombinationsfeldes 1 Gast 395 03. Jul 2007, 15:48
Thomas2007 Zurücksetzen eines Kombinationsfeldes
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbank, Eingabe, Tabellenbeziehungen, Dropdownfelder... 1 I Need Help 614 06. Jun 2007, 07:17
stpimi Datenbank, Eingabe, Tabellenbeziehungen, Dropdownfelder...
Keine neuen Beiträge Access Tabellen & Abfragen: Je nach Eingabe werden verschiedene Abfragen aufgerufen 10 Gast 607 23. Apr 2007, 14:41
Gast Je nach Eingabe werden verschiedene Abfragen aufgerufen
Keine neuen Beiträge Access Tabellen & Abfragen: AutoWert zurücksetzen 3 user0815 3730 28. März 2007, 07:52
user0815 AutoWert zurücksetzen
Keine neuen Beiträge Access Tabellen & Abfragen: Eingabe neuer Datensätze in mehrere Tabellen gleichzeitig? 1 matof 603 15. März 2007, 19:26
Thomas2007 Eingabe neuer Datensätze in mehrere Tabellen gleichzeitig?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage Left Join löscht aus falscher Tabelle 3 ggh 1798 01. Feb 2007, 14:49
Willi Wipp Abfrage Left Join löscht aus falscher Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Satznummer zurücksetzen? 1 Gast 715 30. Aug 2006, 09:23
Telekolleg Satznummer zurücksetzen?
Keine neuen Beiträge Access Tabellen & Abfragen: Druckdatum um einen Monat zurücksetzen 2 ES 1005 21. Jul 2006, 13:13
Gast Druckdatum um einen Monat zurücksetzen
 

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