2017-05-18 3 views
0

Ist es möglich, eine If-Anweisung in DoCmd.ApplyFilter enthalten?Zugriff auf Formular DoCmd.ApplyFilter mit If Statemnent

Ich habe ein Endlosformular, das die Kategoriespalten EmployeeTypeID (1 (Feld), 2 (Office)) und DepartmentID (1 (neue Verkäufe), 2 (Service), 3 (andere)) enthält. Ich möchte in der Lage sein, die DepartmentID zu filtern, um nur die Datensätze anzuzeigen, die Other nur für Office enthalten, während alle Abteilungen für Field angezeigt werden.

DoCmd.ApplyFilter , "(dbo_Stat.DepartmentID)=3" 

, dass alles filtern arbeitet

DoCmd.AppplyFilter, "IF(dbo_Stat.EmployeeTypeID)=2 Then (dbo_Stat.DepartmentID)=3 

Das ist, was ich erreichen möchte, aber die Syntax scheint nicht richtig. Ist das, was ich versuche, überhaupt möglich?

Antwort

1

Es ist:

DoCmd.AppplyFilter, "dbo_Stat.DepartmentID = IIf(dbo_Stat.EmployeeTypeID = 2, 3, SomeOtherValueThan3)" 

Für ein "Spiel", können Sie den alten Trick versuchen könnte:

DoCmd.AppplyFilter, "dbo_Stat.DepartmentID = IIf(dbo_Stat.EmployeeTypeID = 2, 3, dbo_Stat.DepartmentID)" 
+0

Perfect, danke! Gibt es eine Möglichkeit, einen Platzhalter im Abschnitt "Else" zu verwenden? Ich versuchte DoCmd.AppplyFilter, "dbo_Stat.DepartmentID = IIf (dbo_Stat.EmployeeTypeID = 2, 3," * ")" und bekam einen Typkonflikt. Das fragliche Feld ist ein Tinyint. –

+0

Vielleicht. Siehe bearbeitete Antwort. – Gustav

Verwandte Themen