[Access] 4 Felder einer Tabelle in ein neues Feld zusammenfügen

Krausesh

Mitglied
Grüsse,

ich habe folgendes Problem: Bei der Datenbankerstellung hatte ich mir leider nicht genügend Gedanken gemacht, deshalb besitzt eine Tabelle nun mehere Datumsfelder, wobei aber nur jeweils ein Datumsfeld pro Datensatz "gefüllt" ist. Nun die Frage: Wie schaffe ich es alle 4 Datumsfelder, in ein Neues zu vereinen? Über eine Antwort wäre ich natürlich sehr glücklich.

herzlichst
Krauses H
 
Versuch´s mal so:
Code:
Private Sub Befehl0_Click()
Dim Rs As DAO.Recordset

CurrentDb.Execute "ALTER TABLE Tabelle1 ADD Neu Date"

Set Rs = CurrentDb.OpenRecordset("Tabelle1")

Do Until Rs.EOF
Rs.Edit
If Rs!Datum1 <> "" Then Rs!Neu = Rs!Datum1
If Rs!Datum2 <> "" Then Rs!Neu = Rs!Datum2
If Rs!Datum3 <> "" Then Rs!Neu = Rs!Datum3
If Rs!Datum4 <> "" Then Rs!Neu = Rs!Datum4
Rs.Update
Rs.MoveNext
Loop

Rs.Close
Set Rs = Nothing

CurrentDb.Execute "ALTER TABLE Tabelle1 DROP Datum1"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP Datum2"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP Datum3"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP Datum4"

End Sub
Tabelle1 mußt Du mit Deinem Tabellennamen ersetzten.
Datum1 bis Datum4 mußt Du mit Deinen Feldbezeichnungen ersetzen.
 
hey herzlichen dank wincnc,

ich werde dass gleich mal die nächsten tage ausprobieren. dachte eigentlich man könnte es mit sql machen.... tausend dank, ich werde mich natürlich melden

krausesh
 
hey wincnc,

ich hab es soebend ausprobiert, doch leider funktioniert es nicht. Er sagt, dass "Then" folgen muss folgen. Ich glaube es liegt an der Schreibweise meines Datumnamens. Mein "Datum 1" lautet "Datum der Ehrung". Vielleicht liegt es an den Freizeichen.

herlichst

Krausesh
 
Ja das liegt an den Leerzeichen, aber es geht trotzdem.
Ändere den Code wie folgt ab.
Code:
Private Sub Befehl0_Click()
Dim Rs As DAO.Recordset

CurrentDb.Execute "ALTER TABLE Tabelle1 ADD Neu Date"

Set Rs = CurrentDb.OpenRecordset("Tabelle1")

Do Until Rs.EOF
Rs.Edit
If Rs![Datum der Ehrung] <> "" Then Rs!Neu = Rs![Datum der Ehrung]
If Rs![Datum der Ehrung2] <> "" Then Rs!Neu = Rs![Datum der Ehrung2]
If Rs![Datum der Ehrung3] <> "" Then Rs!Neu = Rs![Datum der Ehrung3]
If Rs![Datum der Ehrung4] <> "" Then Rs!Neu = Rs![Datum der Ehrung4]
Rs.Update
Rs.MoveNext
Loop

Rs.Close
Set Rs = Nothing

CurrentDb.Execute "ALTER TABLE Tabelle1 DROP [Datum der Ehrung]"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP [Datum der Ehrung2]"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP [Datum der Ehrung3]"
CurrentDb.Execute "ALTER TABLE Tabelle1 DROP [Datum der Ehrung4]"

End Sub
 
Hi wincnc,

herzlichen Dank nochmal für Deine schnelle Hilfe. Mit den Namen funktioniert es jetzt. Doch nun bekomme ich folgende Fehlermeldung, wenn ich den Code über eine Schaltfläche eines Formulars ausführe:
"Fehler beim kompilieren! Benutzerdefinierter Typ nicht definiert!"
Folgender Abschnitt ist dabei markiert:
"Private Sub Befehl0_Click()
Dim Rs As DAO.Recordset"

Leider stehe ich vor dem Code, wie ein Fisch vor einem Fahrrad! Vielleicht könntest Du mir einem Tipp geben, nach welchen Begriffen ich in der Hilfe nachschlagen sollte.

herzlichst
 
Du mußt einen Verweis auf Microsoft DAO 3.6 Object Library machen.
Gehe in die Code Ansicht.
Im Menü Extras -> Verweise - Microsoft DAO 3.6 Object Library anklicken.
 

Neue Beiträge

Zurück