Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage über mehrere Spalten

Begonnen von Scoopman, Juni 24, 2010, 10:01:56

⏪ vorheriges - nächstes ⏩

Scoopman

Hallo,

vielleicht stelle ich es mir zu kompliziert vor, aber vielleicht kennt jemand von den Götteraspiranten hier ne Lösung.
Hab eine grosse Stammdatentabelle. Derzeit 800DS aber mit insgesamt 49 verschiedenen Spalten. Ist leider so
Hab es so übernommen. Aber nun zum Problem.
Gibt es eine Möglichkeit in einem Formular ein Textfeld einzubauen in dem ich einen Filterwert eingebe dessen Herkunft aber in mehreren Spalten stehen könnte.
Also zum Beispiel so.
Ich gebe in dem Textfeld ein "Herr" und bekomme als Tabelle (order Formular) alle Einträge mit Anrede "Herr".
Im selben Textfeld gebe ich ein "Deutschland" und das Ergebniss ist eine Tabelle mit allen Einträgen mit Land "Deutschland".
Eine andere Möglichkeit wäre auch ein Listenfeld mit allen möglichen Einträgen die in der Stammdatentabelle vorkommen.
Bei der ersten Möglichkeit muss der Wert halt genau eingegeben werden. Bei der zweiten wäre er schon vorgegeben.
Kennt vielleicht jemand von euch eine Lösung?
Vielen Dank.
Access 2003(SP3)

blackoutNO

Hallo,

ich denke der einfachste Lösungsweg wäre hier die von Access eingebaut Suchfunktion (button erstellen -> Datensatznavi -> Datensatz suchen)
Ich denke das ist ne recht komfortable Lösung, die einem ne menge Code erspart. Alternativ könntest du natürlich auch nen Code mit, in deinem Fall 49 Or-Verknüpfungen schreiben. Ich denke doch, dass die Access Such dafür ne angenehmere Lösung ist.

Gruß, Jörn
Cheers
Jörn

Scoopman

Hallo Jörn,

dein Ansatz ist nicht schlecht, aber er funktioniert so leider nicht. Vielleicht hab ich mich auch falsch ausgedrückt.
Stell dir vor du hast ein Formular welches als Reportübersicht dienen soll. Also keine Datenquelle hat.
Wenn ich jetzt deine Option dort einsetze kanst du dir denken was passiert. Nix.
Ich möchte in einer Seite an einer bestimmten Stelle einen Text haben "Wonach soll gefiltert werden?".
Unter, oder neben dem Text muss ein Button sein der beim klick eine Prozedur auslösst in der meine beiden Beispiele stehen. Entweder du kennst die Werte auswendig die in der Tabelle stehen und du gibst die Werte direkt ein, oder du bekommst eine Vorschlagsliste wonach du suchen (filtern) könntest. Resultat dessen soll eine Tabelle in der Datenblattansicht sein.
Hoffe es war jetzt etwas verständlicher.

Gruß
Access 2003(SP3)

blackoutNO

Hallo,

möglich wäre auch, dass du eine Abfrage erstellt und als Kriterium dein Formularfeld angibst und dann diese Abfrage aus dem Formular öffnest.
Du müsstest dann "nur" in deine 49 Spalten das Feld als Kriterium eingeben, aber im Oder-Bereich -> Kriterien dürfen nicht in einer Zeile stehen.

Gruß, Jörn
Cheers
Jörn

database

Hallo,

ich glaube ich habe dich richtig verstanden - ICH - Access wird das jedoch nicht so leicht schlucken.
ZitatIch gebe in dem Textfeld ein "Herr" und bekomme als Tabelle (order Formular) alle Einträge mit Anrede "Herr".
Im selben Textfeld gebe ich ein "Deutschland" und das Ergebniss ist eine Tabelle mit allen Einträgen mit Land "Deutschland".
...und hier liegt dann der Hund begraben - Access kann nicht 'wissen' in welcher Spalte deiner Tablle nach den Kriterien zu suchen ist, wenn die Suchbegriffe in einem undefinierten Feld steht!

Um deine Vorstellung zu realisieren müsste ein kompletter Scan über alle Spalten stattfinden um die richtige Spalte zu finden - was sich programmieren ließe nur der Aufwand steht in überhaupt keinem Verhältnis zum Ergebnis!

Ich würde dir vorschlagen, die Suche bzw. die Filterung auf ein paar Felder einzuschränken (wenn das thematisch möglich ist) und gmäß dieser Idee...
ZitatEine andere Möglichkeit wäre auch ein Listenfeld mit allen möglichen Einträgen die in der Stammdatentabelle vorkommen
... die Suchbegriffe in Kombifeldern zu fassen, die ihrerseits die Begriffe aus den zu durchsuchenden Spalten beziehen.

Um Festzulegen welcher Begriff nun in welcher Spalte zu suchen ist, gibt es per VBA verschieden Möglichkeiten.
Sind Begriffe in den Kombifeldern eingestellt kann ein SQL-String zusammengesetzt werden mit Hilfe dessen dann die gewünschten Ergebnisse aus der Stammdatentabelle geholt werden können.