Benutzung auf eigene Gefahr ! |
Beschreibung |
Mit dieser Funktion können alte Datensätze aus einer Datenbank entfernt und in einer anderen Datenbank gesichert werden. daurch können alte Daten regelmäßig aus der Datenbank entfernt werden (z.B. nach einem Jahresabschluß) und die Leistungsfähigkeit der Datenbank bleibt erhalten. Andererseits kann jede Änderung durch Aufruf der Funktion so protokolliert werden. Die Funktion verschiebt Datensätze in eine andere Tabelle, die auch in einer anderen Datenbank liegen kann. Voraussetzung für die korrekte Funktion ist, dass die ZielTabelle wie die Quelltabelle aussieht, ausgenommen
|
VBA-Quelltext |
Private Declare Function GetComputerName Lib "kernel32" (ByVal lpBuffer As String, nSize As Long) As Long Public Sub MoveRecordSets(QuellTab As String, ZielTab As String, Optional WHERE As String, Optional ZielDB As String, Optional Benutzer As String, Optional LogDatum As Date) Dim FROM As String, TempName As String If LogDatum = 0 Then LogDatum = Now If Benutzer = "" Then TempName = Space$(255) GetComputerName TempName, 255 Benutzer = Left(TempName, InStr(TempName, vbnullchar) - 1) & DBEngine.Workspaces(0).UserName End If FROM = " * FROM [" & QuellTab & IIf(WHERE = "", "];", "] WHERE (" & WHERE & ");") DoCmd.SetWarnings False On Error GoTo FehlerBeimVerschieben DBEngine.BeginTrans DoCmd.RunSQL "INSERT INTO [" & ZielTab & "] ([LogDatum], [LogUser]) " _ & IIf(ZielDB = "", "", " In '" & ZielDB & "' ") & "SELECT " _ & CSql(LogDatum, dbDate) & " As [LogDatum], """ _ & Benutzer & """ As [LogUser]," & FROM DoCmd.RunSQL "DELETE" & FROM DBEngine.CommitTrans Exit Sub FehlerBeimVerschieben: DBEngine.Rollback MsgBox Err.Description End Sub |
Argumente der Funktion/Prozedur |
|
Anwendungsgebiete, Fehler und Warnungen |
Verwendet die DAO Objektbibliothek. Ab Access 2000 muss diese explizit im VBA-Editor über 'Extras' -> 'Verweise' als 'Microsoft DAO 3.6' (oder höher) eingebunden werden und vor die 'Microsoft ADO 2.1' (oder höher) Bibliothek gesetzt werden. |