Hallo
Ich habe ein Formular, in welchem ich verschiedene Parameter für einen Bericht setzten kann. Der Bericht basiert auf einer Abfrage. Nun möchte ich aus dem Formular diese Abfrage aufrufen und mit einem SQL Befehl die Parameter setzen.
Ich habe gelesen, dass ich dafür ein Recortset erstellen muss. Meine Frage ist nun wie kann ich diese Abfrage aufrufen und einen SQL Befehl schreiben. Wie ich den SQL Befehl schreibe, dass ist mir glaube ich klar. Wie wird aber die geänderte Abfrage zur Basis von meinem Bericht?
Kann mir jemand an einem Beispiel zeigen wie ich das machen muss?
Gruss Daniel 
			
			
			
				Hallo,
da hast Du vermutlich falsch gelesen ;-)
Du kannst jederzeit einer gespeicherten Abfrage einen neuen (von Dir per VBA zusammengesetzten) SQL-String zuweisen:
Currentdb.Querydefs("abfDeineAbfrage").SQL="Select * from tblDeineTabelle Where IDFeld=1"
Dabei ändert das nichts an der Tatsache, dass die gespeicherte Abfrage Grundlage für einen Bericht darstellt.  Beim anschliessenden Öffnen des Berichtes wird eben die Abfrage mit dem neu zugewiesenen SQL-Statement ausgeführt.
			
			
			
				Hallo
Es funktioniert mit deinem Beispiel. Nun bin aber auf ein neues Problem gestossen. In meiner Abfrage geht es um eine 3-stufige Klassierung. Klassierung von Büchern. In dieser Klassierung gibt es Bereiche wo es nur 2-Stufen gibt. In meiner Abfrage möchte ich einen von-bis Bereich filtern der mir nachher in einem Bericht angezeigt wird. Das Problem, die Bereiche in welchen nur 2 Stufen existieren werden gar nicht angezeigt.
Ich versuchte meine SQL so aufzubauen :
strSQL = "Select * FROM qryKlassierung Where kat_Nr >= '" & Me!cboVonKat & "' and kat_Nr <= '" & Me!cboBisKat & "' "
        strSQL = strSQL & " and gruppe1_Nr >= '" & Me!cboVonGruppe1 & "' and gruppe1_Nr <= '" & Me!cboBisGruppe1 & "' "
        strSQL = strSQL & " and gruppe2_Nr >= '" & Me!cboVonGruppe2 & "' and gruppe2_Nr <= '" & Me!cboBisGruppe2 & "' "
        strSQL = strSQL & " or kat_Nr >= '" & Me!cboVonKat & "' and kat_Nr <= '" & Me!cboBisKat & "' "
        strSQL = strSQL & " and gruppe1_Nr >= '" & Me!cboVonGruppe1 & "' and gruppe1_Nr <= '" & Me!cboBisGruppe1 & "' "
        strSQL = strSQL & " and gruppe2_Nr = '""' " 
			
			
			
				Ich hatte ein Problem hier nochmals der ganze Beitrag
Hallo
Es funktioniert mit deinem Beispiel. Nun bin aber auf ein neues Problem gestossen. In meiner Abfrage geht es um eine 3-stufige Klassierung. Klassierung von Büchern. In dieser Klassierung gibt es Bereiche wo es nur 2-Stufen gibt. In meiner Abfrage möchte ich einen von-bis Bereich filtern der mir nachher in einem Bericht angezeigt wird. Das Problem, die Bereiche in welchen nur 2 Stufen existieren werden gar nicht angezeigt.
Ich versuchte meine SQL so aufzubauen :
        strSQL = "Select * FROM qryKlassierung Where kat_Nr >= '" & Me!cboVonKat & "' and kat_Nr <= '" & Me!cboBisKat & "' "
        strSQL = strSQL & " and gruppe1_Nr >= '" & Me!cboVonGruppe1 & "' and gruppe1_Nr <= '" & Me!cboBisGruppe1 & "' "
        strSQL = strSQL & " and gruppe2_Nr >= '" & Me!cboVonGruppe2 & "' and gruppe2_Nr <= '" & Me!cboBisGruppe2 & "' "
        strSQL = strSQL & " or kat_Nr >= '" & Me!cboVonKat & "' and kat_Nr <= '" & Me!cboBisKat & "' "
        strSQL = strSQL & " and gruppe1_Nr >= '" & Me!cboVonGruppe1 & "' and gruppe1_Nr <= '" & Me!cboBisGruppe1 & "' "
        strSQL = strSQL & " and gruppe2_Nr = '""' " 
Das Feld gruppe2_Nr ist jenes Feld das keinen Eintrag hat in meiner Abfrage. Wie kann ich meinen SQL schreiben, dass er mir diesen Datensatz nimmt auch wenn das Feld leer ist? Ich habe es auch mit gruppe2_Nr = Null versucht.
Gruss Daniel
			
			
			
				Hallo,
.... Or  gruppe2_Nr Is Null  ...
einbauen.