Datensätze durch Inkrementieren in einer Tabelle ändern
Hallo Zusammen,
Ich habe ein kleines oder auch großes Problem.
Ich habe zwei Tabelle, zwischen denen eine 1-n beziehung besteht.
Ich möchte diese jedoch in eine 1-1 Beziehung konvertieren. D.h. die Lizenzen die so heißen wie GE Auto-Abteilung, oder GE Papier-Abt.
sollen in GE Auto-Abteilung_1, GE Auto-Abteilung_2 ... GE Auto-Abteilung_n, und GE Papier-Abt._1 ... GE Papier-Abt._n umbenannt werden.
Ich wollte dazu ein Makro schreiben oder ein SQL-Statement bei dem man inkrementieren kann
Beim Makro scheiter ich daran einen richtigen Zugriff auf die Tabelle zu bekommen.
Beim SQL Statement an dem Inkrement.
Tabellen: User und Lizenz
User: Name - Lizenz
Hans - GE Auto
Peter - GE Auto
Willi - GE Papier
...
Lizenz: Liz_Name - Anzahl
GE Auto - 2
GE Papier - 1
...
Soll werden zu -->
User: Name - Lizenz
Hans - GE Auto_1
Peter - GE Auto_2
Willi - GE Papier_1
...
Lizenz: Liz_Name
GE Auto_1
GE Auto_2
GE Papier_1
...
Meine User Tabelle ist nun nach Lizenz vorsortiert.
Ich würde jetzt gerne einfach vorne Anfangen in der Tabelle und dann einfach immer zum nächsten Record gehen und dann die Lizenz um _1 .. _n ergänzen. Wenn sich der Name der Lizenz ändert dann den Zähler wieder auf 1 setzen.
Meine Frage ist nun:
Wie kann per Makro ich auf einen Datensatz in einer Tabelle zugreifen?
Vielen Dank für jede Hilfe
Antwort schreiben
Antwort 1 von Booyeoo vom 10.06.2019, 21:10 Options
Bisher:
Option Compare Database
Option Explicit
Function Lizenzen_Aendern()
Dim db As Database
Dim rst As Recordset
Dim i As Integer
Dim Lizname As String
Set db = CurrentDb
Set rst = db.OpenRecordset("User")
i = 0
Lizname = Me![Licence_BU]
MsgBox (Lizname & "Hallo")
End Function
' Hier wird das Me irgendwie nicht akzeptiert
Antwort 2 von lleopard vom 21.06.2019, 16:44 Options
Hallo Booyeoo
Das versteht ja kein Mensch, was du da willst...!!!
Set db = CurrentDb
Set rst = db.OpenRecordset("User")
i = 0
Lizname = Me![Licence_BU]
MsgBox (Lizname & "Hallo")
Was isn das für eine Funktion? Das Schlüsselwort Me funktioniert nur in Formularen. So wie es aussieht müßte da entsprechend des Tabellenverweises nicht Me sondern rst stehen?!
Und am Ende solltest du auch die Verweise wieder beenden:
rst.close
set rst = Nothing
set db = Nothing
"Meine User Tabelle ist nun nach Lizenz vorsortiert.
Ich würde jetzt gerne einfach vorne Anfangen in der Tabelle und dann einfach immer zum nächsten Record gehen und dann die Lizenz um _1 .. _n ergänzen. Wenn sich der Name der Lizenz ändert dann den Zähler wieder auf 1 setzen."
DAS klingt nach einer Schleife... aber wo ist die in deiner Funktion????
Einfach nochmal nachdenken und deine Frage mal so posten, daß man sie auch versteht...