Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: CadianKeyWarrior am März 28, 2024, 16:34:50

Titel: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 28, 2024, 16:34:50
Hallo,

ich arbeite seit einiger Zeit an einem Projekt und bin nun auf etwas gestoßen, bei dem ich nicht weiter komme. Ziel des Projekts ist eine möglichst komfortable Dateneingabe für Nutzer, die selbst nicht Accesskundig sind (wobei ich gefühlt auch noch dazu gehöre). Der Aufbau ist wie folgt: Ich habe eine recht umfangreiche Tabelle mit Produkten und deren zugehörigen Spezifikationen. Jedes Produkt hat zwischen 2-7 unterschiedliche Spezifikationen und für jede Spezifikation müssen vier Felder ausgefüllt werden. Ich habe nun also ein Formular erstellt, mit der Tabelle verknüpft und alle entsprechenden Felder der Tabelle ins Formular gezogen, so dass die Wert eingetragen werden können. Klappt so weit ganz gut, nur übersichtlicher als eine Excel-Tabelle ist es deswegen nicht.

Daher war die Idee ein Kombinationsfeld einzufügen, bei dem man per Dropdown das Produkt auswählt und dadurch dann die Anzahl der Felder auf dem Formular eingrenzt. Also mehrere normalisierte Tabellen erstellt mit IDs und Kombinationstabellen mit Referenzen wie es mir hier im Forum empfohlen wurde. Im Anschluss die entsprechenden Abfragen erstellt. Soweit klappt alles. Die Abfragen geben die gewünschten Spezifikationen wieder.

So weit, so gut. Jetzt will ich mit VBA die einzelnen Textfelder ansteuern und ihre Sichtbarkeit sowie ihre Position auf dem Formular ändern. Damit die benötigten Felder ganz oben am Formular angezeigt werden. Den Code hab ich schon geschrieben, klappt im kleinen auch so weit, aber die Verbindung von Abfrage und VBA will mir nicht gelingen. Ich habe sowohl versucht die Abfragen separat zu erstellen und dann im Code aufzurufen als auch die SQL-Abfrage direkt im Code zu schreiben, jeweils mit der Verwendung von Recordset. Hier bekomme ich jedoch den Laufzeitfehler 3061. Da die Abfragen für sich funktionieren, muss der Fehler an einer anderen Stelle sein.

Laut Recherchen ist es wohl oft problematisch, Kombinationsfelder vom selben Formular für die Abfrage als Parameter zu verwenden? Der Aufbau ist sozusagen: Formular, darauf das Kombinationsfeld, Abfrage1 verwendet das ausgewählte Produkt als Parameter und Abfrage2 gibt anhand der Ergebnisse von Abfrage1 die Spezifikationen zurück, welche ich dann in Variablen (oder einem Array) speichern möchte. Muss ich dann Abfrage1 noch triggern? Oder reicht es Abfrage2 zu triggern?
Gefühlt ist Access ein Loch ohne Boden und je mehr ich mich einlese, desto weniger verstehe ich es.

In kurz: Was ist der beste Weg, um Strings die von einer Abfrage zurückgegeben werden, in VBA weiterzuverwenden? Übersehe ich einen deutlich einfacheren Weg das ganze zu lösen?

Freundliche Grüße
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: ebs17 am März 28, 2024, 17:03:37
ZitatJetzt will ich mit VBA die einzelnen Textfelder ansteuern und ihre Sichtbarkeit sowie ihre Position auf dem Formular ändern.
Sehr unüblich. Nachprogrammierte "Dynamik" ist desweilen ein Zeichen von ungenügender Vorplanung und Strukturierung.

Zitat... Laufzeitfehler 3061. Da die Abfragen für sich funktionieren, muss der Fehler an einer anderen Stelle sein.
Offensichtlich hast Du Formularbezüge fest in die Abfragen eingebaut. Je nach konkreter Abfrageverwendung funktioniert das oder eben nicht. Im zweiten Fall kann die ACE den Formularbezug nicht in einen Wert auflösen und klagt daher über fehlende Parameter.
Was ist der "beste" Weg, um Parameter zu übergeben? Es kommt darauf an.
Grundlagen - SQL ist leicht (16) - Abfragen mit Parametern (https://www.ms-office-forum.net/forum/showthread.php?t=374336)
Um Inhalte von Abfragen nach VBA zu transportieren, bleibt nur ein Recordset und dessen Auswertung, oder die Abkürzung über Domänenaggregatfunktionen (DLookup & Co.), die aber dann nur jeweils einen Wert zurückgeben können.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: DaWei am März 29, 2024, 12:47:12
..falscher Eintrag. Sry
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 29, 2024, 13:05:30
Hallo Eberhard, danke für deine Antwort.

Zitat von: ebs17 am März 28, 2024, 17:03:37Sehr unüblich. Nachprogrammierte "Dynamik" ist desweilen ein Zeichen von ungenügender Vorplanung und Strukturierung

Hast du einen Alternativvorschlag, wie du in meinem Fall vorgegangen wärst?

Danke für dein Link. Ich hab mir zuvor bereits Teil 19 deines Tutorials zu Gemüte geführt und werd mir nun diesen Part durchlesen. Immerhin weiß ich jetzt, wonach ich ausschaut halten muss.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: ebs17 am März 29, 2024, 16:48:37
Deinen Fall kenne ich nicht.
Man könnte sich aber für die Felder genauer interessieren, die da verschoben/versteckt werden sollen. Was haben die für ein Problem?
Meistens schaut man sich das gut durchdachte Datenmodell (Beziehungsbild) an. Dort beginnt nämlich Planung, und nicht selten liegen dort die ersten Baustellen.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 30, 2024, 15:49:09
Mein Fall ist, dass ich die Dateneingabe, die bisher in Excel stattgefunden hat, nun in Access machen möchte. Anstelle sich durch hunderte Spalten von Spezifikation zu scrollen, sollen nur die benötigen angezeigt werden. Gefühlt sollte Access doch prädestiniert dafür sein? Ich bin jedoch noch eher ein Anfänger in Access und schlag mich jetzt seit Wochen mit ChatGPT, Youtubetutorials und sonstigem durch, komme aber einfach auf keinen grünen Zweig. Für 1-2 Sätze wie du diesen Fall angehen würdest, wäre ich also sehr dankbar.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: Beaker s.a. am März 30, 2024, 16:30:18
Hallo,
Poste ein Bild des Beziehungsfensters. Vorher wird da keiner Hilfe
leisten können.
Ich vermute, dass die Beziehung(en) zwischen Spezifikationen und
Produkten nicht korrekt angelegt ist/sind, wenn überhaupt vorhanden.

gruss ekkehard
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am März 30, 2024, 16:37:14
Hallo,
beschreibe die Tabelle(n) und deren Felder genauer. Mit einer Tabelle wird das bei Access ohnehin nicht funktionieren. Man kann auch nicht so ohne weiteres eine Excel Tabelle nach Access übertragen. Access Tabellen erfordern einen völlig anderen Aufbau als Exceltabellen. Das ist nicht vergleichbar, noch nicht mal ansatzweise.
Du brauchst eine Tabelle für die Produkte, eine Tabelle für die Spezifikationen und eine Tabelle zur Zuordnung der Spezifikation und die jeweilgen Werte. Mal als ganz grobe Einschätzung.
Alle Tabellen brauchen auch Beziehungen, dazu sind die Primärschlüssel und die jeweilgen Fremdschlüssel in Beziehung zu setzen.
Ohne diese Tabellenaufteilung und Beziehungen wirst Du mit Access nicht zum Ziel kommen.

Bei korrektem Aufbau der DB wirst Du hier zunächst mal kein VBA benötigen. Und Felder verschieben und unsichtbar/sichtbar machen wirst Du mit Sicherheit auch nicht benötigen. Auch irgendwelche Trigger und sonstige Scherze sind überflüssig.

@Ekkehard
So wie ich das lese, gibt es nur eine Tabelle und somit auch keine Beziehungen.
ZitatIch habe eine recht umfangreiche Tabelle mit Produkten und deren zugehörigen Spezifikationen.
@CadianKeyWarrior
Hatten wir das Thema nicht schon mal ? Du wolltest dort auch noch antworten.

ZitatAuch wenn ich womöglich erst in ein paar Tagen antworte,
Das war am 23.01.2024 als vor ca. 2 Monaten.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: ebs17 am März 30, 2024, 17:40:08
ZitatAnstelle sich durch hunderte Spalten von Spezifikation zu scrollen, sollen nur die benötigen angezeigt werden.
In der Datenbank haben Felder (Spalten) einen Namen. Du verwendest im Eingabeformular nur die Namen der benötigten Felder. Das wäre dann sehr schön statisch.
Blöd wäre dann nur, wenn man nicht weiß oder fixieren kann, was "benötigt" wird. Dann wäre die Planlosigkeit schon mächtig eingestiegen.

"hunderte Spalten" ... bei 256 ist Schluss. Ansonsten ist Datenmodellierung ein Thema. Höre auf Klaus, oder suche Dir ein anderes Hobby, wo Realität und Dein Wunschdenken besser zusammenpassen.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 30, 2024, 20:25:45
Zitat von: Beaker s.a. am März 30, 2024, 16:30:18Hallo,
Poste ein Bild des Beziehungsfensters. Vorher wird da keiner Hilfe
leisten können.

Gerne, hier bitte.

@MzKlMu:
Korrekt ich hatte hier schon mal nach Rat gefragt. Es ging um dasselbe Projekt, jedoch eine andere Baustelle die ich mittlerweile lösen konnte. Ich habe vergessen es auf gelöst zu setzen, sorry. Dabei hast du mir geraten die Tabelle entsprechend aufzuteilen. Dies habe ich dann gemacht. Es gibt jetzt eine Tabelle mit Lieferanten, Produkten, eine mit Spezifikationen und eine Verbindungstabelle (pro Produktgruppe, wovon es vier gibt). Alles mit Schlüssel und Fremdschlüssel und hoffentlich richtig in Beziehung zueinander gesetzt. Die ursprüngliche Tabelle aus Excel ist in etwa so aufgebaut wie im Anhang gezeigt.

Zitat von: ebs17 am März 30, 2024, 17:40:08Höre auf Klaus, oder suche Dir ein anderes Hobby, wo Realität und Dein Wunschdenken besser zusammenpassen.


Es geht mir nicht darum, stur mein »Wunschdenken« durchzusetzen. Ich möchte lernen, was die beste Lösung oder zumindest eine gute Lösung ist. Wenn ich bisher etwas unsinniges oder falsches gemacht habe, dann weil ich es nicht besser wusste.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: ebs17 am März 30, 2024, 21:03:22
Warum gibt es jeweils vier gleiche Tabellen?
Mit einem zusätzlichen Feld für das verborgene Attribut kommt man auf eine.
Nebenbei: Welche geheimzuhaltenden Informationen lauern in Tabellennamen?

Die "Liste" sieht aus wie eine Kreuztabelle. Die gibt es nicht lt. Beziehungsbild. Was soll diese irritierende Information? Die "Liste" ist vmtl. erzeugbar über eine Kreuztabellenabfrage, die ist aber zum Eingeben gänzlich ungeeignet (interne Gruppierungen und so ...).

So etwas ist schick zum Anschauen, aber zum Arbeiten in einer relationalen Datenbank ungeeignet. Zu Eingabe & Co. orientiere Dich an Tabellen und entsprechenden Formularlösungen für m:n-Beziehungen. Damit kommst Du auch dem genannten Ziel näher.
ZitatZiel des Projekts ist eine möglichst komfortable Dateneingabe für Nutzer


ZitatIch möchte lernen, was die beste Lösung oder zumindest eine gute Lösung ist.
Vorschläge im Forum entsprechen meist Best Practice.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am März 30, 2024, 23:48:09
Hallo,
Dein Tabellenaufbau ist unbrauchbar. Er entspricht auch nicht den Vorschlägen. Das kannst Du in die Tonne treten (sorry).

Wie unterscheiden sich die jeweils 4 gleich aufgebauten Tabellen ?
Wo willst Du bei dem gezeigten Aufbau Werte eintragen, da gibt es keine Felder dazu.

Wenn man in Tabellen und/oder Feldnamen Teile schwärzen muss um keine Geheimnisse zu erkennen, hat man sowieso was falsch gemacht.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 31, 2024, 13:26:11
Die vier Tabellen gibt es, weil es vier Produktgruppen gibt. Die Produktgruppen sind auch die verborgenen Bereiche. Ich hab für jede Produktgruppe ein Formular. Die Formulare basiere auf der ursprünglichen Liste aus Excel, geben auch die Textfelder auf den Formularen vor (also Spezifikation Wert1 usw.) in die man einträgt und mit dem Button neuem Datensatz hinzufügen dann zur Liste hinzufügt. Was so weit auch funktioniert. Der Anhang »Liste« soll nur zeigen wie diese Liste aufgebaut ist.

Ich habe also Beispielsweise das Formular für Produktgruppe A. Auf dem Formular sind alle Spezifikationsfelder die für Gruppe A von Bedeutung sind z.B. Spezifikation 1-20. Nun wählt der Benutzer Produkt xy aus, welches Spezifikation 1,5,8 braucht, dementsprechend sollen nur noch die Felder für die Spezifikationen übrig bleiben. Das ganze Thema mit den Beziehungen dient also nur dazu das zu filtern.

Zitat von: MzKlMu am März 30, 2024, 23:48:09Dein Tabellenaufbau ist unbrauchbar. Er entspricht auch nicht den Vorschlägen. Das kannst Du in die Tonne treten (sorry).

Schade, ich hatte es zwar schon befürchtet aber doch irgendwie gehofft, dass ich es zumindest verwenden kann und nicht nochmal alles neu machen muss.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: ebs17 am März 31, 2024, 13:49:10
Ist es für Dich nachvollziehbar, dass, wenn man filtern kann, man mit einer Tabelle und aufbauend auch mit einem Formular viel besser klarkommt, als mit mehreren getrennten Tabellen?

ZitatDie Formulare basiere auf der ursprünglichen Liste aus Excel
Wenn Du Excel in Access nachbaust: Wäre es nicht besser, zum "Original" zurückzukehren?

Wenn dann doch DatenbanK Don't use Yes/No fields to store preferences (http://www.allenbrowne.com/casu-23.html)
Eine Spezifikation ist also sinngemäß keine Spalte, sondern ein Datensatz. Keine Spezifikation => kein Datensatz. Neues kann man einfach unten anfügen. VBA-Rochaden sind sind an der Stelle unnötig.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am März 31, 2024, 13:59:12
Hallo,
ZitatDas ganze Thema mit den Beziehungen dient also nur dazu das zu filtern.
Nein, die Beziehungen sind für eine Datenbank das A+O, mit Filtern hat das nichts zu tun.

Du brauchst eine Tabelle für die Produktgruppen, eine Tabelle für die Produkte. Diese Tabelle bekommt dann einen Fremdschlüssel zur Produktgruppe. Dann brauchst eine weitere Tabelle in der die zutreffenden Spezifikationen einem Produkt zugeordnet werden.
Und dann braucht es schließlich auch noch eine Tabelle zur Erfassung der Spezifikationswerte des Produktes.

Wenn das alles richtig gemacht ist, wirst Du keine Felder ausblenden müssen. Es werden automatisch nur die Felder gezeigt die einer Produktspezifikation zugewiesen sind. Du brauchst auch keine 4 Formulare, das lässt sich alles mit einem Formular mit einem Unterformular problemlos erfassen.
Bis zu diesem Zeitpunkt wirst Du auch kein VBA brauchen, keinen Buchstaben.

Von dem was Du bis jetzt hast wirst Du nichts verwenden können, Du musst noch mal von vorn anfangen.

Hier mal ein Link zu einem Tutorial:
https://www.access-tutorial.de/

Bevor Du weitermachst, beschäftige Dich damit. Mit dem jetzigen Konzept wirst Du nicht zu einer einfachen Bedienung kommen.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 31, 2024, 16:57:22

Verstehe, dann werde ich mich von dem Konzept der vier verschiedenen Tabellen verabschieden.

Der neue Aufbau wären dann quasi:
Ein Formular mit Kombinationsfeldern zur Auswahl von Produktgruppen und Produkten. Welches wiederum ein Unterformular mit der Tabelle zum Eintragen öffnet. Da diese mit den anderen Tabellen durch Schlüsseln in Verbindung steht, werden mir nur noch die benötigten Spezifikationen angezeigt.

Zitat von: MzKlMu am März 31, 2024, 13:59:12Dann brauchst eine weitere Tabelle in der die zutreffenden Spezifikationen einem Produkt zugeordnet werden.

Wie würdest du diese Tabelle aufbauen? Angenommen Produkt A hat Spezifikation 1,2,3. Bisher hatte die Tabelle dann 3 Datensätze. Jeweils mit Produkt + Spezifikation. Ist das so Korrekt oder lege ich einen Datensatz immer mit dem Produkt und allen Spezifikationen an?

Zitat von: MzKlMu am März 31, 2024, 13:59:12Von dem was Du bis jetzt hast wirst Du nichts verwenden können, Du musst noch mal von vorn anfangen.

Schade, dann kommt da morgen wohl eine Nachtschicht auf mich zu.

Zitat von: MzKlMu am März 31, 2024, 13:59:12Bevor Du weitermachst, beschäftige Dich damit.


Danke, darin hab ich schon ein paar mal gelesen, anscheinend nicht gründlich genug.

Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am März 31, 2024, 18:03:05
Hallo,
ZitatEin Formular mit Kombinationsfeldern zur Auswahl von Produktgruppen und Produkten.
Nein, es wird nur das Produkt ausgewählt, die Produktgruppe ergibt sich automatisch da es beim Produkt einen Fremdschlüssel (FS) zur Gruppe gibt und die Gruppe somit automatisch bestimmt ist.
ZitatAngenommen Produkt A hat Spezifikation 1,2,3
Dazu ist wie gesagt diese Zuordnungstabelle notwendig.
Dort gibt es ein FS zum Produkt und ein FS zur zutreffenden Spezi.

Kannst Du bitte mal diese Spezi beschreiben ?
Müssen da Werte erfasst werden die für Produkt A unterschiedlich sein können ?
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am März 31, 2024, 18:26:23
Zitat von: MzKlMu am März 31, 2024, 18:03:05Nein, es wird nur das Produkt ausgewählt, die Produktgruppe ergibt sich automatisch da es beim Produkt einen Fremdschlüssel (FS) zur Gruppe gibt und die Gruppe somit automatisch bestimmt ist

Achso, ich dachte dass man vielleicht durch die vorherige Auswahl der Produktgruppe die Auswahl an Produkten einschränken könnte.

Zitat von: MzKlMu am März 31, 2024, 18:03:05Dazu ist wie gesagt diese Zuordnungstabelle notwendig.
Dort gibt es ein FS zum Produkt und ein FS zur zutreffenden Spezi

Genau das mit der Zuordnungstabelle und FS hab ich verstanden. Nur weiß ich nicht wie ich die Tabelle an sich aufbaue. Um Beim Beispiel von vorhin mit Produkt A und Spezifikation 1,2,3 zu bleiben:

A / 1
A / 2
A / 3

oder:

A/ 1 / 2 / 3

Zitat von: MzKlMu am März 31, 2024, 18:03:05Müssen da Werte erfasst werden die für Produkt A unterschiedlich sein können ?

Ja und nein Spezifikation kann z.B. Farbe sein, dann sind die Werte für alle Produkte A gleich. Es kann aber auch sowas wie Viskosität mit sehr genauer Messung sein, dann unterscheidet es sich.

Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am März 31, 2024, 19:41:39
Hallo,
die Version 1 des Tabellenentwurfs ist die Richtige.
ZitatAchso, ich dachte dass man vielleicht durch die vorherige Auswahl der Produktgruppe die Auswahl an Produkten einschränken könnte.
Ja, das geht, aber dann muss das Feld für die Gruppe ungebunden auf dem Formular sein.

Das mit den Spezifikationen ist mir noch nicht klar.

Du hast ProduktA mit der Farbe und Viskoität, das eine ist Grün und die Visko z.B. 2

Bleibt das dann gleich, oder, wenn das ProduktA wieder hergestellt wird kann das Rot als Farbe sein und 3 als Visko ?

Oder wie muss man sich das vorstellen ?
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: Beaker s.a. am April 01, 2024, 12:26:51
@klaus
ZitatHallo,
Zitat
Ein Formular mit Kombinationsfeldern zur Auswahl von Produktgruppen und Produkten.
Nein, es wird nur das Produkt ausgewählt, die Produktgruppe ergibt sich automatisch da es beim Produkt einen Fremdschlüssel (FS) zur Gruppe gibt und die Gruppe somit automatisch bestimmt ist.
Na ja, zur Erfassung neuer Produkte brauchst man es schon, und auch gebunden.
Zum Filtern muss dann ein zweites, gleiches und ungebundenes her.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am April 01, 2024, 13:45:59
Zitat von: MzKlMu am März 31, 2024, 19:41:39Du hast ProduktA mit der Farbe und Viskoität, das eine ist Grün und die Visko z.B. 2

Bleibt das dann gleich, oder, wenn das ProduktA wieder hergestellt wird kann das Rot als Farbe sein und 3 als Visko ?

Oder wie muss man sich das vorstellen ?

So in etwa. ProduktA wird zwar immer Grün sein, aber eine Charge hat eine Viskosität von 2,123456 und die nächste eine von 2,123455.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: MzKlMu am April 01, 2024, 13:54:19
Hallo,
jetzt kommt auch eine Charge vom Himmel gefallen. Das muss auch im Datenmodell berücksichtigt werden.

Damit sind wir doch aber wieder genau bei Deinem ursprünglichen Thema, mit dem Du nicht weiter gemacht hast..

https://www.access-o-mania.de/forum/index.php?topic=26958

Zitat aus dem obigen Thema:

ich sehe hier folgende Tabellen.

Zitat von: Klausich sehe hier folgende Tabellen.
1. Produkte
2. Chargen (mit FS zum Produkt)
3. Spezifikationen (alle die es gibt)
4. ProduktSpezi (FS zum Produkt, FS zur Spezi)
5. ChargeSpezi (FS zur Charge, FS zur Spezi, Feld für Messwert, ggf. Datum/Zeit)
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am April 01, 2024, 15:56:37
Zitat von: MzKlMu am April 01, 2024, 13:54:19Damit sind wir doch aber wieder genau bei Deinem ursprünglichen Thema, mit dem Du nicht weiter gemacht hast..

Da hast du absolut recht. Ich dachte zu Beginn dieses Themas noch, ich wäre schon einen Schritt weiter als, was sich nun jedoch als falsch herausgestellt hat. Aber dann mache ich mich jetzt mal ans Werk und setze die neuen/alten Erkenntnisse um.

Mit Folgender Tabelle habe ich meine Probleme:
5. ChargeSpezi (FS zur Charge, FS zur Spezi, Feld für Messwert, ggf. Datum/Zeit)

Das heißt der Aufbau mit Eintrag ProduktA sähe wie folgt aus:
FSCharge/FSSpezi/Messwert
10/1/grün
10/2/2,5
10/3/5,5

Also für jede Spezifikation die ein Produkt hat, wird ein neuer Datensatz hinzugefügt?
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: Beaker s.a. am April 01, 2024, 18:04:19
Und für jede Charge auch. Da würde ich dann auch den Wert
der Viskosität unterbringen.
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am April 01, 2024, 19:28:14
Alles klar, Danke. Das ist ja noch einiges an Arbeit die vor mir liegt^^
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am April 15, 2024, 14:54:45
Hallo zusammen,

ich wollte mich mal wieder melden und sicher gehen, dass meine Arbeit nicht umsonst ist. Deswegen anbei ein Bild meiner aktuellen Tabellen/Beziehungen. Ist das so korrekt?
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: Josef P. am April 16, 2024, 08:54:38
Hallo!

Im gezeigten Datenmodell ist über die Beziehungen nicht abgesichert, dass nur Spezifikationen vom Produkt in der jeweiligen Charge vorkommen dürfen.

Du könntest z. B. zum Produkt nur Viskosität und Farbe definiert haben und in der ChargenSpezi steht zur Charge nur die Dichte.
Falls das über das Datenmodell abgesichert sein soll, müsste man mit Doppelschlüssel arbeiten, was in der Bedienung etwas lästiger wird, als nur den Surrogat-Schlüssel zu verwenden.

Eine Kompromisslösung könnte sein, in der ChargenSpezi statt FSSpezifikation den Fremschlüssel auf 4ProduktSpezi.Schlüssel zu legen. Wobei dass dann nicht verhindert, dass eine Satz aus ProuktSpezi von einem anderen Produkt in der ChargenSpezi landet.

Du könntest aber auch einfach für dich festlegen: "Ich pfeiff auf die Absicherung im Datenmodell und sichere das im Programcode ab, dass keine nicht passenden Spezifikationseinträge gemacht werden."
Wichtig ist dabei nur, dass du weißt, dass im Datenmodell nicht alles abgesichert ist, falls es einmal zu Falscheinträgen kommt. ;)

BTW:
Schlüssel würde ich nicht als Namen für den Primärschlüssel verwenden.
Ich nehme dafür gerne id... gefolgt von der Tabellenkennung z. B.: "idChargenSpezi"
Genauso würde ich die Zahlen aus den Tabellennamen entfernen. Wenn du eine Abhängigkeit darstellen willst, könntest du das auch so umsetzen:

Spezifikationen
Produkte
Produkte_Spezi (=4ProduktSpezi)
Produkte_Chargen (=2ChargenFSPRodukt)
Produkte_Chargen_Spezi (=5ChargenSpezi=

Dann hast du die Namen passend gruppiert.
"_" steht als Symbol für 1:n-Tabelle/untergeordnete Tabelle


Gruß
Josef

Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: CadianKeyWarrior am April 16, 2024, 09:48:11
Hallo Josef viele Dank für deine Antwort. In dem Fall werde ich wohl auf die Absicherung pfeiffen.

Aktuell erschließt sich mir noch nicht ganz, wie es weiter geht. Ich habe ja ein Formular mit den entsprechenden Kombinationsfeldern um nach dem Produkt zu Filtern, sowie ein Unterformular, welches dann gefiltert wird. Nur welche Tabelle nehme ich als Datenherkunft für das Unterformular?
Titel: Re: Abfragewerte in VBA weiterverarbeiten
Beitrag von: Josef P. am April 16, 2024, 16:23:54
ZitatNur welche Tabelle nehme ich als Datenherkunft für das Unterformular?
Die zu Aufgabe des Unterformulars passt. ;)

Wenn du eine neue Charge anlegen willst, wird die Tabelle, in der die Chargen-Nummern verwaltet werden, nicht falsch sein.
Vielleicht nimmt du dann in das Chargen-Formular wieder ein Unterformular zur Eingabe der Spezifikationswerte usw.

Gruß
Josef