collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14548
  • stats Beiträge insgesamt: 73006
  • stats Themen insgesamt: 9856
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 443

Autor Thema: If, Und, Oder Dann Problem  (Gelesen 394 mal)

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 196
If, Und, Oder Dann Problem
« am: November 15, 2019, 18:33:39 »
Hallo Gemeinde,  :)
ich brauche für dieses, warscheinlich einfache Problem mal eure Hilfe.

Also ich möchte in einem FRM über einen Speicherbutton einen Datensatz speichern.
Über fncPruefen soll geprüft werden ob einige Felder gefüllt werden.
Hier im FRM habe ich jetzt eine Auswahlmöglichkeit bei der Zeiteingabe mit eingebaut.
Also entweder Me!optEintaegig und Me!txtBerStdEin oder Me!optMehrtaegig und Me!txtMehrtaegigBerechnet haben Werte.
Die andere Beiden Felder werden bei der Auswahl Ein- oder Mehrtägig deaktiviert.

Wenn ich die Zeile If Not IsNull(Me!optEintaegig) And Not IsNull(Me!txtBerStdEin) einzeln ohne oder (wie unten) verwende funktioniert es.
Hoffe das könnt ihr jetzt verstehen und könnt mir helfen.

Gruß Danny

If (Not IsNull(Me!optEintaegig) And Not IsNull(Me!txtBerStdEin)) Or (Not IsNull(Me!optMehrtaegig) And Not IsNull(Me!txtMehrtaegigBerechnet))

Then strFehlerText = strFehlerText & intFehlerzahl & ". Zeit fehlt oder ist ungültig" & vbCrLf
intFehlerzahl = intFehlerzahl + 1
fncPruefen = False
    End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23963
Re: If, Und, Oder Dann Problem
« Antwort #1 am: November 15, 2019, 19:58:45 »
Hallo,

was ist nun die Frage?


Das If-Statement sollte so aussehen:

If (Not IsNull(Me!optEintaegig) And Not IsNull(Me!txtBerStdEin)) Or (Not IsNull(Me!optMehrtaegig) And Not IsNull(Me!txtMehrtaegigBerechnet)) Then

    strFehlerText = strFehlerText & intFehlerzahl & ". Zeit fehlt oder ist ungültig" & vbCrLf
.
.
End If


Evtl. müssen die beiden And-Ausdrücke separat "abgefragt" werden.

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 196
Re: If, Und, Oder Dann Problem
« Antwort #2 am: November 15, 2019, 20:18:51 »
Hallo und danke für die Antwort. Aber es ist doch immer nur eine Doppelkombi möglich!
Wenn ich die einzeln abfrage dann gibt er mir ja den Fehler das die andere Kombi nicht erfüllt ist.

Oder liege ich da falsch?

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23963
Re: If, Und, Oder Dann Problem
« Antwort #3 am: November 15, 2019, 21:46:54 »
Hallo,

  habe von "beiden And-Ausdrücken" gesprochen, nicht von einzelnen If-Bedingungen...

Offline PhilS

  • Global Moderator
  • Access-Meister
  • *****
  • Beiträge: 654
    • Tipps zu Access, VBA, SQL und Co.
Re: If, Und, Oder Dann Problem
« Antwort #4 am: November 16, 2019, 13:01:23 »
Also entweder Me!optEintaegig und Me!txtBerStdEin oder Me!optMehrtaegig und Me!txtMehrtaegigBerechnet haben Werte.
opt... klingt entweder nach Optiongroup oder nach OptionButton. - Bei diesen Steuerelementen ist eine Prüfung auf NULL nicht so zielführend. - Ich würde einen Standardwert für die Optiongroup vergeben und dann explizit auf die jeweiligen Werte der einzelnen Optionen prüfen.
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 196
Re: If, Und, Oder Dann Problem
« Antwort #5 am: November 16, 2019, 15:00:36 »
Hallo und danke für eure Antworten,
leider bekomme ich es nicht hin :-[
Findet einer meinen Fehler?
-1 (optEintaegig) und 0 (optMehrtaegig) sind die Standartwerte. (AuswahlEinOderMehr) ist die Optionsgruppe.

Hier der letzte Code:

'hier wird für alle Geprüft ob Daten in den Feldern vorhanden
Public Function fncPruefen()
Dim strFehlerText As String, intFehlerzahl As Integer: intFehlerzahl = 1
    fncPruefen = True

      'prüfen ob Stunden berechnet wurden leer
    If (Me!AuswahlEinOderMehr) = "-1" And Not IsNull(Me!txtBerStdEin) Or _
       (Me!AuswahlEinOderMehr) = "0" And Not IsNull(Me!txtMehrtaegigBerechnet) Then
        strFehlerText = strFehlerText & intFehlerzahl & ". Zeit wurde nicht berechnent" & vbCrLf
        intFehlerzahl = intFehlerzahl + 1
        fncPruefen = False
    End If
   
   
    If fncPruefen = False Then
        If intFehlerzahl = 2 Then strFehlerText = Mid(strFehlerText, 1) '10 = Anzahl der Prüfpunkte
        Select Case MsgBox("Es gibt noch " & intFehlerzahl - 1 & " Fehler" & vbCrLf & vbCrLf & strFehlerText _
        & vbCrLf & vbCrLf & "mit OK zurück, Abbrechen verwirft den begonnenen Datensatz", vbOKCancel, "Achtung!")
            Case vbCancel
                Me.Undo
        End Select
    End If
End Function


Private Sub cmdSpeichern_Click()
If fncPruefen = True Then
        DoCmd.RunCommand acCmdSaveRecord
        Me.Requery
    End If
End Sub
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23963
Re: If, Und, Oder Dann Problem
« Antwort #6 am: November 16, 2019, 15:09:38 »
Hallo,


Zahlen werden mit Zahlen verglichen, nicht mit Text:
Zitat
If (Me!AuswahlEinOderMehr) = -1 And Not IsNull(Me!txtBerStdEin) Or _
       (Me!AuswahlEinOderMehr) = 0 And Not IsNull(Me!txtMehrtaegigBerechnet) Then

Offline PhilS

  • Global Moderator
  • Access-Meister
  • *****
  • Beiträge: 654
    • Tipps zu Access, VBA, SQL und Co.
Re: If, Und, Oder Dann Problem
« Antwort #7 am: November 16, 2019, 17:13:06 »
leider bekomme ich es nicht hin :-[
Findet einer meinen Fehler?
Wie äußert sich dein Fehler denn?

Ich habe deine Erläuterungen nicht bis ins Detail gelesen, aber mir erscheint das NOT in den Bedingungen falsch zu sein.
    If (Me!AuswahlEinOderMehr.Value = Me.optEintaegig.OptionValue And IsNull(Me!txtBerStdEin)) _
       Or _
       (Me!AuswahlEinOderMehr.Value = Me.optMehrtaegig.OptionValue And IsNull(Me!txtMehrtaegigBerechnet)) _
    Then
        strFehlerText = strFehlerText & intFehlerzahl & ". Zeit wurde nicht berechnent" & vbCrLf
        intFehlerzahl = intFehlerzahl + 1
        fncPruefen = False
    End If
Auf die OptionValue-Eigenschaften verweise ich nur, weil es den Code lesbarer macht und du die Werte (0 / -1) nur noch an einer Stelle pflegen musst. Einen funktionalen Unterschied macht das nicht.

Deine Logik mit strFehlerText und intFehlerzahl ist für mich unklar.
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 196
Re: If, Und, Oder Dann Problem
« Antwort #8 am: November 16, 2019, 18:56:28 »
Danke Phil,
das war die Lösung!!!! :)

Zitat
Deine Logik mit strFehlerText und intFehlerzahl ist für mich unklar.
Da jetzt noch mehr Punkte geprüft werden wird dem Benutzer dann beim Speichern-Klick eine Nachricht ausgegeben welche Punkte er noch ausfüllen muß.

Also nochmals Danke für eure Mühe und die schnelle Hilfe.
 

 

Problem mit m:n Beziehung

Begonnen von Apo1337Board Tabelle/Abfrage

Antworten: 5
Aufrufe: 4848
Letzter Beitrag Mai 12, 2011, 15:41:41
von jensebluemchen
Problem mit Requery

Begonnen von ThomMBoard Access Programmierung

Antworten: 8
Aufrufe: 6883
Letzter Beitrag Juli 09, 2010, 10:38:18
von ThomM
Problem mit Verkettung im Textfeld eines Diagrammes

Begonnen von -Daniel-Board Microsoft Excel

Antworten: 2
Aufrufe: 4331
Letzter Beitrag Mai 14, 2010, 11:51:36
von -Daniel-
Problem bei Aktualisierungsabfrage

Begonnen von blamasterBoard Tabelle/Abfrage

Antworten: 10
Aufrufe: 8173
Letzter Beitrag Mai 20, 2010, 19:09:18
von MzKlMu
Msg Box bei Buttonbetätigung nein - Access schließen oder offene Accessdatei

Begonnen von lenkyBoard Access Programmierung

Antworten: 2
Aufrufe: 5632
Letzter Beitrag Mai 21, 2010, 17:24:19
von database

Advertisment / Werbung - Amazon Affiliate Links