Ich habe diesen Post auch in einem älteren Beitrag eingetragen und später realisiert, dass es dann evtl. untergehen könnte. Daher hier noch einmal, ich hoffe dass gilt nicht als Crossposting (wenn ja dann sorry).
Zuerst einmal vielen Dank an alle Access Geübte, die in diesen Foren posten. Ich habe schon sehr viel gelernt und versuche immer zuerst bereits vorhandene Postings abzugrasen bevor ich eine Frage stelle. Aber diesmal komme ich nicht mehr weiter. Ich muss vorausschicken, dass ich in VBA leider wenig geübt, bitte um Nachsicht wenn ich bestimmte Dingen falsch benenne oder evtl. Lösungsvorschläge nicht gleich kapiere.
Ich habe ein ähnliches Problem wie in einem alten Beitrag über "Ja/Nein Felder Alle Markieren" beschrieben und hoffte, mit dem Vorschlag von DF6GL eine Lösung gefunden zu habe. Aber es hakt noch.
Ich habe eine HF in dem man mittels Eingabe von Parametern einen SQL string erzeugen kann.
Private Sub MakeSQL()
Krit = ""
If Not IsNull(Me!Ime) Then Krit = Krit & " AND Ime LIKE '" & Me!Ime & "*'"
If Not IsNull(Me!DatumOd) Then Krit = Krit & " AND Datum >= #" & Format(Me!DatumOd, "yyyy-mm-dd") & "#"
If Not IsNull(Me!DatumDo) Then Krit = Krit & " AND Datum <= #" & Format(Me!DatumDo, "yyyy-mm-dd") & "#"
If Not IsNull(Me!Usluge) Then Krit = Krit & " AND IDUsluge LIKE '" & Me!Usluge & "'"
If Not IsNull(Me!Prijavljen) Then Krit = Krit & " AND JePrijavljen = " & IIf(Me!Prijavljen, "True", "False")
SQL = "SELECT * FROM qryHranarinaUporaba "
If Krit <> "" Then
Krit = Mid(Krit, 5)
SQL = SQL & "WHERE " & Krit
End If
End Sub
Dieser SQL string dient als Recordsource für das Suchen der entsprechenden Datensätze in einem Unterformular:
Private Sub Suchen_Click()
MakeSQL
Me!ufrmSporUslugeSuchen.Form.RecordSource = SQL
End Sub
Das Aufbereiten der Daten im UOF funktioniert so weit ohne Probleme.
Nach Auswahl der entsprechenden Datensätze müsste ich zwei Felder für alle vorhandenen Datensätze im UF aktualisieren (ein Ja/Nein Feld und ein Datumsfeld). Ich habe versucht das mit dem Lösungsvorschlag von DF6GL zu realisieren:
Private Sub subSetObracunano(jn As Boolean)
Dim rs As Dao.Recordset
Set rs = Me!ufrmSporUslugeSuchen.Form.RecordsetClone
If rs.RecordCount > 0 Then
With rs
.MoveFirst
Do Until .EOF
.Edit
!Obracunano = jn
.Update
Loop
.MoveNext
End With
End If
Set rs = Nothing
RunCommand acCmdSaveRecord
End Sub
den ich so aufrufe:
Private Sub Befehl123_Click()
MakeSQL
Me!ufrmSporUslugeSuchen.Form.RecordSource = SQL
subSetObracunano True
End Sub
Versuche ich nun das Ja/Nein Feld mit obigen Code zu aktualisieren, wird der erste DS markiert aber dann scheint sich die Prozedur aufzuhängen. Bei Unterbrechen der Prozedur wird die Zeile Loop gelb markiert. Würde mich freuen, wenn mir jemand Tipps geben könnte was ich hier alles falsch mache. Vielleicht gibt es auch eine viel leichtere Lösung, die ich im Forum nur noch nicht gesehen habe. Vielen Dank.
Eblajs
Hallo
Wie reagiert das Programm, wenn Du die Reihenfolge von
Loop
.MoveNext
tauschst?
Harald
Im anderen Thread schon beantwortet.... ;)
Hallo,
habe Franz schon auf dem anderen Thread gedankt, funktioniert jetzt alles einwandfrei. Harald, Dein Hinweis hat den Nagel auf den Kopf getroffen, danke auch. Genau das war das Problem.
Ganz schön frustrierend, wie man als unbedarfter Access User bei den kleinsten Problemen hängen bleibt. Gott sei Dank gibst es dieses Forum mit all den vielen Power-Usern und MS Access Programmierern.
Ernst