Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" 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 ⏩

datekk

#15
Ich würde es hier wieder genau so händeln über ein Hilfstabelle in Excel. Du trägst untereinander alle Inhalte aus den einzelnen Tabellen in einer neuen Excel Tabelle ein. Du fügst in Excel eine Spalte LandId hinzu. Hier trägst Du für alle Einträge einer Landestabelle die Zahl ein, welche Access als ID für das jeweilige Land vergeben hat. Also in Deinem Beispiel für alle USA Einträge an dieser Stelle eine 2. Bei den Daten der Tabelle für Deutschalnd in alle Zeilen eine 1 usw.

Das sollte dann so aussehen:

StoffName, Stoffnummer, Limit, LimitTotal, Land
Leder, 1-4-3, 10, 37, 1
Seide, 2-2-3, 15, 19, 1
Wolle, 1-2-7, 17, 18, 2
Leder, 1-4-3, 20, 45, 2
Seide, 2-2-3, 20, 45, 2
Wolle, 1-2-7, 20, 45, 2

Soweit wie ich das verstanden habe, müssten ja die Stoffnummern in den Ländertabellen alle identisch sein, und kommen nicht doppelt in einem Land vor, oder? Also jeder Stoff hat in allen Ländern immer die gleiche Nummer und pro Land ist der Stoff nur einmal genannt.?

Wichtig wäre noch zu wissen, welches Format die Limits haben. Sind das ganze Zahlen wie 45 oder 15; oder sind es Komma Werte wie 12,3 oder 0,8??? Das ist wichtig später für die Tabelle im Access und dem Datentyp der Spalten.


LG
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

Hey datekk,

die Stoffe haben alle eine eindeutige Nummer, welche sich nicht verändert, ebenso sind die Stoffe nur einmal pro Land gelistet.
Die Limits sind z.B. 1%, 0,01% oder aber auch 1 mg/dm³.
Werde die Excel Tabelle eben anfertigen, war schon ein bisschen weiter und hatte mich bis zum Formular vorgearbeitet welches die Verknüpfungen richtig hatte aber ich dort den Namen oder Nummer nicht verändern konnte ... war auch in der Formularansicht.
Die Abfrage selber hatte unten nach der letzten Zeile nicht mehr das Sternchen und "neu" dort stehen wie die Tabellen selber, kann dies der Grund sein ?

Danke! :)

DF6GL

Hallo,

ja, da sind "nicht aktualisierbare" Abfragen im Spiel... Bevor aber Formulare und Abfragen an der Reihe sind, ist das Tabellenmodell zu vervollständigen.

Zitatdie Limits gehören zu den Stoffen und sind in den meisten Ländern unterschiedlich.

das ist mir klar.
ZitatZum 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.

Die Frage ist, wo diese Limits zu finden sind... Sind die in einer Excel-Liste schon erfasst oder müssen die erst durch sonstige Recherche herausgefunden und manuell eingetragen werden. Wenn manuell, so kann das gleich in Access erfolgen und der Umweg über eine Excel-Liste ist überflüssig.


Weiteres Problem wird sein, dass die Limit- und LimitTotal-Werte in unterschiedlichen  Einheiten, oder gar keiner (Prozent)  vorliegen.
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 habe ich vorab rausgesucht und in Excel Tabellen eingefügt, diese Tabellen sind in Access mittlerweile importiert und alle Werte und Daten stehen in einer Access Tabelle zu Verfügung.
Stellt es also eine Problematik dar wenn sich die Limits von ihren Einheiten unterscheiden?

DF6GL

Hallo,


dann  zeig doch mal einen Screenshot von einigen Datensätzen einer solchen Tabelle...

Je nachdem, was mit diesen Limits passieren soll, kann es Probleme geben..  Notfalls sind die Werte und die dazugehörenden Einheiten in separaten Felder zu speichern.
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

Sehr gerne DF6Gl,

anbei Screenshots zu den bisher angefertigten Tabellen einschließlich der letzten die mir Datekk empfohlen hat zu erstellen.

Die Limits können auch 1 mg/dm³ oder 1 mg/kg betragen in dem Screenshots sind nur % Angaben zu sehen.

MaggieMay

Hi,

die Verknüpfungstabelle sollte lediglich die Fremdschlüssel der anderen Tabellen beinhalten und nicht die Texte. Und die letzte Tabelle dürfte wohl überflüssig sein.
Freundliche Grüße
MaggieMay

David

Hi MaggieMay,

danke für den Hinweis werd dies direkt ändern und wieder mit einem Screenshot einstellen, hoffe dann ist es korrekt bzw. ich habe es korrekt verstanden wie du es meinst :)

David

hey MaggieMay,

ist die Tabelle so richtig wie du es empfohlen hast ?

Danke :)

datekk

#24
leider nein. Geh doch so vor, wie ich es Dir hier geschrieben habe: http://www.access-o-mania.de/forum/index.php?topic=21271.msg120811#msg120811

Deine tblStoffe ist korrekt, ebenso tblLänder. Jetzt ist nur noch tblVerknüpfung aufzubauen. Und diese machst Du am besten wie geschrieben via Excel. Du nimmst die Deutschland Tabelle, kopierst dort alles raus in eine neue Tabelle, fügst der neuen Tabelle noch die Spalte Land hinzu. Hier erfasst Du für jede Zeile eine 1. Dann kommt die nächste Tabelle USA, kopier dort wieder alles raus, füge es unter die Daten von Deutschland, bei Land kommt nun hinter jeden USA Datensatz eine 2. Usw. bis alle Tabellen durch sind und Du eine einzige lange Tabelle hast. Bei den Länderzahlen orientiere Dich an der jeweiligen ID aus der tblLänder aus Access...

Lösche dann in der Tabelle den Stoffnamen.

Es sollte übrig bleiben:
Stoffnummer, Limit, LimitTotal, Land

Dann erstell die tblVerknüpfung in Access mit den Feldern

IdVerknüpfung, Stoffnummer(kurzer Text), Limit (Zahl), LimitTotal (Zahl), LandID (Zahl)

Meld Dich, wenn das fertig ist. Noch nix in Access reinkopieren.

@Maggi Als Fremdschlüssel würde ich erstmal die StoffNummer nutzen. Ich denke, dass reicht aus. Stoffnamen dann später löschen, wenn die Tabelle in Access soweit steht, dann könnte man auch auf die Id´s wechseln als FS.
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,

dies hab ich ebenfalls schon gemacht gehabt, anbei wieder ein Screenshot wie die Tabelle aussieht die du vorgeschlagen hast wenn ich den Vorschlag richtig umgesetzt habe :)

datekk

#26
ok, warum sind nicht überall die Limit werte? Wenn Du extra Tabellen für z.B. Deutschland hast müssten doch auch nur die für Deutschland gültigen Stoffe auftauchen mit den jeweiligen Limits. Warum gibt es Einträge ohne Limit? Was bedeutet das? Limit = 0 für das Land?
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

Das ist richtig, kein Eintrag = kein Limit. Wie kann ich denn nun am besten weiter machen ? :)

MaggieMay

Ich glaube, ich hatte es schonmal gesagt: Ich halte die tblStoffeLänder für überflüssig, die solltest du entfernen. Du hast Länder und die Stoffe und dann die Verknüpfung von beidem zwecks Erfassung der landesspezifischen Limits - das genügt.
Freundliche Grüße
MaggieMay

David

Zitat von: MaggieMay am April 12, 2016, 15:30:54
Ich glaube, ich hatte es schonmal gesagt: Ich halte die tblStoffeLänder für überflüssig, die solltest du entfernen. Du hast Länder und die Stoffe und dann die Verknüpfung von beidem zwecks Erfassung der landesspezifischen Limits - das genügt.

Ja hast du :) ich bin grade etwas durcheinander und weiß ehrlich gesagt nicht wie ich jetzt weiter machen kann/soll.
Wenn ich dann eine Abfrage erstelle und daraus ein Formular, kann ich in diesem nicht in dem Feldern etwas eintippen da Access sagt "Diese Datensatzgruppe kann nicht aktualisiert werden".

Die Abfrage und Verknüpfung mit entstandenen Formular hab ich wieder als Screenshot beigefügt.

Danke :)