Neuigkeiten:

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

Mobiles Hauptmenü

Suchabfrage in mehreren nicht zusammenhängenden Tabellen

Begonnen von AnAndreas, Juli 12, 2017, 15:33:20

⏪ vorheriges - nächstes ⏩

AnAndreas

Hallo zusammen ,

ich habe 7 verschiedene Tabellen in den ich gleichzeitig suchen möchte /muss.
Der Wert xxxxxx kann in einer oder mehreren Tabellen , einmal oder mehrfach vorkommen.
Ich bekomme das mit den Abfragen nicht so wirklich hin.
Ich würde gerne eine Suchfunktion erstellen die den Wert xxxxxx sucht und mir anzeigt in welcher Tabelle/Spalte(name) sich der Wert befindet.
Ich habe die Tabellen mal mit angehängt.

Vielen Lieben Dank im Voraus .

Liebe Grüße Andreas


MzKlMu

Hallo,
wie kommen denn solche Tabellen für eine Datenbank zu Stande?
Im Grunde ist das für eine Datenbank unbrauchbar. Das was Du jetzt als Spaltenname hast, sollten Feldinhalte sein in je einem Datensatz, die eingetragenen Werte (nach denen gesucht wird) stehen dann in einer Spalte. Dann kann man problemlos suchen und den entsprechenden Bezeichner (der ja Feldinhalt ist) ausgeben.

Das solltest Du umbauen in eine normalisierte Struktur, damit Access damit umgehen kann.

Ansonsten, um da zu einer Lösung zu kommen ist entweder zum Suchen VBA erforderlich womit man nacheinander in allen Spalten oder man machte eine Unionabfrage die die Tabellen zusammenfügt. Wobei das aber auch problematisch wird, weil dann die Feldnamen vereinheitlicht werden.
Eigentlich gibt es für die vorliegende Struktur keine gescheite Lösung.
Alleine den Feldnamen zu einem passenden Eintrag zu ermitteln ist schon Aufwand.
Gruß Klaus

ebs17

Zitat7 verschiedene Tabellen in den ich gleichzeitig suchen möchte
In verschiedenen Dateien kann man nacheinander suchen, nicht gleichzeitig. Wenn aber die Maßnahme schnell genug ist, kommt einem das gleichzeitig vor.
ZitatIch bekomme das mit den Abfragen nicht so wirklich hin.
Da dürftest Du nicht der einzige sein.
Ein Fachkundiger würde sich dann nicht antun, in teilweise über hundert Aiufzählungsfeldern zu suchen und dafür eine Anweisung zu schreiben.

Warum ist übrigens die Suche in Exceltabellenblättern in ganz typischem Exceldesign eine Accessaufgabe?
Ich würde erwarten, dass da Excelmethoden übersichtlicher und effizienter sind.

In einer Datenbank würde man nach einer Modellierung erwarten, dass gleiche Informationen in EINER Spalte der GLEICHEN Tabelle stehen. Dann ist sogar das Finden ein Kinderspiel.
Um zu einem Datenbankdesign zu kommen, könnte das helfen: Grundlagen - SQL ist leicht (9) - Pivottabelle in Listtabelle umformen
Mit freundlichem Glück Auf!

Eberhard

AnAndreas

Guten Morgen und erstmal Danke für die Antworten ,

der Hintergrund für die etwas unkonventionelle Art des Aufbaus ist das ich mir eine Art virtuelles Regal gebaut habe. Würde hier aber jetzt evtll. zu weit führen in der Erklärung.

Dies funktioniert auch alles perfekt. Ich kann auch in jedem einzelnen Regal ( jeweils eine der Angehängten Dateien ist ein Regal ) suchen . Das ist auch kein Problem.
Nun möchte ich es aber einfacher machen das man sich nicht durch jedes Regal klicken und die Suche ausführen muss.
Ich hatte die Hoffnung das man das halt ganzheitlich machen kann. Eine Suchfunktion die entweder einen bestimmten Wert in den genannten Tabellen oder Abfragen oder Formularen sucht.

Hoffe ich drücke mich verständlich aus .

Liebe Grüße
Andreas

ebs17

ZitatIch kann auch in jedem einzelnen Regal ... suchen . Das ist auch kein Problem.
Wenn Du also die gegebenen Hinweise ignorieren willst: Was hindert Dich daran, die vorhandene Suchfunktion in Schleife über alle Regale anzuwenden?
Mit freundlichem Glück Auf!

Eberhard

AnAndreas

Ich möchte das nicht ignorieren , kann dem Hinweis das ich die Tabellen neu anlegen soll nicht folgen da das bereits im Alltag so stark eingebaut ist das dass enorme Schwierigkeiten bringen würde.

Darf ich höfflich nochmal das Thema Schleife , was du eben angesprchen hast abfragen, was meinst du damit ?

MzKlMu

Hallo,
Zitatder Hintergrund für die etwas unkonventionelle Art des Aufbaus ist das ich mir eine Art virtuelles Regal gebaut habe.
der vorliegende Aufbau dürfte für das Vorhaben auf Dauer fast unbrauchbar sein.
Und dass es so nicht perfekt funktioniert merkst Du ja gerade.
Bei einem normalisierten Aufbau wäre das ein Klacks. Um bei Deinem Beispiel zu bleiben mit Regal zu bleiben:

- Tabelle Regal
   Das was jetzt die Tabellenamen der XLS sind als 6 Datensätze mit Autowert als Primärschlüssel (PS)

- Tabelle Lagerplatz (mit Autowert als PS und Fremdschlüssel zum Regal)
Das was jetzt die Spaltenüberschriften der XLS sind, als Datensätze.
Als Eintrag aber ohne den Teil der Überschrift der in allen Spalten gleich ist.

- Tabelle Einlagerungen (FS zu Lagerplatz)
  Feld für den eigentlichen Eintrag.

Die komplette DB würde dann über alle Tabellen mit den PS nur noch 7 Felder umfassen.
Die Suche könnte direkt in eine Abfrage erfolgen, mit Ausgabe aller passenden Informationen. Und egal wie viel Datensätze, die Suche wäre innerhalb eines Wimpernschlages erledigt.

Du solltest die DB umbauen, alles andere ist unbrauchbar. Auch wenn es jetzt funktioniert.
Gruß Klaus

DF6GL

Hallo,

mögliches Konzept zur Zielerreichung:


Transponiere in jeder Datei mit der xls-Funktion MTRANS die horizontale Ausrichtung in eine vertikale ab Spalte B4 z. B.    Spalte B1 erhält den Dateinamen.


ZitatID    E1_1_1      E1_1_2      E1_1_3        E1_1_4
1   11111111   12156776   12156776   12172315
            
T_LP_E1   E1_1_1     11111111      
T_LP_E1   E1_1_2     12156776      
T_LP_E1   E1_1_3     12156776      
T_LP_E1   E1_1_4     12172315      
T_LP_E1   E1_2_1     11838004      .
T_LP_E1   E1_2_2     11838004      
T_LP_E1   E1_2_3     11838004   
.
.
.

Verknüpfe (oder importiere)  sodann die xls-Sheets in Access und erstelle eine Union-Abfrage über alle Tabellen, die einem Such-Formular zugewiesen wird.


Mit dem Suchform  können dann die Kriterienwerte für die Suche  eingegeben und als Ergebnis angezeigt werden.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

Hallo,
@Franz
mit der Union werden aber die Spaltennamen vereinheitlicht. Und es soll ja der zum Eintrag passende Spaltenname ausgegeben werden. Was mMn die Verwendung einer Union ausschließt.
Gruß Klaus

DF6GL

Hallo,

denke nicht...


die Spaltennamen für alle transponierte  Listen lauten A,B,C entspr. den Excel-Spalten  (Beim Import sollte natürlich "hasFieldnames" auf false gesetzt werden).


Ansonsten ist der Spalten-/Feldname egal,  sofern vereinheitlicht, weil im ersten Feld der Dateiname steht, im zweiten die Regalnummer und im 3. der Wert.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

ebs17

Zitatkann dem Hinweis das ich die Tabellen neu anlegen soll nicht folgen da das bereits im Alltag so stark eingebaut ist das dass enorme Schwierigkeiten bringen würde
Das kann teuer werden, siehe Sonstiges - Es war einmal eine kleine Exceltabelle ...
Kurzfassung: Ehe sie etwas Betriebswichtiges entwickeln, sollten handelnde Personen auch etwas anwendungsbereite Ausbildung zu der verwendeten Programmumgebung haben.

Das betrifft dann auch absolute Basics in einer Programmierung wie Schleifen (For ... Next, Do ... Loop). Hier hätte man aber den Vorteil, sich die nötigen Informationen unmittelbar aus der VBA-Hilfe erschließen zu können.

ZitatIch möchte das nicht ignorieren
Wenn auf Hinweise und Rückfragen kein wahrnehmbares Feedback kommt, muss man von Ignorieren ausgehen - was dann sehr leicht eine entsprechende Gegenreaktion auslösen kann.
Mit freundlichem Glück Auf!

Eberhard