2017-12-01 1 views
0

Momentan werden Eigenschaftenblock- und Chargeninformationen in separaten Eingabefeldern in unsere ms-access-Datenbank eingegeben, die dann eine Tabelle auffüllen. Eine Box für Block und eine für viele. Wenn eine Anwendung einen Block, aber mehrere Lose enthält, gibt der Benutzer die Losinformationen getrennt durch Kommas ein.Unnest Zeile in MS-Access?

So:

Table Example

Die Tabelle am Ende sehr chaotisch ist und kann nicht richtig abgefragt werden. Gibt es eine Möglichkeit in ms-access, den Benutzer die Daten durch Kommas getrennt einzugeben, aber die Zeilen in der Tabelle zu vereinheitlichen, so dass jeder Block und jedes Los eine eigene Zeile hat?

So:

After Table

+0

Sie mehrwertig Felder versuchen könnten. von dem, was ich Ich habe gelesen, dass sie nicht brilliant sind - sie platzieren die mehrwertigen Teile einfach in versteckten Tischen. Grundsätzlich was du versuchst zu tun, aber versteckt in den inneren Funktionen von Access (und dann wirklich schwer deine DB auf ein echtes System zu übertragen). Wie auch immer, hier ist ein Link - [Leitfaden für mehrwertige Felder] (https://support.office.com/en-gb/article/Guide-to-multivalued-fields-7c2fd644-3771-48e4-b6dc-6de9be bbec31) –

+0

Teilen Sie die Daten auf dem Komma, Schleife und fügen Sie eins nach dem anderen ein. –

+0

Wie von @Kostas vorgeschlagen, erstellen Sie eine normalisierte Tabellenstruktur und verwenden Sie dann VBA-Code, um die CSV-Eingabe des Benutzers in der Tabelle zu speichern. Dies hängt jedoch von der Benutzerkonsistenz ab - wenn sie vergessen, ein Komma einzugeben, geht der ganze Ansatz zur Hölle. Und das Teilen auf Räume hat das gleiche Risiko. So sehr ich MVF nicht mag, wäre es vorzuziehen. – June7

Antwort

0

Zur Erleichterung später abzufragen, ich habe nie viel Glück mit mehrwertig Felder und eine Schleife kann besser auf beiden Kommata und Leerzeichen getrennt arbeiten sicher zu sein. Ich würde eine Aussage haben, die alle Kommas, gefolgt von Leerzeichen zuerst ",", dann alle Kommas allein herauszieht, dann nach irgendwelchen Leerzeichen suchen. Danach können Sie Ihrem Benutzer einen Bestätigungsbildschirm geben, wenn sie mehr als ein Los eingeben, um ihre Eingabe zu bestätigen. Etwas einfaches, wie in obigem Beispiel, würde auftauchen und sagen: "Du hast 3 Gesamtlose eingegeben (7, 9 und 13), ist das korrekt? Und wenn sie" nein "sagen, kannst du ihnen das Anmeldeformular zurückgeben ihr Eintritt.

Nur so ein Gedanke. Lassen Sie mich wissen, ob das hilft. auch, wenn Sie Screenshots das Eingabeformulars zur Verfügung stellen können ich in der Lage sein könnte, weiteren Coaching zur Verfügung zu stellen.