"Vorfilter" für Formularabfrage zur Access DB
#1
Hallo zusammen,

ich stehe vor einem Problem, dass ich alleine leider nicht lösen kann.  Undecided

Ich habe eine Excel Kalkulation, die Daten aus einer Access Datenbank per Formular "rüber holt".
Nun ist es so, dass ich mir einen "Vorfilter" vorstelle, wo ich schonmal grob Artikel vorsortieren kann, aber nicht zwingend muss.
Die Datenbank und die Artikel sind dementsprechend (mMn) schon passend formatiert.

Allerdings bekomme ich es nicht hin, mir über die 4 oberen Dropdownfelder die Vorsortierung machen zu können.
Ist das so nicht möglich, wie ich mir das vorstelle?
Aktuell ist es so, dass ALLE DB Einträge unten im Suchfeld erscheinen.
Ich möchte aber Artikel vorsortieren können (aber nicht müssen), um den Suchaufwand zu minimieren.

Ich habe mal eine Excel und Access Testdatei erstellt, damit ihr seht, was ich meine.
Das Makro für das Formularfenster lässt sich einfach mit STRG+Q ausführen.
Da es ja nur um das Formular geht, ist die Excel Tabelle unwichtig.^^

Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.  15

   


Angehängte Dateien
.xlsm   Entwurf für Forum.xlsm (Größe: 37,48 KB / Downloads: 12)
.accdb   Datenbank 2.0 BETA.accdb (Größe: 440 KB / Downloads: 7)
Antworten Top
#2
Hi, 
warum so umständlich? Das geht ganz simpel, ohne Verwendung von VBA, einer klitzekleinen PQ Abfrage (in der Du lediglich noch den Pfad für Deine DB anpassen musst) und mit Slicern.


Angehängte Dateien
.xlsx   Multifilter.xlsx (Größe: 23,74 KB / Downloads: 5)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • pillamann0815
Antworten Top
#3
(17.06.2024, 23:28)Ralf A schrieb: Hi, 
warum so umständlich? Das geht ganz simpel, ohne Verwendung von VBA, einer klitzekleinen PQ Abfrage (in der Du lediglich noch den Pfad für Deine DB anpassen musst) und mit Slicern.

Hallo Ralf,

vielen vielen Dank für deine Antwort und das Beispiel.  18

An den direkten Import und laufender Aktualisierung der DB hatte ich auch schon gedacht, allerdings sind das einfach zu viele Daten.
Das ist für meinen Zweck leider nicht nutzbar, da die aktuelle Datenbank ca. 10.000 Artikel enthält (Tendenz stark steigend).
Die aktuell genutzte Excel Datei enthält auch mehrere Blätter, die mit Daten gefüllt wird, weshalb ich mich für ein Formular entschieden habe, welche immer im Vordergrund des aktuellen Blattes ist.
Das hat auch den Vorteil, dass ich per Kopieren Button direkt die Artikelnummer einfügen kann, ohne immer das Blatt wechseln zu müssen und dann die Filter zurückzusetzen.
Somit lässt es sich super schnell arbeiten mit dem Formular.

Die PQ Lösung ist echt sehr schick.
Gefällt mir grundsätzlich sehr gut, aber leider für meinen Einsatzzweck (mMn) nicht nutzbar.
Ich lasse mich aber gerne belehren, wenn es per PQ eine bessere Lösung gibt.
Damit habe ich mich nämlich (ehrlich gesagt) noch nie beschäftigt (Asche auf mein Haupt).

LG
pilla
Antworten Top
#4
...hmmm... das Argument scheint mir bei 10.000 DS nicht wirklich schlüssig, zumal Du ja im Initial-Ereignis der Form (da würde ich noch eine Distinct Klausel verwenden) sowieso eine abgespeckte Preisliste (nur mit ein paar weniger Spalten) verwendest.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#5
Ich hatte das schon mal getestet und da hat das Öffnen der Excel Datei immer schon ca. 10 Sekunden gedauert.
Da bin ich davon ausgegangen, dass es an der Masse der Artikel liegt, bis die geladen sind.
Eventuell liegts auch an der Serveranbindung.^^

Leider bleibt das Problem mit der "umständlichen" Bedienung im extra Blatt.
Da ist die Formularlösung echt prima bisher.


Ich wollte aber deine Lösung in keinster Weise madig reden.
Wenn das so rüber gekommen sein sollte, dann bitte entschuldige. 15
Antworten Top
#6
...keine Sorge... ich hab kein Problem damit, wenn Dir meine Lösung nicht zusagt. Allerdings nutze ich, seit ich PQ entdeckt habe, kaum noch VBA und setze auch keine SQL Strings mehr zusammen, weil ich mit ein paar Mausklicks viel schneller ans Ziel komme. Aber wenn Du drauf bestehst, dann empfehle ich Dir folgende Vorgehensweise:

Im Initialize Ereignis der Form sollte der SQL String für die Kategorieauswahl, also Deine Combobox2 (der Du einen entsprechenden Namen wie z. Bsp. cboKategorien geben solltest) so aussehen:

Code:
SELECT DISTINCT Preisliste.[Kategorie] FROM Preisliste;

Damit wird jede Kategorie jeweils nur 1 x angezeigt. Das Ergebnis weist Du der cboKategorien zu.

In den Change Ereignissen der anderen Komboboxen (die Du auch umbenennen solltest) z. Bsp. für die Varianten so:
Code:
SELECT Distinct Preisliste.Variante
FROM Preisliste
WHERE (((Preisliste.Kategorie)="Unterschränke") AND ((Preisliste.Variante) Is Not Null And (Preisliste.Variante)<>""))
ORDER BY Preisliste.Variante;

Wobei Du in der Where Klausel Unterschränke durch cboKategorien.Value ersetzen musst. Analoges, aber angepasstes Vorgehen bei der cboAusführungen. Doch beim Change Ereignis der Hygienebox dann den SQL String so zusammensetzen, wie Du das Endergebnis  sehen willst. Das darfst Du Dir aber selbst zusammenfrickeln... 21

Viel Erfolg!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • pillamann0815
Antworten Top
#7
....sorry... blöd ausgedrückt.... der SQL String für die Varianten muss natürlich ins Change Ereignis der Kategorien usw....
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • pillamann0815
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste