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
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.
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 (http://www.ms-office-forum.net/forum/showthread.php?t=338193)
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
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?
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 ?
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.
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.
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.
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.
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 ... (http://www.ms-office-forum.net/forum/showthread.php?t=289614)
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.