Neuigkeiten:

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

Mobiles Hauptmenü

Excel Tabellen in Access als Datenbank mit Suchmaske umwandeln

Begonnen von David, April 11, 2016, 13:00:52

⏪ vorheriges - nächstes ⏩

David

Hallo zusammen,

da ich ein totaler Anfänger im Umgang mit Access bin, suche ich eure Hilfe zu einer für mich sehr komplizierten Fragestellung. :-\
Das Problem welches ich habe ist das zur Zeit 6 Excel Tabellen mit den Spalten Name, Nummer, Limit und totales Limit
in Access zu einer Datenbank mit Suchmaske umgewandelt werden soll.
Ziel ist es in der Maske den Namen oder Nummer einzugeben und dann zu sehen welches Limit oder totales Limit in welcher Tabelle dazu eingetragen ist und falls diese noch in einer anderen Liste vorkommen diese ebenfalls dort mit anzuzeigen.
Es wäre schön wenn jemand hier dazu einen Lösungsansatz hat und ihn mir mitteilen könnte.

Vielen Dank vorab :)

datekk

Hi David. Warum 6 Tabellen? Wie unterscheiden die sich? Haben die alle die gleichen Tabellenspalten? Das wäre wichtig zu wissen.

Und: herzlich Willkommen hier im Forum  :D

datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

David

Hallo datekk, :)

Die Tabellen beschreiben jeweils andere Länder in welchen diese Stoffe bestimmte Grenzen einhalten müssen oder die Stoffe benutzt werden dürfen.
Die Spalten sind in allen Tabellen gleich immer Name, Nummer, Limit, totales Limit.
Die Zeilenanzahl variiert allerdings da in manchen Länder mehr Stoffe zugelassen wurden als in anderen.

datekk

Wie viele Einträge hat deine Excel? Ggf. müsstest Du händisch für jeden Stoff und jedes Land in der Datenbank entsprechend die Werte erfassen.

Du brauchst auf jeden Fall 3 Tabellen in Access:

tblStoffe: IdStoff, NameStoff, NummerStoff
tblLänder: IdLand, NameLand
tblVerknüpfung: IdVerknüpfung, StoffId, LandId, Limit, LimitTotal

Hast Du schon mal überhaupt was mit Access gemacht? Schon mal eine Abfrage erstellt etc?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

David

Die Eintrage gehen von 112 bis ungefähr 430 in einer anderen Tabelle.
Ich bin ein totaler Anfänger im Umgang mit Access, habe mir am Freitag eine Menge von Tutorials angeschaut von Konrad Renner und anderen Youtubern mit dem Thema Access.
Leider war nichts dabei was ich auf meinen Fall konkret anwenden kann.
Ich bin also für den Ratschlag sehr dankbar und wissbegierig :)

Demnach müsste ich jede Tabelle von einem Land in Stoff, Nummer, Limit und Limit 2 unterteilen ?

datekk

Hi David. Es ist gut, dass Du Dich damit schon auseinander gesetzt hast. Du musst das Datenbankmodell verstehen. Du brauchst, wie ich oben geschrieben habe 3 Tabellen.

In eine Tabelle müssen alle Stoffe mit Bezeichnung (als String/Text) und der Stoffnummer (wie ist die Aufgebaut? z.B. V376 oder V-37837-1 oder 1001?).

In einer anderen Tabelle werden alle Länder aufgeführt.

In der dritten Tabelle werden dann die jeweiligen Stoffe mit den Ländern in Zusammenhang gebracht und die jeweiligen Werte sind zu erfassen.

Du solltest also schon mal anfangen, über eine Excel Tabelle Deine Daten so aufzubereiten. Dafür würde ich empfehlen, eine neue Excel Tabelle anzulegen. Du brauchst alle Stoffe in einer Liste untereinander. In einer Spalte den Stoffnamen in der anderen Spalte dann die Stoffnummer. Bitte sag mir, wie die Stoffnummer aufgebaut ist. Du öffnest also jede Deiner Excel Tabellen und kopierst aus jeder der Landestabellen die beiden Spalten in die neue Tabelle. Alle Einträge untereinander in die neue Tabelle. Dann alle Duplikate entfernen, sodass jede Stoffnummer nur ein einziges mal vorkommt. Kennst Du Dich damit aus? Die Daten der fertig gestellten Liste kannst Du dann mit Access importieren. Damit wäre dann die tblStoffe schon mal mit Informationen gefüllt.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hallo,

du kannst die Excel-Tabellen auch nacheinander einlesen und die Verknüpfungstabelle per Parameterabfrage füllen, wobei du das jeweilige Land individuell eingeben kannst.

Oder du liest die Excel-Tabellen zunächst in eine Hilfstabelle ein und fügst das Land auf die oben beschriebene Art hinzu. Dann kannst du anschließend daraus die Länder-Tabelle und die Stoffe-Tabelle füllen und in einem dritten Schritt die Verknüpfungstabelle.
Freundliche Grüße
MaggieMay

David

Vielen Dank für die schnellen Antworten ihr beiden :)
Werde mal die Daten aufbereiten wie Datekk es beschrieben hat und dann mal schauen wie ich damit weiter arbeiten kann und mich dann nochmal melden.
Danach werde ich mich noch weiter einlesen wie solche Abfragen genau gestaltet werden evtl. erschließt sich mir dann auch schon ein guter Lösungsweg.
Die Nummern sind z.B. so aufgebaut 1333-78-14.

Vielen dank nochmals !

MaggieMay

Wie gesagt, das Aufbereiten via Excel kannst du dir sparen, wenn du die Daten erstmal alle in eine Access-Tabelle einliest und dabei die jeweilige Länderkennung hinzufügst.
Freundliche Grüße
MaggieMay

Beaker s.a.

Moin,
Vielleicht lassen sich die Excel-Tabellen auch einfach erstmal nur
verknüpfen, um dann mit geeigneten Anfügeabfragen die Daten
in das neue Modell zu übertragen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

David

So habe die Excel Tabellen nach Datekks Vorschlag eingefügt.
Da ich mit der Sortierung schon anfangen konnte bevor Maggie geschrieben hatte also fühl dich nicht vernachlässigt Maggie dein Ratschlag war auch toll nur war ich schon am sortieren und es klang ebenfalls unkomplizierter für mich als Laien :)
Nun da ich die Tabellen impliziert habe in Access, wie stell ich denn die richtigen Beziehungen auf damit ich eine Suchmaske passend zu den Suchbegriffen Name und Nummer bekomme.
Bin für jeden Ratschlag dankbar :)
Die Datei würde ich per PN auch übersenden wenn jemand drüber schauen möchte.

Vielen Dank abermals !

datekk

Super. Falls noch nicht geschehen, lege bitte eine Tabelle tblStoffe an -> Erstellen Tabelle.
Ändere den Spaltenname ID in IdStoffe. Dann fügst Du folgende Spalten hinzu: NameStoff und NummerStoff. -> Zum Hinzufügen klicken, Kurzer Text auswählen, dann Spaltennamen vergeben. Wenn Du damit fertig bist hat Deine Tabelle also 3 Spalten: IdStoffe, NameStoff, NummerStoff.

Dann markierst Du in Deiner Hilfsexcel alle Einträge für den Stoffnamen und die Stoffnummer. Dann kopierst Du dies in die Zwischenablage (Strg + C). Dann markierst Du mit der Maus in der Access Tabelle die beiden Spalten NameStoff und Nummerstoff und fügst dann die Zwischenablage ein (Strg + V).

Dann sollten deine Daten für die Stoffe erstmal ordentlich in der Access Tabelle tblStoffe sein. Access vergibt im Feld IdStoffe für jede Zeile eine fortlaufende Nummer.

Es sollte nun beispielsweise so aussehen:

IdStoffe, NameStoff, NummerStoff
1, Wolle, 10-1-10
2, Seide, 20-1-10
3, Baumwolle, 1-50-20

Gib Bescheid, wenn Du damit durch bist.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

David

Guten Morgen zusammen,

habe alle Schritte befolgt und durchgeführt.
Die Tabellen habe ich als Screenshot angehängt. Hoffe mal die Tabellen sind richtig so :)

DF6GL

Hallo,

bis hier (aber es geht noch weiter..z. B. Limit-Werte eintragen, Normalisierung, falls für diesen Fall überhaupt erforderlich...)  ist es schon richtig.

Woher kommen jetzt die Limit-Werte? Gibt mal ein paar Beispiele dieser Daten.

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

David

Hallo DF6GL,

die Limits gehören zu den Stoffen und sind in den meisten Ländern unterschiedlich.
Zum Beispiel für Carbon black 30,00% in Deutschland und für Südamerika gibt es in diesem Beispiel keine Grenze, sie könnte aber fiktiv bei 15% liegen.
Dies wiederholt sich mit anderen Stoffen in den unterschiedlichen Ländern usw.
Ziel ist es am Ende eine Suchmaske zu haben, die den Benutzer die Nummer oder Namen eintragen lässt daraufhin werden die Länder mit dem Stoff und den Grenzwerten angezeigt.
Nebenbei ich finde es toll hier soviel Unterstützung zu bekommen und mein Interesse sich mit Access tiefer zu beschäftigen wächst! :)