2009-07-15 8 views
0

Ich fand manchmal ist wirklich schwierig zu wählen, welche zu verwenden, zBCode oder die Steuerelementeigenschaften, die besser in MS-ACCESS ist?

Ich möchte die Daten zu einem Listenfeld füllen, können Sie es tun, indem Sie Daten auswählen und erstellen Sie eine Abfrage für sie, auch Sie können bauen ein VBA-Code und legen Sie es unter dem Steuerelement Ereignis.

Also, welche ist besser oder wir sagen, wenn wir die Wahl haben, welche ist die beste?

Dank

+0

Meinst du Access Forms in einer herkömmlichen Access-Anwendung (im Gegensatz zu einem Excel-Benutzerformular Frontend mit einem Access-Datenbank-Engine-Back-End)? Wenn dies der Fall ist, ist das Binden eines Steuerelements an eine Tabelle oder ein Query-Objekt der eigentliche Sinn von Access Forms. Warum also dagegen vorgehen? – onedaywhen

Antwort

2

Die Frage kann auf diese Weise gestellt werden: Was ist der beste Weg, um Legen Sie die Steuerquelle eines Listenfelds fest?

Die beste Frage als nächstes: Soll die Steuerquelle mit einer statischen Methode oder einer dynamischen Methode deklariert werden?

Statisch wäre das, was Ihr VBA-Assistent für ein neues Listenfeld generiert. Statisch ist einfach und einfach ist am besten, es sei denn, Ihre Bedürfnisse sagen etwas anderes. Die üblichen Bedürfnisse sind (wie Birger sagte) die Lösung eines Problems mit einer langsam ladenden Form oder einer ausgeklügelten Formautomatisierung.

Wenn Sie eine dynamische Methode verwenden, verwenden Sie VBA. Wenn es sich bei der Anforderung um eine Geschwindigkeit handelt, können Sie die Steuerquelle beim Laden des Formulars festlegen. Wenn es sich um eine Automatisierung handelt, können Sie Maßnahmen ergreifen oder nicht, wenn das Formular geladen wird und Sie Trigger wie AfterUpdate oder Befehlsschaltflächen verwenden.

0

Ich habe immer Anfragen und kaum denken Sie an einen Grund, nicht zu tun, so verwendet. Außer vielleicht, wenn Sie benutzerdefinierte Elemente (wie "leer") zur Listbox hinzufügen möchten oder wenn Geschwindigkeit ein Problem ist. Schließlich ist es absolut nicht nötig, eine Listbox mit über 10.000 Artikeln zu haben. Benutzerdefinierte Ereignisse zum Füllen der Listbox sind in diesem Fall besser.

+0

Auch wenn benutzerdefinierte Elemente wie None oder All hinzugefügt werden, verwende ich eine UNION-Abfrage. –

1

Ich versuche, keinen Code komplizierter zu machen, der es sein muss. Wenn ich einfach den gesamten Inhalt von 1 Tabelle von 1 Spalte an ein Listenfeld binden soll, dann verwende ich die Steuereigenschaften. Wenn es komplizierter ist, würde eine Abfrage es tun.

(Sie sollten auch daran denken, dass je mehr Code, den Sie machen, desto mehr Code, den Sie zu pflegen, so mehr ist nicht unbedingt besser.)

+0

Ich verwende immer eine Abfrage, obwohl ich die Abfrage häufig in der Quelle der Abfragezeile belassen werde.Ich möchte die Daten fast immer alphabetisch oder in einer benutzerdefinierten Reihenfolge ablaufen lassen. Zum Beispiel Normalzeit, Überzeit und Doppelzeit. –

0

Abfrage wenn überhaupt möglich, da die Entwicklungszeit viel kürzer ist als die Verwendung einer Rückruffunktion. Aber manchmal müssen Sie so aussehen, als würden Sie eine Liste von Laufwerken, Dateien oder anderen Daten anzeigen, die über API-Aufrufe oder ähnliches ermittelt wurden.

0

Ich neige dazu, immer eine Select-Abfrage für die Zeilenquelle einer List/Combo-Box zu verwenden, auch wenn ich eine Liste von Dateinamen möchte, würde ich sie zuerst in eine temporäre Tabelle stopfen und dann auswählen.

1

Halten Sie alle SQL-Code an einem Ort und so nah wie möglich an die Daten. Für mich bedeutet dies VIEW s und PROCEDURE s im 'Backend' genannt mit Datenzugriffstechnologie im 'Frontend'. Überlegen Sie, ob sich einer der Spaltennamen Ihrer Tabellen geändert hat und Sie in allen Frontend-Anwendungen, die das Back-End verwenden, alle Steuerelemente aller Eigenschaften aller Formulare durchsuchen müssen, und dann den gesamten VBA-Code in jedem Objekt an jeder Front Ende der Anwendung usw.

Verwandte Themen