2016-07-11 15 views
0

Ich arbeite derzeit an einem Projekt auf MS-Access 2010 und ich kämpfe mit einem Problem für Stunden. Ich möchte einen Filter auf eine SELECT/PIVOT-Anweisung anwenden. Das Ergebnis dieser Abfrage wird in einer ListBox angezeigt.Combobox-Filter auf einer Abfrage funktioniert nicht, während Null (nur im Formular)

Das Problem ist, dass keine Ergebnisse angezeigt werden, wenn die Combobox auf Null gesetzt ist. Aber wenn ich bestimmte Werte in dieser Combobox auswähle, funktioniert es perfekt.

  • Der Cbbox Filter als Parameter erklärt
  • Meine Abfrage WHERE-Klausel wie folgt aussieht:
WHERE (Jobs.fk_group=[Formulaires]![frm_MAIN]![lst_filterGroup] AND (fk_otherCritera='XXX')) 
    OR ((([Formulaires]![frm_MAIN]![lst_filterGroup]) Is Null) AND (fk_otherCritera='XXX')) 
  • Die Abfrage funktioniert, während ich manuell den Wert des Parameters eingeben (= wenn ich eine leere Zeichenfolge eingabe, zeigt es alle Datensätze = was ich will)
  • IDK, wenn es wichtig ist nt, aber auch die Listenansicht, die ich dynamisch seine recordsource auslagern (= es führt 2 differents Abfragen), abhängig von einer anderen Cbbox
  • Ich überprüfte die Parameter Werte in meine VBA-Code kurz vor MyListview.Requery Aufrufe und IsNull (myCbboxReference) zurückgibt Richtig und meine anderen Kriterien sind auch OK.

Ich habe keine Ahnung von dem, was ich falsch gemacht habe, ich brauche Hilfe :-(

Mit freundlichen Grüßen, LR

Antwort

0

ich besonderen Wert in Combobox zur Anzeige aller Datensätze in Haupttabelle zu verwenden, empfehlen und verlassen Sie sich nicht mit Null-Werte auf den Vergleich. Ihre Anfrage, wahrscheinlich nicht funktioniert, weil leer Combobox "" zurückgibt, nicht Null.

auch vorsichtig sein, Abfragen mit basierend auf Verweise auf Kontrollen/Parameter. Access hat einen Fehler : Wenn Sie Filter auf Daten in t anwenden Die Form, basierend auf der Abfrage mit solchen Artverweisen, stoppt das Lesen neuer Werte von Steuerelementen/Parameter während der Abfrage. Es erscheint mindestens für Teilformulare im Datenblatt-Modus. Umgehung für diesen Fehler - Verwenden der Funktion anstelle der Referenz

+0

Danke, in der Tat funktioniert es, wenn ich Nz (CbboxRef) = "" statt Is Null :) auch was meinst du mit "Funktion statt Referenz verwenden"? Sie wollen eine Getter-Funktion in ein Modul einfügen, um auf die Steuerung zuzugreifen? Ich will nur sicher sein zu verstehen – LostReality

+0

Ja, Sie haben Recht über die Funktion. –