Erstellen einer Datenbank in Microsoft Access, die nur von bestimmten Feldern durchsucht werden

StackOverflow https://stackoverflow.com/questions/72528

  •  09-06-2019
  •  | 
  •  

Frage

Wie würden Sie eine Datenbank in Microsoft Access erstellen, die nur durch bestimmte Felder durchsucht werden und kontrolliert von nur wenige (erforderlich) Textfeldern und Kontrollkästchen in einem Formular, so dass es einfach zu bedienen ist - keine schwierigen Abfragen

Beispiel: Sie haben mehrere Textfelder und mehrere entsprechende Kontrollkästchen in einem Formular, und wenn das Kontrollkästchen neben dem Textfeld markiert ist, wird das Textfeld aktiviert und Sie können dann die Suche durch das, was in den Textfeld eingegeben wird,

(Eigentlich das weiß ich schon, nur Stackoverflow Gefahr zu spielen, wo ich eine Frage stellen, weiß ich die Antwort nur die weltweit Codierung Wissen zu erhöhen! Antworten in ca. 5 Minuten kommt)

War es hilfreich?

Lösung

Dies ist eigentlich ein ziemlich großes Thema, und voll mit allen Arten von möglichen Problemen. Die meisten fortgeschrittene und Bücher über den Zugang wird eine Art von Abschnitt haben Diskussion „Query by Form“, in dem Sie ein ungebundenes Formular, das der Benutzer bestimmte Kriterien auswählen können, und dass, wenn sie ausgeführt, schreibt on-the-fly SQL die zurück Anpassungsdaten.

alles anderes als eine flache, Single-Table-Datenstruktur, das ist keine triviale Aufgabe, da die FROM-Klausel des SQL auf den Tischen in der WHERE-Klausel abgefragt abhängig ist.

Einige Beispiele einiger QBF Formen von Apps Ich habe für die Kunden erstellt:

  1. Abfragen 4 zugrundeliegenden Tabellen
  2. Querying eine flache einzelne Tabelle
  3. Abfragen von 3 zugrundeliegenden Tabellen
  4. Abfragen von 6 zugrunde liegenden Tabellen
  5. Abfragen von 2 zugrunde liegenden Tabellen

Die erste ist durch ein Klassenmodul angetrieben, die Eigenschaften, die die Kriterien in dieser Form gewählt reflektieren hat, und das hat Methoden, die die FROM-WHERE-Klauseln und schreiben. Dies macht es extrem einfach, andere Felder hinzufügen (solange diese Felder aus Tabellen kommen nicht anders als die, die bereits enthalten).

Der komplexeste Teil des Prozesses der FROM-Klausel schreibt, wie Sie geeignet haben müssen Join-Typen und umfassen nur die Tabellen, die entweder in der SELECT-Klausel oder der WHERE-Klausel sind. Wenn Sie irgendetwas anderes enthalten, werden Sie Ihre Abfrage viel langsamer (vor allem, wenn Sie irgendwelche Outer-Joins).

Aber das ist ein großes Thema, und es gibt keine Allheilmittel Lösung - stattdessen so etwas wie dies für jede spezielle Anwendung erstellt werden muss. Es ist auch wichtig, dass Sie es gründlich mit den Anwendern testen, da das, was ganz klar und verständlich für Sie, der Entwickler, ist oft ziemlich verflixt mystifying Benutzer zu beenden.

Aber das ist ein Prinzip, das nicht nur auf QBF anwenden!

Andere Tipps

Meine eigene Lösung ist eine „Filter“ Steuerung im Kopfteil des Formulars für jede der Spalten hinzufügen I (in der Regel alle ...) zu filtern, auf der Lage sein wollen. Jedes Mal, so eine „Filter“ Steuerung aktualisiert wird, ein Verfahren läuft den aktiven Filter der Form zu aktualisieren, die „Buildcriteria“ -Funktion in Access VBA verwenden.

Wenn ich also Typ „*cable*“ im „Filter“ an der Spitze der Spalte Beschreibung Bestellung, die „WHERE PODescription IS LIKE‚*cable*‘wird automatisch auf die MyForm.filter Eigenschaft hinzugefügt ....

Einige würden, dass die Filterdatenquelle von mehreren zugrunde liegenden Tabellen gemacht Objekt kann sehr schwierig werden. Stimmt. So ist die beste Lösung ist nach mir immer (ich meine es!) Verwenden, um einen flachen Tisch oder eine Ansicht ( „SELECT“ Abfrage in Access) als Datenquelle für ein Formular. Dadurch wird Ihr Leben viel einfacher machen!

Wenn Sie überzeugt davon sind, können Sie sogar denken Sie an ein kleines Modul, das die Zugabe von „Filter“ Kontrollen und die entsprechenden Verfahren auf Ihre Formulare werden automatisieren. Sie werden für eine echte benutzerfreundliche Client-Schnittstelle auf dem richtigen Weg sein.

Bei der Inbetriebnahme müssen Sie ein Formular zeigen, und deaktivieren Sie andere Menüs usw. Auf diese Weise Ihres Benutzer immer nur die beschränkte Funktionalität sieht und nicht direkt die Tabellen usw. öffnen kann.

Dieses Buch Auszug, Real World Microsoft Access-Datenbank Schutz und Sicherheit sollte aufschlussreich sein.

Für eine Frage, die vage, alles, was ich antworten kann, ist offen MS Access, und klicken Sie mit der Maus ein paar Mal.

Am zweiten Gedanken:
Verwenden Sie die „Wherecondition“ Argument der „ÖffnenFormular-“ Methode

Wenn die Funktionalität ist sehr begrenzt und / oder spezialisierte dann eine SQL-Datenbank ist wahrscheinlich übertrieben sowieso sein würde z.B. Cache alle Kombinationen der in Speicherdaten lokal, auch, und auf der Form an die Kontrollkästchen nach einem zeigen. Zuvor Sie aus der Tabelle zu widerrufen Berechtigungen haben könnte und gewährt ihnen nur auf VIEWs / PROCs, die die Daten in der vorgeschriebenen Art und Weise abgefragt, aber die Sicherheit von MS Access entfernt 2007 wurde so können Sie Sie jetzt wirklich mit Benutzer verhindern, dass Ihre einfache Anwendung zu umgehen, sagen Excel und Abfrage der Daten eine Möglichkeit, sie mögen ... aber dann ist das nicht der Punkt einer Enterprise-Datenbank? ; -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top