Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Anfügeabfrage nur geänderte Werte anfügen

Begonnen von PePan, April 07, 2012, 19:43:56

⏪ vorheriges - nächstes ⏩

PePan

Hallo zusammen,

ich bin immer noch an einer Historie am basteln.

Ich habe im Anhang meinen jetzigen stand, jedoch mit dem Problem. dass der Primärschlüssel nur bei maximal  10 Feldern vergeben werden kann.
Meine originale Tabelle hat aber 28 Felder.
Im grunde, möchte ich eine Historie von allen eingegebenen Datumsfelder zu ABC haben.
Gibt es noch eine ander Lösung?


Gruss aus Köln

[Anhang gelöscht durch Administrator]

Hondo

Hallo,
du möchtest was machen?
Primarschlüssel hat doch nix mit Historie zu tun. Er kennzeichnet einen Datensatz eindeutig.
In 99.999% aller Fälle ist immer nur 1 Feld auch Primärschlüssel.
Alles andere sind Spezialfälle die ich selbst noch nie erlebt habe.

Ich schlag dir vor du erklärst erstmal was du genau machen möchtest, und was du mit Historie meinst.

Gruß Andreas

PePan

Hallo,

ich möchte, dass in der angehängten Tabelle die Datumsfelder bei einer Neueingabe in der Tabelle Origin, die Datumsfelder in der Tabelle Hist nicht überschrieben werden.
Das mit dem Fremdschlüssel habe ich nicht hinbekommen.

Gruss aus Köln

oma

Hallo,

ist es denn notwendig, dass mit 2 Tabellen zu machen?
Du könnest doch bei Änderungen immer einen neuen Datensatz anlegen u. hierbei die Werte des letzten DS benutzen bzw. ändern.
So hast du einen DS mit neuen Werten u. alle DS mit den alten Werten u. jeweils ein Änderungsdatum.

Gruß Oma
nichts ist fertig!

PePan

#4
Hallo,

ja das würde auch reichen.
Aber wie macht man (Mann) das?
Es sind 850 Datensätze und es müsste bei der Eingabe  (NachAktualisierung) ein neuer Datensatz angelegt werden.

Gruss aus Köln

oma

Hallo,

das könntest du z.B. so machen:

Erstelle in einem Formular eineSchaltfläche mit:

Private Sub Neu_Click()
Dim DB As DAO.Database, rs As DAO.Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset("tblOrigin")

   With rs
       .AddNew
       !Datum1 = DLookup("Datum1", "tblOrigin", "ID =" & DMax("ID", "tblOrigin"))
       !Datum2 = DLookup("Datum2", "tblOrigin", "ID =" & DMax("ID", "tblOrigin"))
       !DatumAktualisierung = Now
       .Update
       .Close
   End With
   
Me.Requery
DoCmd.RunCommand acCmdRecordsGoToLast


Damit wird ein neuer Datensatz angelegt mit den Werten des letzten DS u. du kannst die Werte beliebig aktualisieren.

Beim Formular öffen noch:

Private Sub Form_Open(Cancel As Integer)
Me.OrderBy = "ID"
Me.OrderByOn = True
End Sub


in der Tabelle tblOrigin musst du dazu noch eine ID als Autowert anlegen.


Gruß Oma
nichts ist fertig!