PDA

Vollständige Version anzeigen : Optionales Kriterium aus Formular an Abfrage


Wolfsbein
01.10.2002, 15:32
Hallo
ich habe ein Formular bei dem ich drei Felder habe: Feld A, Feld B und Feld C. Mit einem Button wird eine Abfrage gestartet. Die Abfragekriterien sehen natürlich so aus: =[forms]![myForm]![Feld A]...
Wenn ich jetzt in Feld B, oder C nichts eingebe, dann erhalte ich keine Daten, logisch. Wie muss ich also die Abfrage definieren, bzw. den Code im Formular schreiben, damit, wenn in B und/oder C nichts steht einfach B und/oder C als Kriterium wegfällt? Danke.
[EDIT] Noch ein kleines Problem: Mein Datenbankfenster ist soweit nach oben verschoben, dass ich es nicht mehr verschieben kann und nicht mehr auf alle Einträge zugreifen kann. Blöde Sache :mad: . Gibt es eine Tastenkombination oder so damit ich es verschieben kann?

Phillip-Berlin
01.10.2002, 16:47
etwas unelegant aber so habe ich es mal gemacht:

einfach per if then die möglichkeiten abklappern und den filter im bericht entsprechend setzen .. der code ist also für den bericht gedacht

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
<span class="TOKEN">Private Sub</span> Report_Open(Cancel <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>)
<span class="REM">'On Error GoTo err</span>
<span class="TOKEN">If</span> Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedauer] <> "" <span class="TOKEN">And</span> Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedatum] <> "" <span class="TOKEN">Then</span>
Me.filter = "[Reiseziel] = Forms![frmBerichte].Form![cboReiseziel] AND [Reisedauer] = Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedauer]AND [Reisedatum] = Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedatum]"
<span class="TOKEN">Else</span>
<span class="TOKEN">If</span> Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedauer] <> "" <span class="TOKEN">Then</span>
Me.filter = "[Reiseziel] = Forms![frmBerichte].Form![cboReiseziel] AND [Reisedauer] = Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedauer]"
<span class="TOKEN">Else</span>
<span class="TOKEN">If</span> Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedatum] <> "" <span class="TOKEN">Then</span>
Me.filter = "[Reiseziel] = Forms![frmBerichte].Form![cboReiseziel]AND [Reisedatum] = Forms![frmBerichte].Form![txtBuchungsstandReisezieleReisedatum]"
<span class="TOKEN">Else</span>
Me.filter = "[Reiseziel] = Forms![frmBerichte].Form![cboReiseziel]"
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>

Me.FilterOn = <span class="TOKEN">True</span>

<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>

ist nicht genau was du beschreibst aber das prinzip wird klar denke ich

Wolfsbein
01.10.2002, 17:54
Danke das ist brauchbar. Ich habe nur gemeint es gäbe eine etwas flexiblere Lösung.

Wolfsbein
06.10.2002, 17:02
Also ich habe das jetzt mal eingebaut. Leider haut es nicht hin:

Private Sub Report_Open(Cancel As Integer)
If Forms!frmdoQuery!txtPPC <> "" Then
Me.Filter = "[ppc] = [Forms]![frmdoQuery]![txtPPC]"
End If
End Sub

Wenn jetzt in dem Feld txtPPC was drinstehe, dann sollten im Bericht ja nur die Daten vorkommen, bei denen die Spalte PPC in der Tabelle eben diesen Wert hat. Das geschieht aber nicht. Kann es daran liegen, dass in der Abfrage mehrere Zeilen Kriterien vorkommen?