Juli 14, 2020, 21:57:00

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Listenfeld mit Mehrfachauswahl und Kontrollkästchen speichern.

Begonnen von Brallu, Mai 30, 2020, 11:44:44

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

was ist Q&D?

Die Prüfroutine war nur Nebenschauplatz.

Geändert:  Formular gebunden.  Insert-Statements im Form_Afterupdate-Ereignis.

Brallu

Hallo Franz und Ekkehard,  :) :) :) :)
Ich danke euch beiden für die suuuper Hilfe,
ohne euch würde ich nicht weiterkommen.
Ekkehard danke auch für die guten Tipps zu meiner Datenbank.
Werde jetzt mal alles zusammenbasteln und schauen ob mir noch was auffällt!

Also euch ein tolles Wochenende!

Gruß
Danny

Brallu

Leider ich nochmal  :(

Der Nebenschauplatz mit der Prüfroutine von Ekkehard geht leider immer noch nicht  :-[
Und er kann so doch keine Meldung rausgeben das das List leer ist oder??
Oder habe ich da etwas nicht richtig verstanden??
Er soll ja meckern wenn von den angezeigten Namen  im Listenfeld  = ,,lstPersonalAuswahl" keiner ausgewählt wurde.

Wenn sich das einer nochmal anschauen könnte  :-\

Public Function fncPruefen() As Boolean
Dim strFehlerText As String
Dim intFehlerzahl As Integer
Dim i As Long

intFehlerzahl = 1
fncPruefen = True
     
      'prüfen ob Stunden berechnet wurden leer
  If IsNull(Me!txtDatumVon) Then
        strFehlerText = strFehlerText & intFehlerzahl & ". Zeit wurde nicht berechnent" & vbCrLf
        intFehlerzahl = intFehlerzahl + 1
    End If
   
    'prüfen ob der Fortbildungsort ausgewählt wurde
    If IsNull(Me!cboOrt) Then
        strFehlerText = strFehlerText & intFehlerzahl & ". Es wurde kein Fortbildungsort gewählt" & vbCrLf
        intFehlerzahl = intFehlerzahl + 1
    End If
   
    'prüfen ob der Fortbildungsart ausgewählt wurde
    If IsNull(Me!cboArt) Then
        strFehlerText = strFehlerText & intFehlerzahl & ". Es wurde keine Fortbildungsart gewählt" & vbCrLf
        intFehlerzahl = intFehlerzahl + 1
    End If
   
    If intFehlerzahl > 1 Then
        If intFehlerzahl = 2 Then strFehlerText = Mid(strFehlerText, 3) '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
       
        fncPruefen = False
        Exit Function
    End If
     
    'prüfen ob Teilnehmer ausgewählt wurden            Wenn aktiviert findet er nichts
   
'   For i = 0 To Me!lstPersonalAuswahl.ListCount - 1
'        If Me!lstPersonalAuswahl.Selected(i) = True Then fncPruefen = True
'    Next i
' geht auch ohne Schleife
    fncPruefen = (Me!lstPersonalAuswahl.ItemsSelected.Count <> 0)
   
    'prüfen ob die Tätigkeiten  ausgewählt wurde        Wenn aktiviert findet er nichts

'     For i = 0 To Me!lstInhaltAuswahl.ListCount - 1
'        If Me!lstInhaltAuswahl.Selected(i) = True Then fncPruefen = True
'     Next i
'wie oben
    fncPruefen = (Me!lstInhaltAuswahl.ItemsSelected.Count <> 0)

End Function

Brallu

Auch die Version der Prüfroutine von Franz verhindert auch nicht das speichern  :(


DF6GL

Hallo,

ich habe die Prüfroutine und anderen Code nicht "geprüft", ob das geschieht, was erwartet wird.

Du musst die Prüfung in das Form_BeforeUpdate-Ereignis einbauen (weil das Form jetzt gebunden ist) und die Prüfung auf nicht markierte Einträge korrigieren

        If Me!lstPersonalAuswahl.ItemsSelected.Count = 0 Then
        fncPruefen = False
        intFehlerzahl = intFehlerzahl + 1
        End If


        If Me!lstInhaltAuswahl.ItemsSelected.Count = 0 Then
        fncPruefen = False
        intFehlerzahl = intFehlerzahl + 1
        End If




Brallu

Moin Franz  :) ,
das hat mir noch gefehlt! jetzt klappt es wie gewünscht!!
Danke, Danke und nochmals Danke euch beiden!

Gruß
Danny