Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Mit MsgBox Meldung ausgeben
Gehe zu Seite 1, 2  Weiter
zurück: Eventhandling Formular mit Dialog weiter: Tabellenfeld aus Abfrage füllen und in UForm. darstellen 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
Akima
Einsteiger


Verfasst am:
24. Nov 2010, 23:24
Rufname:

Mit MsgBox Meldung ausgeben - Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,
ich möchte eine eigene Meldung aus geben, wenn in einem Textfeld eine Eingabe erforderlich ist. Habe es bisher so versucht:
Code:
    If  IsNull (Me!Feldname) Then
        MsgBox "Bitte das Feld ausfüllen!"
        Me!Feldname.SetFocus
    End If
Eingesetzt in den Feldeigenschaften bei Fokusverlust: wird die Meldung angezeigt aber der Focus nicht gesetzt.
Eingesetzt in den Feldeigenschaften vor Aktualisierung: Kommt die Fehlermeldung sie müssen den Datensatz erst speichern bevor SetFocus ausgeführt werden kann.

Verkette ich mehrere Feld und setze es in die Formulareigenschaften vor Aktualisierung gibt es keine Probleme.
Code:
    If  IsNull (Me!Feldname1) Or (Me!Feldname2) Then
        MsgBox "Bitte alle Felder ausfüllen!"
        Me!Feldname1.SetFocus
    End If
Wie bekomme ich bei meinem Textfeld die Meldung angezeigt und den Focus gesetzt.

Gruß Akima
KlausMz
Moderator Access


Verfasst am:
24. Nov 2010, 23:39
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,
nimm "Vor Aktualisierung" und breche mit Cancel=True ab. Dann muss der Focus nicht gesetzt werden, weil er im Feld bleibt.
Code:
Private Sub Feldname_BeforeUpdate(Cancel As Integer)
   If  IsNull(Me!Feldname) Then
        MsgBox "Bitte das Feld ausfüllen!"
        Cancel = True
   End If
End Sub
Im Anhang noch eine kleine Beispieldb mit weiteren Prüfungen und Sicherheitseinstellungen.

Versuche mal den Zwang die Buttons benutzen zu müssen zu umgehen Laughing

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



Pflichtfelder.zip
 Beschreibung:

Download
 Dateiname:  Pflichtfelder.zip
 Dateigröße:  28.1 KB
 Heruntergeladen:  67 mal

Akima
Einsteiger


Verfasst am:
25. Nov 2010, 13:45
Rufname:

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,
bin mal wieder nicht fähig genug. Bekomme meine Meldung erst dann, wenn ich in einem vorhandenen Datensatz erst den Eintrag im Textfeld (z.B. Wert1) entferne und dann weiter gehen will. Bei der erst Erfassung passiert nichts. Lade mein Beispiel mit hoch.

Die DB Pflichtfelder habe ich runter geladen und mit rumgespielt, alles toll. Aber wie komme ich die Entwurfansicht gezeigt ohne die Symbolleisten.

Gruß Akima



MsgBox_Meldung.zip
 Beschreibung:

Download
 Dateiname:  MsgBox_Meldung.zip
 Dateigröße:  26.53 KB
 Heruntergeladen:  36 mal

MissPh!
Office-VBA-Programmiererin


Verfasst am:
25. Nov 2010, 21:26
Rufname:
Wohnort: NRW

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo.
Zitat:
Aber wie komme ich die Entwurfansicht gezeigt ohne die Symbolleisten.
Lies was in roter Schrift auf dem Startformular steht.
Zitat:
Wie bekomme ich bei meinem Textfeld die Meldung angezeigt und den Focus gesetzt.
Setze den Focus auf ein anderes Feld und dann wieder zurück - so funktioniert's, wenn es denn unbedingt sein muss.

Ich persönlich halte mehr davon, die Prüfungen im Ereignis Form_BeforeUpdate vorzunehmen.
Da kann man auch Abhängigkeiten viel leichter behandeln.

BTW: Fremde Access-Dateien öffne ich grundsätzlich mit gedrückter Shift-Taste - reine Vorsichtsmaßnahme! Cool

_________________
Gruß MissPh!
Akima
Einsteiger


Verfasst am:
25. Nov 2010, 23:09
Rufname:


AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo zusammen,
inzwischen hatte ich auch schon mal richtig hingeschaut und die DB Pflichtfelder in der Entwurfansicht geöffnet (Entschuldigung). Danke für die zusätzlichen Anregungen.

Meine VBA Kenntnisse sind leider noch sehr begrenzt, und ohne das Forum hätte ich schon lange aufgegeben aber so geht es schritt für schritt weiter. Bin also froh über jeden Weg den ich finde (und verstehe) der mich, mit meiner DB weiterbringt, ob er gut oder schlecht ist kann ich oft noch gar nicht beurteilen. Mit den Focus hin und her zu springen werde ich ausprobieren. Wenn der Weg über im Ereignis Form_BeforeUpdate sicherer ist möchte ich ihn natürlich auch gerne wissen.
Im zweiten Code hatte ich die Textfelder mit Oder verkette und unter Ereignis Form_BeforeUpdate gesetzt, ergab allerdings eine Verkettung über acht Textfelder und sah irgendwie nicht professionell aus, bei acht Feldern mit den Focus hin und her zu springen ist sicherlich auch nicht sehr professionell. Also gibt es sicherlich noch einen dritten Weg oder denk ich hier zu kompliziert.

Gruß Akima
MissPh!
Office-VBA-Programmiererin


Verfasst am:
26. Nov 2010, 12:28
Rufname:
Wohnort: NRW

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,
Zitat:
Im zweiten Code hatte ich die Textfelder mit Oder verkette
welchen zweiten Code meinst du da? So wie ich das sehe, hast du zweimal dieselbe Datei hochgeladen. Confused

Bezogen auf dein Beispiel stelle ich mir das folgendermaßen vor:
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If IsNull(Me!Wert1) Then
        MsgBox "Bitte das Feld Wert1 ausfüllen!"
        Me!Wert1.SetFocus
        Cancel = True
      ElseIf IsNull(Me!Wert2) Then
        MsgBox "Bitte das Feld Wert2 ausfüllen!"
        Me!Wert2.SetFocus
        Cancel = True
      ElseIf IsNull(Me!Wert3) Then
        MsgBox "Bitte das Feld Wert3 ausfüllen!"
        Me!Wert3.SetFocus
        Cancel = True
      ElseIf MsgBox("Eingabe OK - Speichern?", vbOKCancel + vbQuestion) = vbCancel Then
        Me.Undo
        Cancel = True
    End If
End Sub

BTW: Du solltest stets Option Explicit im Klassenmodul einsetzen (siehe VBA-Optionen), dann kannst du nicht-deklarierte Variablen wie im folgenden Fall gar nicht erst einsetzen.
Zitat:
Private Sub Rahmen6_AfterUpdate()
If DCount("*", "Arbeit", "[Kunde]='" & Me!Kunde & "' AND [Profil]=" & Me!Profil & " AND [Profil]<3") Then
MsgBox " Kunden Profil gibt es schon!"
Cancel = True
End If
End Sub
Die Bedingung
"... AND [Profil]=" & Me!Profil & " [color=red]AND [Profil]<3"
ist nicht gerade glücklich. Besser wäre es wohl, das Profil vorher zu prüfen.

Nachtrag:
Me!Profil gibt es übrigens nicht, das ist die Optionsgruppe selbst.
So gesehen ist " AND [Profil]<3" völlig überflüssig, da die Optionsgruppe nur die Werte 1-3 annehmen kann.

_________________
Gruß MissPh!
Akima
Einsteiger


Verfasst am:
26. Nov 2010, 18:19
Rufname:

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo MissPh!

Ich habe deinen Code ausprobiert ist, genau was ich mir vorgestellt habe, werde ich jetzt in meine DB einarbeiten.

Mit den Optionsrahmen-Profil hat es folgende Bewandtnis. Wert1 und Wert2 dürfen pro Kunde nur einmal vergeben werden, Wert3 kann öfters vergeben werden. Mein Code überprüft die Tabelle darauf hin, und meldet wenn dem Kunden schon ein Wert1 oder Wert2 zugeordnet ist, bei Wert3 erfolgt keine Meldung.

Cancel = True habe ich entfernt. Kann oder sollte ich sonst noch was verändern.

Vielen Dank für die Unterstützung.

Gruß Akima
MissPh!
Office-VBA-Programmiererin


Verfasst am:
26. Nov 2010, 18:42
Rufname:
Wohnort: NRW

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo Akima,

Wert1 bis Wert3 sind drei Textfelder in deinem Formular. Was haben die mit dem Profil zu tun?
Versuche das doch bitte noch einmal genauer zu erklären.

_________________
Gruß MissPh!
Akima
Einsteiger


Verfasst am:
26. Nov 2010, 21:42
Rufname:

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo MissPh!
Bin gerade auf der Arbeit und dadurch immer wieder abgelegt. Bei den Werten 1-3 meinte ich die Werte des Optionsrahmen. Bei meinen Beispiel: Test1 und Test2 dürfen jeweils nur einmal pro Kunde vergeben werden, Test3 kann öfters vergeben werden.

Gruß Akima
MissPh!
Office-VBA-Programmiererin


Verfasst am:
26. Nov 2010, 22:33
Rufname:
Wohnort: NRW

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Ok, wenn ich das jetzt richtig verstanden habe, dann sollte es folgendermaßen gehen:
Code:
Private Sub Rahmen6_AfterUpdate()
    If Me!Rahmen6 < 3 And DCount("*", "Arbeit" _
                               , "[Kunde]='" & Me!Kunde & "'" _
                          & " AND [Profil]=" & Me!Rahmen6) > 0 Then
        MsgBox " Kunden Profil gibt es schon!"
    End If
End Sub

_________________
Gruß MissPh!
Akima
Einsteiger


Verfasst am:
26. Nov 2010, 23:46
Rufname:

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo MissPh!

Habe den Code: If IsNull (Me!Wert1) Then auf meine DB übertragen, bekomme bei fehlenden Eintrag die MsgBox Meldung (alles OK) und dann noch eine zweite Meldung (Kein aktueller Datensatz) wie werde ich denn diese Meldung los.

Den Code für den Optionsrahmen habe ich gerade übertragen, läuft einwandfrei.

Gruß Akima

Ps.: Ich war natürlich abgelenkt und nicht abgelegt worden.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
27. Nov 2010, 20:38
Rufname:
Wohnort: NRW

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,

da spielen wohl verschiedene Ereignisprozeduren eine Rolle. Die ganzen Zusammenhänge zu erfragen erscheint mir ziemlich umständlich, kannst du nicht eine Beispiel-DB hochladen?

_________________
Gruß MissPh!
Akima
Einsteiger


Verfasst am:
28. Nov 2010, 21:44
Rufname:

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo MissPh!

die Meldung (Kein aktueller Datensatz) wird von meiner Befehlsschaltfläche Daten speichern die ich mit den Assistenten aufgebaut habe verursacht. Was muss ich daran ändern das die Meldung ausbleibt. Lade ein Beispiel mit hoch.
Code:
Private Sub Befehl_Kunden1_Datensatz_speichern_Click()
On Error GoTo Err_Befehl_Kunden1_Datensatz_speichern_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Exit_Befehl_Kunden1_Datensatz_speichern_:
    Exit Sub
Err_Befehl_Kunden1_Datensatz_speichern_Click:
    MsgBox Err.Description
    Resume Exit_Befehl_Kunden1_Datensatz_speichern_
End Sub

Gruß Akima



MsgBox Meldung Kein aktueller Datensatz.zip
 Beschreibung:

Download
 Dateiname:  MsgBox Meldung Kein aktueller Datensatz.zip
 Dateigröße:  128.91 KB
 Heruntergeladen:  31 mal

KlausMz
Moderator Access


Verfasst am:
28. Nov 2010, 22:08
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo,
mal erst eine Frage, was macht der Speichern Button für einen Sinn?. Einen solchen Button brauchst Du eigentlich nicht, Access speichert bei gebundenen Formularen automatisch.
Was wäre denn nach dem Ausfüllen des Formulars die nächste Aktion?

Neuer Datensatz?
Formular schließen?

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


Verfasst am:
29. Nov 2010, 01:47
Rufname:


AW: Mit MsgBox Meldung ausgeben - AW: Mit MsgBox Meldung ausgeben

Nach oben
       Version: Office 2003

Hallo KlausMz,

ich arbeitet mit einen Registersteuerelement mit 5 Formulare (Seiten) für einen Kunden, gehe ich zur nächsten Seite möchte ich die vorige speichern.

Grüß Akima
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
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: Letzte 20 Datensätze ausgeben lassen 2 Wanda 482 17. Dez 2007, 17:27
Wanda Letzte 20 Datensätze ausgeben lassen
Keine neuen Beiträge Access Tabellen & Abfragen: Nur aktuellste Eintraege einer Tabelle ausgeben 3 Nosediver 382 19. Okt 2007, 06:14
Willi Wipp Nur aktuellste Eintraege einer Tabelle ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze mit identischem Namen korrekt ausgeben 2 carpe.noctem 403 16. Okt 2007, 11:48
Gast Datensätze mit identischem Namen korrekt ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: Gleiche Datensätze Zählen und ausgeben 2 mellem 1198 14. Okt 2007, 22:30
Willi Wipp Gleiche Datensätze Zählen und ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: bei leerem Feld andere Meldung 7 Smmmile 488 01. Jul 2007, 20:21
Smmmile bei leerem Feld andere Meldung
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz nur ausgeben, wenn er in andere tabelle ist 1 Freeman_6 380 29. Jun 2007, 15:09
rita2008 Datensatz nur ausgeben, wenn er in andere tabelle ist
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrageergebnis in Textfeld (Formular) ausgeben 1 martin7720 1005 22. Mai 2007, 20:12
jens05 Abfrageergebnis in Textfeld (Formular) ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: Access: Top 10 eines jeden Monats ausgeben 1 Chris2510 12352 26. März 2007, 11:40
Master_Chief Access: Top 10 eines jeden Monats ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: Nach Kriterien suchen und anzahl ausgeben 3 romu2000 602 11. Feb 2007, 23:43
Willi Wipp Nach Kriterien suchen und anzahl ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: verschiedene Daten in einem Feld ausgeben 4 JensG 698 02. Aug 2006, 09:54
JensG verschiedene Daten in einem Feld ausgeben
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Meldung ausgeben wenn Abfrage erfolglos 1 Manschgal 489 26. Jul 2006, 10:32
jens05 Meldung ausgeben wenn Abfrage erfolglos
Keine neuen Beiträge Access Tabellen & Abfragen: (komplexe) Abfrage kann nur Einen Datensatz ausgeben 0 Argoth 702 12. Jul 2006, 14:56
Argoth (komplexe) Abfrage kann nur Einen Datensatz ausgeben
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Macromedia Dreamweaver