Neuigkeiten:

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

Mobiles Hauptmenü

Formular, event.Unterformular vom Filter befreien, nur von Hand möglich

Begonnen von HabNeFrage, September 15, 2016, 16:40:28

⏪ vorheriges - nächstes ⏩

HabNeFrage

Hallo,
habe ein Formular mit Unterformular.
Über folgenden Code wird ein Filter gesetzt.
Code:
Private Sub sucheSysFMIDinUfml1_Click()
  ' Variante 1: RecordSource ändern
  '   Me!UfmlBearbeitungEloxx.Form.RecordSource = GetRecordSource

  '  Variante 2: Filter anwenden
    With Me!UfmlBearbeitungEloxx.Form
      .Filter = GetCriteria
      .FilterOn = (Len(.Filter) > 0)
    End With
    Me!Equipment.SetFocus
End Sub

Private Function GetRecordSource() As String
  Dim SqlText As String: Dim Krit As String
  SqlText = "SELECT * FROM A_Bearbeitung_eLoxx"
  Krit = GetCriteria
  If Len(Krit) > 0 Then
    SqlText = SqlText & " WHERE " & Krit
  End If
  GetRecordSource = SqlText
End Function

Private Function GetCriteria() As String
  Dim Krit As String
  With Me!Equipment
    If Len(.Value) > 0 Then Krit = Krit & " AND sysFMID LIKE '" & Replace(.Value, "'", "''") & "*'"
  End With
   If Len(Krit) > 0 Then
    Krit = Mid(Krit, 5)
  End If
  GetCriteria = Krit
End Function

Ist die Bearbeitung erledigt und springe ich im Formular einen DS weiter, werden die Daten im Unterformular nicht aktualisiert. Das heißt, es sollen alle DS im UF wieder dargestellt werden, also ungefiltert.
Besonderheit !!! Es gibt keine direkte Verbindung zwischen dem Formular und dem Unterformular, die Zusammenstellung im Unterformular geschieht durch den Filter. Das muß so sein, weil es zur Nachbearbeitung der DS im Unterformular verwendet wird, und noch keine ID oder ähnliches gibt die zur Verbindung genutzt werden kann.
Diese wird in Handarbeit (die Daten müssen gesichtet werden) in dem Arbeitsgang erledigt.

Josef P.

Hallo!

Du kannst auf das Current-Ereignis des Hauptformulars reagieren und dort den Filter vom Unterformular deaktivieren.
Private sub Form_Current()
    Me.UfmlBearbeitungEloxx.Form.FilterOn = False
end Sub


mfg
Josef

HabNeFrage

Hallo Josef P.
ich habe mir heute zum Samstag noch mal die Arbeit gemacht und bin die 130km zur Arbeit gefahren um vor meinem Urlaub doch noch alles fertig zu machen.
Ich habe Deinen Tip gerade eingebaut .... fehlen mir die Worte, klappt super !
DANKE. :D