PDA

Vollständige Version anzeigen : Zurückholen gelöschter Daten ?


henner
15.02.2001, 10:05
Hallo !

Nehmen wir mal an ich hätte 5 Datensätze in einer Tabelle gelöscht. Gibt es eine Möglichkeit, diese Datensätze zurück zu holen ? Bis zum nächsten Komprimiren müssten die alten Datensätz doch noch da sein, oder ?

Thx Henner

Nockenwelle
15.02.2001, 20:26
Hallo,

geb' den Daten doch einen Delete-Status und setz in deinen Forms einen Filter darauf auf.
Dann tauchen so Probleme nicht auf.

Cu

henner
16.02.2001, 08:26
Hallo, Nockenwelle !

Ich habe ueberlegt, ob man eine solche Undo-Fkt evtl. nach aussen nutzen kann.
Wie meinst Du das mit dem delete Status ?

MfG Henner

Günther Kramer
16.02.2001, 09:55
Hallo henner,

ich kenne nur eine Funktion, um gelöschte Tabellen wieder zurückzuholen.

Function undo()

Dim db As Database, strTablename As String
Dim i As Integer, StrSqlString As String

Set db = CurrentDb()

For i = 0 To db.TableDefs.Count - 1

If Left(db.TableDefs(i).Name, 4) = "~tmp" Then
strTablename = db.TableDefs(i).Name
StrSqlString = "SELECT DISTINCTROW [" & strTablename & _
"].* INTO MyUndeletedTable FROM [" & strTablename & "];"
DoCmd.SetWarnings False
DoCmd.RunSQL StrSqlString
DoCmd.SetWarnings True
MsgBox "A table has been restored as MyUndeletedTable", _
vbOKOnly, "Restored"
GoTo Exit_undo
End If
Next i
MsgBox "No Recoverable Tables Found", vbOKOnly, "Not Found"

Exit_undo:
Set db = Nothing
Exit Function
Err_undo:
MsgBox Err.Description
Resume Exit_undo

End Function

Nockenwelle
17.02.2001, 22:57
Hallo Henner,

mit dem Delete-Status meinte ich, das man ein Feld einfügt, dass angibt, ob ein DS noch gültig ist.

Wenn ich die Funktion Löschen von einem Formular aus drücke, setze ich nur dieses Feld um (z.B. von 0 auf -1).
Wenn du die Formulare mit einer Abfrage belegst, must du natürlich die 'gelöschten' DS ausblenden.

Zum Wiederbeleben kannst du dann einfach den Wert wieder überschreiben.

Cu