online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon morpheus__85 vom 01.10.2019, 10:08 Options

Zuordnung ändern

guten morgen.

hätte da mal eine frage.
ich hab eine Tabelle

Kategorie..........Keyword..........Datum
Kinder................PlayStation...01.01.2007
Schuhe..............Flip Flops.......01.01.2007
Kinder................PlayStation.....02.01.2007
Schuhe..............Flip Flops........02.01.2007

dahinter folgen dann in einigen Spalten noch dazugehörige Werte. Das ist jetzt nicht so wichtig.
Es kann jetzt allerdings vorkommen, dass sich die Kategorie ändert z.B. dann bei Flip Flops Freizeitschuhe.
Wie kann ich das machen, dass ich in einem Formular z.B. die neue Kategorie eingebe und die Änderungen dann für ALLE Datensätze übernommen werden?
gruß
morpheus


Antwort schreiben

Antwort 1 von Pausenfueller vom 01.10.2019, 11:37 Options

Hallo,

um dazu Näheres sagen zu können, müsste man für eine dauerhafte Lösung die gesamte Datenbankstruktur und auch die Zielstellung der Datenbank kennen, grundsätzlich sollte man aber 'Stammdaten' und 'Bewegungsdaten' nicht in einer Tabelle führen.

Stammdaten wären z.B. Artikel, Kategorien, Personen usw., die jeweils in eigenen Tabellen zu führen sind und wiederum miteinander in Beziehung stehen.

Bewegungsdaten wären z.B. Zu- und Abgänge, die ihrerseits in einer Tabelle erfasst werden und mit den entsprechenden Stammdaten in Beziehung stehen.

Änderst du dann z. B. in den Stammdaten die Kategoriezuordnung für den Artikel 'Flip Flops', dann gilt diese Änderung für alle dem Artikel 'Flip Flops' zugeordneten Bewegungsdaten und eine Abfrage der Bewegungsdaten nach Kategorien würde diese Änderung an den Stammdaten unmittelbar berücksichtigen.

Falls deine Datenbank noch im Aufbau ist, solltest du mal über eine grundsätzliche Neugestaltung nachdenken. Mit der Trennung von Stamm- und Bewegungsdaten bist du wesentlich flexibler und im Laufe der Zeit wird sich bestimmt immer mal wieder die Notwendigkeit zu Änderungen oder Erweiterungen ergeben.

Gruß
Pausenfüller

Antwort 2 von morpheus__85 vom 01.10.2019, 11:55 Options

Hallo Pausenfüller,

es ist so.
Die Accessdatenbank dient als Basis für Excelpivots, da hier bereits mehr als 70.000 Datensätze vorhanden sind.
In der Tabelle habe ich wie oben als Beispiel gegen für jeden Tag diese Datensättze
Jetzt kann es aber manchmal vorkommen, dass sich eben die Kategorie ändert.
Ich bin soweit, dass ich die Daten ändern kann.
Ich mach das anhand eines Formulars.
In einem Kombinationsfeld, kann ich meinen Datensatz wählen z.B. die Flip Flops dann steht im Kombinationsfeld "Flip Flops" und in einem Textfeld wird autoamatisch die Kategorie angegeben z.B. Schuhe.
In einem Listenfeld habe ich alle Kategorien aufgelistet.
Wenn man jetzt im Listenfeld die gewünschte Kategorie anklickt, wird das textfeld geändert und die neue Kategorie in der Tabelle gespeichert.
Mein Problem ist aber, dass ich das für jeden Datensatz dann ändern müsste. Also für "Flip Flops" für den 01.01 und für "Flip Flops" für den 02.01 usw.
Ich hätte es aber gerne so, dass ich eben nur 1 mal die "flip flops" ändere und das für alle Datensätze übernommen wird.
Das speichern in der Tabelle wird dann mit folgendem VB Code erledigt:

Private Sub Kombinationsfeld_AfterUpdate()
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[ID] = " & Str(Nz(Me![Kombinationsfeld], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub


Das funktioniert aber eben nur für 1 Datensatz und nicht für mehrere.
Kann mir da jemand helfen?
Hab die Datenbank so übernommen und muss eben diese Änderung dran vornehmen.

gruß
morpheus

Antwort 3 von morpheus__85 vom 01.10.2019, 16:12 Options

hätte da mal noch eine Frage dazu...

gibt es die Möglichkeit, eine SQL Anweisung Variabel zu gestalten?
Wenn ich jetzt die Kategorie, von Datensätzen die FlipFlop als Keyword haben ersetzen wollen würde könnte ich ja sagen...

UPDATE tblDatenbasis
Set tblDatenbasis.Kategorie = 'Freizeitschuhe'
WHERE tblDatenbasis.Keyword = 'Flip Flops'

gibt es die Möglichkeit das ganze Variable zu gestalten?

z.B.

UPDATE tblDatenbasis
Set tblDatenbasis.Kategorie = txtNeueBezeichnung
WHERE tblDatenbasis.Keyword = txtKeyword

Ist sowas mögich bzw. wie müsste ich die Variablen einbauen, dass es funktioniert?
Danke für eure Hilfe

gruß
morpheus

Antwort 4 von morpheus__85 vom 01.10.2019, 16:14 Options

als Anmerkung.

ich würde eben gern ein Formular dann haben, wo ich ein Kombinationsfeld habe, wo ich mein Keyword aussuchen. In einem Textfeld soll mir dann die dazugehörige Kategorie ausgegeben werden. Das ist nicht das Problem.
Wenn ich dann in dem Textfeld die Kategorie ändere, z.B. von "Schuhe" auf "Freizeitschuhe" und dann auf einen Button klicke, sollte eben dann die SQL Anweisung ausgeführt werden.

Wenn es nicht über SQL funktioniert kann ich das ganze dann über ein Makro lösen und dann eben die Datensätze per Makro ansprechen?

gruß
morpheus

Ähnliche Themen

Matrixabfrage mit Excel
dstarr  16.04.2007 - 196 Hits - 1 Antwort

wie erstelle ich eine zuordnung in ordneroption
donfrank  23.01.2008 - 343 Hits -

systemsteuerung-zuordnung???
canis  23.05.2008 - 240 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026