Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: EBlajs am September 25, 2010, 18:18:17

Titel: Felder für alle DS eines UFs automatisch befüllen
Beitrag von: EBlajs am September 25, 2010, 18:18:17
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
Titel: Re: Felder für alle DS eines UFs automatisch befüllen
Beitrag von: bahasu am September 25, 2010, 18:23:15
Hallo

Wie reagiert das Programm, wenn Du die Reihenfolge von
   Loop
  .MoveNext

tauschst?

Harald
Titel: Re: Felder für alle DS eines UFs automatisch befüllen
Beitrag von: DF6GL am September 25, 2010, 18:24:24
Im anderen Thread schon beantwortet....  ;)
Titel: Re: Felder für alle DS eines UFs automatisch befüllen
Beitrag von: EBlajs am September 25, 2010, 19:34:23
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