Neuigkeiten:

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

Mobiles Hauptmenü

Feld muss ausgefüllt werden erzwingen

Begonnen von datekk, Januar 15, 2016, 20:38:09

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

in der Tat..  Dann nimm ein Listenfeld
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Julle,
Was ich meinte ist:
Private Sub bDrucken_Click()

  Dim strMsg As String
  Dim blnFehler As Boolean

  strMsg = "Folgende Fehler müssen ausgefüllt werden:"

  If Len(Nz(Me!txtKunde, "")) = 0 Then
    blnFehler = True
    strMsg = strMsg & vbcrlf & "Kunde"
  ElseIf Len(Nz(Me!txtAdresse, "")) = 0 Then
    blnFehler = True
    strMsg = strMsg & vbcrlf & "Adresse"
  ElseIf Len(Nz(Me!txtProdukt, "")) = 0 Then
    blnFehler = True
    strMsg = strMsg & vbcrlf & "Produkt"
  End If

  If blnFehler Then
    MsgBox strMsg, vbInformation, "Bitte füllen Sie alle Felder aus!"
  Else
    DoCmd.RunCommand acCmdPrint
  End If

End Sub

Wie gesagt eine MsgBox für alles.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

julle

Zitat von: DF6GL am Januar 20, 2016, 16:04:07
Hallo,

in der Tat..  Dann nimm ein Listenfeld

Würde das gern aus Formatierungsgründen ohne Listenfeld umsetzen.
Jedes Kontrollkästchen gibt ja einen Wert aus, ich nehme an 0 für "nicht ausgewählt" und 1 für "ausgewählt".
Wenn man nun alle Werte addiert und das einen Wert ungleich 0 (bzw x>0) ergibt, wäre die Bedingung, dass mindestens eins ausgewählt ist, erfüllt.
Frage ist nun die Umsetzung. Ich müsste ja eine Prüfvariable als String einführen (als Summe aller Werte der Kontrollkästchen) und überprüfen.

Wie erstellt man so eine Summe?


Zitat von: Beaker s.a. am Januar 20, 2016, 21:29:20
Wie gesagt eine MsgBox für alles.
hth
gruss ekkehard
Danke für die Option, aber im Moment kommt ja auch nur ein Hinweis. Und in dem Hinweis von deinem Code steht in der Meldung auch nur das erste nicht ausgefüllte Feld und nicht alle fehlenden. Obwohls natürlich ein kompakterer Code ist  :)

DF6GL

Hallo,

ausgehend von


ZitatAuf dem Formular sind eine oder mehrere Gruppen an Kontrollkästchen.
Gibt es eine Bedingung (ähnlich der oben) die den Nutzer dazu zwingt, ein odere mehrere Kästchen dieser Gruppe zu markieren?
Zumal diese "Gruppen" erstmal definiert werden müssten.

kannst Du die Überprüfung genau so machen wie bei den Textfeldern auch, also jedes KK einzeln für sich testen und entspr. reagieren.

Natürlich könnten die Einzelprüfungen auch innerhalb einer Schleife erfolgen, die entweder über alle KK läuft oder innerhalb mehrerer Schleifen, die durch jede Gruppe von KK laufen.

Die "Gruppen" könnten so gebildet werden, als dass für die Benamsung der KK eine fortlaufende Ziffer eingesetzt wird, die zur "Berechnung" des akt. KK herangezogen wird.








Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

julle

Zitat von: DF6GL am Januar 21, 2016, 12:16:03
kannst Du die Überprüfung genau so machen wie bei den Textfeldern auch, also jedes KK einzeln für sich testen und entspr. reagieren.

Natürlich könnten die Einzelprüfungen auch innerhalb einer Schleife erfolgen, die entweder über alle KK läuft oder innerhalb mehrerer Schleifen, die durch jede Gruppe von KK laufen.

Die "Gruppen" könnten so gebildet werden, als dass für die Benamsung der KK eine fortlaufende Ziffer eingesetzt wird, die zur "Berechnung" des akt. KK herangezogen wird.

hab das gelöst mit:

Dim intSumme As Integer
   
    intSumme = Me!ichk1 + Me!chk2 + Me!chk3 + Me!chk4 + Me!chk5

   
ElseIf intSumme = 0 Then
        MsgBox "Bitte mindestens eine Kontrollkästchen anhaken!"
        Exit Sub


DF6GL

Hallo,

das ist ok, wenn eine solche Plausi-Prüfung dem Anspruch genügt...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

julle

Zitat von: DF6GL am Januar 21, 2016, 16:38:06
Hallo,

das ist ok, wenn eine solche Plausi-Prüfung dem Anspruch genügt...
Es tut seinen Dienst. Aber rein interessehalber, was wäre an anderen Möglichkeiten qualitativ besser?

MzKlMu

Hallo,
@Julle
Hast Du Dir das Beispiel hier in diesem Thema (#19) nicht angesehen ?
Gruß Klaus

DF6GL

Hallo,

qualitativ?

Das heißt, den Ansprüchen (der Logik) genügen.

Und das heißt wiederum, Du(!) musst die Ansprüche (den Algorithmus) der Plausibilität definieren.

Deine Prüfung auf 0-Summe erfüllt nur den Anspruch, mindestens einen Haken setzen zu müssen. Bestimme KK, bzw. "Gruppen" sind so nicht bestimmbar. ...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

julle

Zitat von: DF6GL am Januar 21, 2016, 17:06:44
Hallo,

qualitativ?

Das heißt, den Ansprüchen (der Logik) genügen.

Und das heißt wiederum, Du(!) musst die Ansprüche (den Algorithmus) der Plausibilität definieren.

Deine Prüfung auf 0-Summe erfüllt nur den Anspruch, mindestens einen Haken setzen zu müssen. Bestimme KK, bzw. "Gruppen" sind so nicht bestimmbar. ...
Nunja, bestimmte Gruppen hab ich nun durch unterschiedliche Summen-Variablen gekennzeichnet. Von daher alles paletti!

Zitat von: MzKlMu am Januar 21, 2016, 17:05:22
Hallo,
@Julle
Hast Du Dir das Beispiel hier in diesem Thema (#19) nicht angesehen ?
Doch hab ich, vielen Dank dafür, war hilfreich fürs Verständnis!

julle

Zitat von: MzKlMu am Januar 21, 2016, 17:05:22
Hallo,
@Julle
Hast Du Dir das Beispiel hier in diesem Thema (#19) nicht angesehen ?

Ich habe vom Beispiel die Funktion nachgebaut, dass das Schließen der Formulare nur über einen Button funktioniert.

Private Sub Beenden_Click()
    bolSchliessenErlaubt = True
    DoCmd.Close acForm, "frmStart"
    DoCmd.Quit
End Sub


Private Sub Form_Unload(Cancel As Integer)
    If bolSchliessenErlaubt = False Then
        MsgBox "Formular bitte per Button verlassen" & vbCrLf & vbCrLf & "Die Anwendung kann nur über den Button <Beenden> geschlossen werden"
        Cancel = True
    End If
End Sub

passendes Modul dazu
Option Compare Database

Option Explicit

Public bolSchliessenErlaubt As Boolean



Ich hab ein Startformular welches weitere Formulare anwählt.

Problem ist nun, dass wenn ich das von "frmStart" ausgewählte Formular schließe (geht nur über den Button) komme ich ja wieder auf "frmStart" zurück, in diesem Moment kann ich das Formular "frmStart" aber wieder normal schließen, also der Code greift nicht mehr.

Wisst ihr wo da ein Fehler liegen könnte?

MaggieMay

Hallo,

wenn du eine einzige globale Variable zur Steuerung aller Formulare einsetzen willst, so musst du sie bspw. beim Laden eines Formulars auch immer wieder auf FALSE setzen.
Freundliche Grüße
MaggieMay

julle

Zitat von: MaggieMay am Februar 05, 2016, 11:23:04
Hallo,

wenn du eine einzige globale Variable zur Steuerung aller Formulare einsetzen willst, so musst du sie bspw. beim Laden eines Formulars auch immer wieder auf FALSE setzen.

verstehe nicht ganz wie so etwas aussehen würde! außerdem bleibt das Formular "frmStart" ja die ganze Zeit geöffnet!

MaggieMay

Mit dem frmStart hat es ja nichts zu tun, wenn du das Speichern in den Bearbeitungsformularen kontrollieren willst.

Was hält dich davon ab, es einfach mal auszuprobieren?
Aktiviere das Ereignis "Beim Laden" und schreibe die folgende Codezeile in die Ereignisprozedur:
bolSchliessenErlaubt = False
Freundliche Grüße
MaggieMay

DF6GL

Hallo,


Wenn jedes einzelne Form für sich selber "geprüft" werden soll, dann gehört die "bolSchliessenErlaubt"-Variable in die einzelnen Formularklassenmodule und nicht in ein Standardmodul...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access