2011-01-11 4 views
0

Endlich dient der Zweck ist es, das Formular zu filtern, (es gibt auch eine Schaltfläche Aktualisieren im Formular). Es funktioniert jetzt gut für mich, aber ich habe diese Verwendung von Parameterabfragen vorher nicht gesehen. Ich weiß, ich könnte andere Methoden verwenden (Zugriff Standardfunktionalität, Filter/FilterOn-Eigenschaften mit VBA verwenden), aber technisch, gibt es einen Grund, dies nicht zu tun?Formular basierend auf Abfrage, die Parameter aus Textfeldern auf diesem Formular

Antwort

0

Ich bin mir nicht sicher, ob ich Ihre Frage verstehe, aber die SQL-Parameter Ihres Formulars auf die Filterkriterien Steuerelemente auf dem Formular verweisen bedeutet, dass Sie durch Reifen springen müssen, um etwas anderes als Daten anzuzeigen wird auf allen parametrierten Feldern gefiltert.

Der Requery-Einwand macht für mich keinen Sinn, da Sie eine Abfrage durchführen müssen, um das Formular basierend auf den Werten in Ihren Steuerelementen zu filtern, es sei denn, Sie schreiben die Recordsource, anstatt sie erneut abzufragen. Wenn Sie die Recordsource des Formulars ändern, sehe ich keinen Grund, Parameter zu verwenden, die sich auf die Formularsteuerelemente beziehen, die zum Eingeben von Kriterien verwendet werden. Die Einstellung der Eigenschaft filter des Formulars ist bei weitem der einfachste Weg, um dies zu tun, aber es wird davon ausgegangen, dass Sie mit einer Datenquelle gestartet haben, die alle Datensätze anzeigt, aus denen Sie auswählen würden, und die möglicherweise ineffizient sind, oder nur a schlechtes Design.

Also, im Grunde wäre meine Empfehlung, überhaupt keine Parameter zu verwenden, sondern das SQL dynamisch zu schreiben und jedesmal die Recordsource des Formulars zu setzen.

Beiläufig, um die Anzeige eines leeren Formulars zu vermeiden, können Sie den Trick eines TOP 1 Abfrage wie folgt verwendet werden:

SELECT TOP 1 Null As Field1, Null As Field2 
    FROM MySmallestTable 

Das einen Datensatz mit Nullen in allen Bereichen haben würde, damit Ihre Begrenzte Steuerelemente zeigen keine Fehlermeldungen an. Außerdem wird das Formular nicht bearbeitet, ohne dass die Bearbeitungseigenschaften des Formulars geändert werden müssen.

+0

diese db war für einen Kurs, ich beschränkte die Verwendung von Features zu dem, was in der Klasse abgedeckt worden war, das Beste daraus zu machen, sonst hätte ich (und habe schon oft) getan, was du gesagt hast :-) –

0

Nun, ich könnte mir vorstellen, Sie könnten eine VBA-Funktion zu requery von der Datenbank basierend auf einem ungebundenen Textfeld in Ihrem Formular schreiben, obwohl Filter aus Performancegründen ein bisschen besser geeignet ist. Der einzige Grund, warum ich nicht daran denken kann, dass Sie eine Anfrage wiederholen müssen, ist, wenn Sie eine Menge Daten aus einer MDB-Datei auf einem Netzwerklaufwerk in einem langsamen Netzwerk mit vielen gleichzeitigen Benutzern abrufen. einfach weil die Performance einen schweren Schlag bekommen würde. Ich könnte mich irren, aber

Verwandte Themen