Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Atuatuca am Oktober 21, 2015, 22:51:17

Titel: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 21, 2015, 22:51:17
Hallo Access-O-Maniacs,

komme mit meiner Checkbox zum Filtern meines Listenfeldes (Liste14) nicht weiter.
HAbe ein Formulare mit 3 Textfeldern, über die mann 2 Listenfelder filtern kann, dass
funktioniert wunderbar. Sobald aber eine Checkbox dazu kommt zeigt er nur noch mist
an, bzw. gar nixt.

Es soll so sein, dass durch einer der 3 Textfeldern die beiden LIstenfelder gefiltert werden.
Wenn die Checkbox angehackt ist, soll in Liste14 nur die Datensätze gezeigt werden, mit
den Filter aus einer der Textfeldern, wo die Werte in Spalte "Offene Menge" größer "0" sind.
Und wenn ich den Haken rausnehme, dann soll er wieder alle Datensätze zeigen, mit Filter
aus einer der Textfeldern.

Wenn ich den Filter direkt in der Abfrage platziere, funktioniert es.

Private Sub Liste14_AfterUpdate()
        If Me!Kontrollkästchen21 = False Then
            Me.Liste14.RowSource = "SELECT * FROM qryBestelluebersicht WHERE Offene Menge >0"
            Me!Liste14.Requery
        End If

End Sub

Private Sub Text16_AfterUpdate()
    Me.Text4 = ""
    Me.Text18 = ""
    Me.Liste2.RowSource = "SELECT * FROM qryLagerliste WHERE WEKurztext LIKE '*' & '" & Me.Text16 & "*'"
    Me!Liste2.Requery
    Me.Liste14.RowSource = "SELECT * FROM qryBestelluebersicht WHERE Kurztext LIKE '*' & '" & Me.Text16 & "*'"
    Me!Liste14.Requery

   
End Sub

Private Sub Text18_AfterUpdate()
Me.Text4 = ""
Me.Text16 = ""
    Me.Liste2.RowSource = "SELECT * FROM qryLagerliste WHERE BestNr LIKE '" & Me.Text18 & "'"
    Me!Liste2.Requery
    Me.Liste14.RowSource = "SELECT * FROM qryBestelluebersicht WHERE Einkaufsbeleg LIKE '" & Me.Text18 & "'"
    Me!Liste14.Requery


End Sub

Private Sub Text4_AfterUpdate()
    Me.Text16 = ""
    Me.Text18 = ""
    Me.Liste2.RowSource = "SELECT * FROM qryLagerliste WHERE WESachnr LIKE '" & Me.Text4 & "*'"
    Me!Liste2.Requery
    Me.Liste14.RowSource = "SELECT * FROM qryBestelluebersicht WHERE Kurztext LIKE '" & Me.Text4 & "*'"
    Me!Liste14.Requery

End Sub


Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: MaggieMay am Oktober 21, 2015, 23:24:38
Hi,

das Problem ist doch, dass du beim Anhaken der Checkbox gar nicht weißt, nach welchem Textfeld du zusätzlich noch filtern sollst, weil du bislang lediglich auf die Eingabe in den Textfeldern reagiert hast. Wenn es dabei bleiben soll, dass der Filter jeweils nur ein Textfeld berücksichtigen soll, käme evtl. folgende Lösung in Frage:
Private Sub Liste14_AfterUpdate()
    ' was soll hier ausgelöst werden???
End Sub

Private Sub Text16_AfterUpdate()
    Me.Text4 = Null
    Me.Text18 = Null
    SetListboxSource
End Sub

Private Sub Text18_AfterUpdate()
    Me.Text4 = Null
    Me.Text16 = Null
    SetListboxSource
End Sub

Private Sub Text4_AfterUpdate()
    Me.Text16 = Null
    Me.Text18 = Null
    SetListboxSource
End Sub

Private Sub Kontrollkästchen21_AfterUpdate()
    SetListboxSource
End Sub

Private Sub SetListboxSource()
    Dim strKrit2 As String, strKrit14 As String
    Select Case True
    Case Not IsNull(Me.Text4)
        strKrit2 = "WHERE WESachnr LIKE '" & Me.Text4 & "*'"
        strKrit14 = " WHERE Kurztext LIKE '" & Me.Text4 & "*'"
    Case Not IsNull(Me.Text16)
        strKrit2 = "WHERE WEKurztext LIKE '*" & Me.Text16 & "*'"   
        strKrit14 = "WHERE Kurztext LIKE '*" & Me.Text16 & "*'"
    Case Not IsNull(Me.Text18)
        strKrit2 = "WHERE BestNr LIKE '" & Me.Text18 & "'"
        strKrit14 = "WHERE Einkaufsbeleg LIKE '" & Me.Text18 & "'"
    End Select
    If Kontrollkästchen21 = True Then
        If Len(strKrit14) > 0 Then
            strKrit14 = strKrit14 & " AND [Offene Menge]  > 0"
        Else
            strKrit14 = strKrit14 & "Where [Offene Menge]  > 0"
        End If
    End If
    Me.Liste2.RowSource = "SELECT * FROM qryLagerliste " & strKrit2
    Me.Liste14.RowSource = "SELECT * FROM qryBestelluebersicht " & strKrit14
End Sub

(ungetestet)
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 22, 2015, 08:12:38
Hallo MaggieMay,

erst einmal danke für die Rückmeldung.

Die Checkbox soll eine "und-option" sein, egal ob die beiden listenfelder von den Textfeldern bereits "vorgefiltert" sind.
Es wird nur über einer der 3 Textfeldern gefiltert, nie gleichzeitig.

Ich habe auch eine zusätzliche Abfrage (qryBestelluebersicht_nur offene), welche gleich ist mit der qryBestelluebersicht, jedoch hat er bereits ein Kriterium drin bei Offene Menge > 0

Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: MaggieMay am Oktober 22, 2015, 10:32:36
Hallo,
ZitatDie Checkbox soll eine "und-option" sein
dann kannst du meinen Vorschlag ja einsetzen - noch nicht ausprobiert?
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 22, 2015, 20:21:49
Hallo MaggieMay,

ich gebe den "Kindern" erst einmal vernünftige Namen. Dann teste ich dein Code mal.

Gibt es auch eine möglichkeit gleichzeitig in 2 Spalten zu suchen ?
(Spalte Kurztext und Spalte Positionstext der lstBestellungen)

Und was ist wenn der User mehrere Begriffe eingibt in txtBezeichnung ?
(txtArtikel und txtBestellnummer sind ja eindeutig)

Melde mich nach dem Test nochmal mit dem Ergebnis.

Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 22, 2015, 21:18:21
Hallo Maggie May,

dein Code funktioniert. Vielen Dank.

Hier nochmal den Code (Kinder haben jetzt Namen  ;D)


Private Sub txtArtikel_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtBezeichnung = Null
    SetListboxSource
End Sub

Private Sub txtBestellnummer_AfterUpdate()
    Me.txtArtikel = Null
    Me.txtBezeichnung = Null
    SetListboxSource
End Sub

Private Sub txtBezeichnung_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtArtikel = Null
    SetListboxSource
End Sub

Private Sub cbxOffeneBestellungen_AfterUpdate()
    SetListboxSource
End Sub

Private Sub SetListboxSource()
    Dim strKritlstLagerliste As String
    Dim strKritlstBestellungen As String
   
    Select Case True
    Case Not IsNull(Me.txtArtikel)
        strKritlstLagerliste = "WHERE WESachnr LIKE '" & Me.txtArtikel & "*'"
        strKritlstBestellungen = " WHERE Kurztext LIKE '" & Me.txtArtikel & "*'"
       
    Case Not IsNull(Me.txtBezeichnung)
        strKritlstLagerliste = "WHERE WEKurztext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstBestellungen = "WHERE Kurztext LIKE '*" & Me.txtBezeichnung & "*'"
       
    Case Not IsNull(Me.txtBestellnummer)
        strKritlstLagerliste = "WHERE BestNr LIKE '" & Me.txtBestellnummer & "'"
        strKritlstBestellungen = "WHERE Einkaufsbeleg LIKE '" & Me.txtBestellnummer & "'"
       
    End Select
   
    If cbxOffeneBestellungen = True Then
        If Len(strKritlstBestellungen) > 0 Then
            strKritlstBestellungen = strKritlstBestellungen & " AND [Offene Menge]  > 0"
        Else
            strKritlstBestellungen = strKritlstBestellungen & "Where [Offene Menge]  > 0"
        End If
    End If
    Me.lstLagerliste.RowSource = "SELECT * FROM qryLagerliste " & strKritlstLagerliste
    Me.lstBestellungen.RowSource = "SELECT * FROM qryBestelluebersicht " & strKritlstBestellungen
End Sub


Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 24, 2015, 22:44:32
Hallo MaggieMay,

würde gerne die 3 Listenfelder noch per Optionsfeld filtern, bekomme es aber nicht hin. Hier mein Code
(optAbladestelle mit "und" mit Wert 1 und "oder" mit Wert 2, txtAbladestelle,

Private Sub txtAbladestelle_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtBezeichnung = Null
    Me.txtArtikel = Null
    SetListboxSource
End Sub

Private Sub txtArtikel_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtBezeichnung = Null
    Me.txtAbladestelle = Null
    SetListboxSource
End Sub

Private Sub txtBestellnummer_AfterUpdate()
    Me.txtArtikel = Null
    Me.txtBezeichnung = Null
    Me.txtAbladestelle = Null
    SetListboxSource
End Sub

Private Sub txtBezeichnung_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtArtikel = Null
    Me.txtAbladestelle = Null
    SetListboxSource
End Sub

Private Sub cbxOffeneBestellungen_AfterUpdate()
    SetListboxSource
End Sub

Private Sub SetListboxSource()
    Dim strKritlstLagerliste As String
    Dim strKritlstBestellungen As String
    Dim strKritlstReservierungen As String
    Dim strKritAbladestelle As String
   
    Dim intSumme As Double
   
   
    Select Case True
    Case Not IsNull(Me.txtArtikel)
        strKritlstLagerliste = "WHERE WESachnr LIKE '" & Me.txtArtikel & "*'"
        strKritlstBestellungen = " WHERE Kurztext LIKE '" & Me.txtArtikel & "*'"
        strKritlstReservierungen = " WHERE [04MatNr] LIKE '" & Me.txtArtikel & "*'"
               
    Case Not IsNull(Me.txtBezeichnung)
        strKritlstLagerliste = "WHERE WEKurztext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstBestellungen = "WHERE Kurztext & Positionstext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstReservierungen = "WHERE [05MatText] LIKE '*" & Me.txtBezeichnung & "*'"
       
    Case Not IsNull(Me.txtBestellnummer)
        strKritlstLagerliste = "WHERE BestNr LIKE '" & Me.txtBestellnummer & "'"
        strKritlstBestellungen = "WHERE Einkaufsbeleg LIKE '" & Me.txtBestellnummer & "'"
        strKritlstReservierungen = "WHERE [01BelegNr] LIKE '" & Me.txtBestellnummer & "'"
       
    Case Not IsNull(Me.txtAbladestelle)
        strKritlstLagerliste = "WHERE Abladestelle LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstBestellungen = "WHERE Abladestelle LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstReservierungen = "WHERE [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
       
    End Select
   
    If cbxOffeneBestellungen = True Then
        If Len(strKritlstBestellungen) > 0 Then
            strKritlstBestellungen = strKritlstBestellungen & " AND [Offene Menge]  > 0"
        Else
            strKritlstBestellungen = strKritlstBestellungen & "Where [Offene Menge]  > 0"
        End If
    End If
   
    If optAbladestelle = 1 Then
        strKritAbladestelle = strKritlstBestellungen & strKritlstReservierungen & strKritlstLagerliste & " AND    [Abladestelle]  LIKE '*" & Me.txtAbladestelle & "*'"
    Else
        strKritAbladestelle = strKritlstBestellungen & strKritlstReservierungen & strKritlstLagerliste & "  WHERE [Abladestelle]  LIKE '*" & Me.txtAbladestelle & "*'"
    End If

    Me.lstLagerliste.RowSource = "SELECT * FROM qryLagerliste " & strKritlstLagerliste
    Me.lstBestellungen.RowSource = "SELECT * FROM qryBestelluebersicht " & strKritlstBestellungen
    Me.lstReservierungen.RowSource = "SELECT * FROM qryReservierungen " & strKritlstReservierungen
   
Me.txtAmLager = 0
For intSumme = 0 To lstLagerliste.ListCount - 1
    Me.txtAmLager = txtAmLager + Val(lstLagerliste.Column(8, intSumme))
Next intSumme

End Sub


Danke & Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: MaggieMay am Oktober 25, 2015, 02:04:32
Hi,

was hast du denn hiermit im Sinn:
    If optAbladestelle = 1 Then
        strKritAbladestelle = strKritlstBestellungen & strKritlstReservierungen & strKritlstLagerliste & _
                            " AND    [Abladestelle]  LIKE '*" & Me.txtAbladestelle & "*'"
    Else
        strKritAbladestelle = strKritlstBestellungen & strKritlstReservierungen & strKritlstLagerliste & _
                            "  WHERE [Abladestelle]  LIKE '*" & Me.txtAbladestelle & "*'"
    End If

das wird doch weiter gar nicht verwendet.

Vermutlich habe ich deine Frage noch nicht verstanden...  ???
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 25, 2015, 09:11:19
Hallo MaggieMay,

Es handelt sich um eine Optionsgruppe, NICHT um ein Optionsfeld.

Wenn Option 1 (= und) gewählt wird dann sollen alle 3 Listenfelder gefiltert werden.
Mit einem Wert aus einer der drei Textfelder (txtArtikel, txtBezeichnung, txtBestellnummer)
UND den Wert aus dem Textfeld txtAbladestelle. Wie bei der Checkbox.

Wenn Option 2 (=oder) dann soll er nur einer der 4 Textfeldern als Filter für die 3 Listenfelder benutzen.

Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am Oktober 25, 2015, 12:03:58
Hallo,

versuche es gerade mit 2 cbx, aber auch das liefert falsche ergebnisse. Ich finde einfach den Fehler nicht. Höchstwahrscheinlich etwas banales, aber ich sehe ihn nicht.

Private Sub txtArtikel_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtBezeichnung = Null
    SetListboxSource
End Sub

Private Sub txtBestellnummer_AfterUpdate()
    Me.txtArtikel = Null
    Me.txtBezeichnung = Null
    SetListboxSource
End Sub

Private Sub txtBezeichnung_AfterUpdate()
    Me.txtBestellnummer = Null
    Me.txtArtikel = Null
    SetListboxSource
End Sub

Private Sub cbxOffeneBestellungen_AfterUpdate()
    SetListboxSource
End Sub

Private Sub txtAbladestelle_AfterUpdate()
    SetListboxSource
End Sub

Private Sub cbxAbladestelleOder_AfterUpdate()
    cbxAbladestelleUnd = False
    SetListboxSource
End Sub

Private Sub cbxAbladestelleUnd_AfterUpdate()
    cbxAbladestelleOder = False
    SetListboxSource
End Sub

Private Sub SetListboxSource()
    Dim strKritlstLagerliste As String
    Dim strKritlstBestellungen As String
    Dim strKritlstReservierungen As String
    Dim strKritAbladestelle As String
   
    Dim intSumme As Double
   
   
    Select Case True
    Case Not IsNull(Me.txtArtikel)
        strKritlstLagerliste = "WHERE WESachnr LIKE '" & Me.txtArtikel & "*'"
        strKritlstBestellungen = " WHERE Kurztext LIKE '" & Me.txtArtikel & "*'"
        strKritlstReservierungen = " WHERE [04MatNr] LIKE '" & Me.txtArtikel & "*'"
               
    Case Not IsNull(Me.txtBezeichnung)
        strKritlstLagerliste = "WHERE WEKurztext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstBestellungen = "WHERE Kurztext & Positionstext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstReservierungen = "WHERE [05MatText] LIKE '*" & Me.txtBezeichnung & "*'"
       
    Case Not IsNull(Me.txtBestellnummer)
        strKritlstLagerliste = "WHERE BestNr LIKE '" & Me.txtBestellnummer & "'"
        strKritlstBestellungen = "WHERE Einkaufsbeleg LIKE '" & Me.txtBestellnummer & "'"
        strKritlstReservierungen = "WHERE [01BelegNr] LIKE '" & Me.txtBestellnummer & "'"
       
    Case Not IsNull(Me.txtAbladestelle)
        strKritlstLagerliste = "WHERE Abladestelle LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstBestellungen = "WHERE Abladestelle LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstReservierungen = "WHERE [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
       
    End Select
   
    If cbxOffeneBestellungen = True Then
        If Len(strKritlstBestellungen) > 0 Then
            strKritlstBestellungen = strKritlstBestellungen & " AND [Offene Menge]  > 0"
        Else
            strKritlstBestellungen = strKritlstBestellungen & "Where [Offene Menge]  > 0"
        End If
    End If
   
    If cbxAbladestelleUnd = True Then
        strKritAbladestelle = strKritlstBestellungen & " AND [Abladestelle] LIKE '*" & Me.txtAbladestelle & "*'" & strKritlstReservierungen & " AND [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
    Else
    End If
   
    If cbxAbladestelleOder = True Then
        strKritAbladestelle = strKritlstBestellungen & " WHERE [Abladestelle] LIKE '*" & Me.txtAbladestelle & "*'" & strKritlstReservierungen & " WHERE [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
    Else
    End If
 
   
    Me.lstLagerliste.RowSource = "SELECT * FROM qryLagerliste " & strKritlstLagerliste
    Me.lstBestellungen.RowSource = "SELECT * FROM qryBestelluebersicht " & strKritlstBestellungen
    Me.lstReservierungen.RowSource = "SELECT * FROM qryReservierungen " & strKritlstReservierungen
   
Me.txtAmLager = 0
For intSumme = 0 To lstLagerliste.ListCount - 1
    Me.txtAmLager = txtAmLager + Val(lstLagerliste.Column(8, intSumme))
Next intSumme



End Sub


Danke & Gruss
Atuatuca
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: MaggieMay am Oktober 25, 2015, 23:12:30
Ich fürchte, jetzt hast du meine Frage nicht verstanden.
Erkläre doch bitte, was du mit den von mir zitierten Codezeilen bezweckst.

ZitatEs handelt sich um eine Optionsgruppe, NICHT um ein Optionsfeld.
Wie heißt denn die Optionsgruppe?



PS:
Sorry, ich habe ganz übersehen, dass dein Thema bereits als "erledigt" abgehakt wurde - warum auch immer?
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am November 03, 2015, 13:22:05
Hallo MaggieMay,

thema wurde versehentlich auf "gelöst" gesetzt.

Ich möchte per Optionsfeld (und / oder) die möglichkeit haben, das Textfeld txtAbladestelle als "und-Filter" oder als "oder-Filter" zu nutzen.

Wenn Option 1 (= und) gewählt wird dann sollen nach einer der 3 Listenfelder gefiltert werden (txtArtikel, txtBezeichnung, txtBestellnummer) UND den Wert aus dem Textfeld txtAbladestelle für die 3 Listenfelder.

Wenn Option 2 (=oder) dann soll er nur nach einer der 4 Textfeldern als Filter für die 3 Listenfelder benutzen.
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: MaggieMay am November 03, 2015, 13:38:01
Wenn es eine Optionsgruppe ist, so musst du diese auswerten und nicht die einzelnen Optionen.
Die Optionsgruppe hat das AfterUpdate-Ereignis und enthält den gewählten Wert.

Und die Frage nach dem Namen dieser Optionsgruppe hast du auch noch nicht beantwortet.

Nachtrag:
In einer Optionsgruppe kann immer nur eine Option ausgewählt werden, das ist ihr Sinn und Zweck und das bedarf keiner zusätzlichen Programmierung.
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am November 04, 2015, 08:34:31
Hallo MaggieMay,

der Name der Optionsgruppe ist "optAbladestelle"

Das eine Optionsgruppe immer nur eine Auswahl haben kann ist mir schon klar.

Da ich es nicht hinbekommen habe, habe ich es mit Checkboxen versucht, habe ich aber auch nicht hinbekommen.

Gruss
Atuatuca
(von der kalten Ostsee)
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: Atuatuca am November 04, 2015, 09:23:37
Hallo MaggieMay,

hier nochmal mein Versuch mit dem Optionsfeld "optAbladestelle". Leider ohne erfolgt. Er meckert immer bei

    Me.txtAmLager = txtAmLager + Val(lstLagerliste.Column(8, intSumme))

"Unzulässige Verwendung von Null". Wenn ich das Optionsfeld weglasse, dann funktioniert es. Auch die Filterung mit dem Optionsfeld funktioniert nicht.

Hier der Code

Private Sub Form_Load()

    DoCmd.Maximize
    Me.txtArtikel = ""
    Me.txtBestellnummer = ""
    Me.txtBezeichnung = ""
    Me.txtAmLager = ""
    Me.txtAbladestelle = ""
   
    Me!lstLagerliste.RowSource = ""
    Me!lstBestellungen.RowSource = ""
    Me!lstReservierungen.RowSource = ""
   
    cbxOffeneBestellungen = False
    cbxlstLagerliste = True
    cbxlstBestellungen = True
    cbxlstReservierungen = True
    optAbladestelle = 2
   
End Sub

Private Sub lstBestellungen_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmBestelldetails", , , "ID=" & Me!lstBestellungen
End Sub

Private Sub optAbladestelle_AfterUpdate()
        SetListboxSource
End Sub

Private Sub txtAbladestelle_AfterUpdate()
       
        SetListboxSource
End Sub

Private Sub txtArtikel_AfterUpdate()
        Me.txtBestellnummer = Null
        Me.txtBezeichnung = Null

        SetListboxSource
End Sub

Private Sub txtBestellnummer_AfterUpdate()
        Me.txtArtikel = Null
        Me.txtBezeichnung = Null

        SetListboxSource
End Sub

Private Sub txtBezeichnung_AfterUpdate()
        Me.txtBestellnummer = Null
        Me.txtArtikel = Null

        SetListboxSource
End Sub

Private Sub cbxOffeneBestellungen_AfterUpdate()
    SetListboxSource
End Sub

Private Sub SetListboxSource()
    Dim strKritlstLagerliste As String
    Dim strKritlstBestellungen As String
    Dim strKritlstReservierungen As String
    Dim strKritAbladestelle As String
       
    Dim intSumme As Double
   
    Select Case True
    Case Not IsNull(Me.txtArtikel)
        strKritlstLagerliste = "WHERE WESachnr LIKE '" & Me.txtArtikel & "*'"
        strKritlstBestellungen = " WHERE Kurztext LIKE '" & Me.txtArtikel & "*'"
        strKritlstReservierungen = " WHERE [04MatNr] LIKE '" & Me.txtArtikel & "*'"
               
    Case Not IsNull(Me.txtBezeichnung)
        strKritlstLagerliste = "WHERE WEKurztext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstBestellungen = "WHERE Kurztext & Positionstext LIKE '*" & Me.txtBezeichnung & "*'"
        strKritlstReservierungen = "WHERE [05MatText] LIKE '*" & Me.txtBezeichnung & "*'"
       
    Case Not IsNull(Me.txtBestellnummer)
        strKritlstLagerliste = "WHERE BestNr LIKE '" & Me.txtBestellnummer & "'"
        strKritlstBestellungen = "WHERE Einkaufsbeleg LIKE '" & Me.txtBestellnummer & "'"
        strKritlstReservierungen = "WHERE [01BelegNr] LIKE '" & Me.txtBestellnummer & "'"
       
    Case Not IsNull(Me.txtAbladestelle)
        strKritlstLagerliste = "WHERE [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstBestellungen = "WHERE Abladestelle & Positionstext LIKE '*" & Me.txtAbladestelle & "*'"
        strKritlstReservierungen = "WHERE [09Ablad] LIKE '*" & Me.txtAbladestelle & "*'"
             
    End Select
   
    If cbxOffeneBestellungen = True Then
        If Len(strKritlstBestellungen) > 0 Then
            strKritlstBestellungen = strKritlstBestellungen & " AND [Offene Menge]  > 0"
        Else
            strKritlstBestellungen = strKritlstBestellungen & "Where [Offene Menge]  > 0"
        End If
    End If
   
    If optAbladestelle = 1 Then
        strKritAbladestelle = strKritAbladestelle & strKritlstLagerliste & strKritlstBestellungen & strKritlstReservierungen
       
        Else
    End If
   
    Me.lstLagerliste.RowSource = "SELECT * FROM qryLagerliste " & strKritlstLagerliste & strKritAbladestelle
    Me.lstBestellungen.RowSource = "SELECT * FROM qryBestelluebersicht " & strKritlstBestellungen & strKritAbladestelle
    Me.lstReservierungen.RowSource = "SELECT * FROM qryReservierungen " & strKritlstReservierungen & strKritAbladestelle
   
Me.txtAmLager = 0
For intSumme = 0 To lstLagerliste.ListCount - 1
    Me.txtAmLager = txtAmLager + Val(lstLagerliste.Column(8, intSumme))
Next intSumme

End Sub


Gruss
Atuatuca
(von der kalten Ostsee)
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: el_gomero am November 04, 2015, 09:32:33
Moin,

Zitat
Das eine Optionsgruppe immer nur eine Auswahl haben kann ist mir schon klar.

Da ich es nicht hinbekommen habe, habe ich es mit Checkboxen versucht, habe ich aber auch nicht hinbekommen.

Na das mit Optgruppe sollte doch leicht hinbekommen zu sein. Lad mal eine auf das Problem abgespeckte db hier hoch (komprimieren und zippen nicht vergessen und am besten im A03-Format). Heute abend schau ich mir das gerne mal an.
Titel: Re: Listenfeld mit Checkbox filtern
Beitrag von: DF6GL am November 04, 2015, 09:39:25
Hallo,


intSumme As Double ????


    Me!txtAmLager = ME!txtAmLager + Val(NZ(ME!lstLagerliste.Column(8, intSumme),0))

Welche Werte können in Me!lstLagerliste.Column( 8 ) vorkommen? Gibt es da LEERE Felder?  Und wozu die VAL()-Funktion?  Gibt es da LEERE Felder oder etwa auch nicht nur Ziffern?   Es kann sein, dass NZ nicht greift, weil die Listenspalte Text (Nullstring) beinhaltet. Dann muss mit LEN() statt NZ() geprüft werden. Am besten ersetzt man das aber gleich in der zugrundeliegenden Abfrage.