Fehlersuche Datenverlust
25.04.2026 02:44:29
emkaes
seit Dezember 2025 läuft ein Microsoft Surface im Dauerbetrieb in einem Vereinsheim. Eintragungen sind nur über Steuerelemente (ActiveX) möglich, da eine Tastatur nicht gewollt ist.
Das funzt soweit fast einwandfrei. Ab und wann werden bei Tabellenwechsel die Steuerelemente nicht gezeichnet, auch Workarounds zum Neuaufbau der Tabelle wie zoomen beim Sheet_Change_event etc verhindern das nicht zuverlässig, das ist aber nicht das Problem.
Die Eintragungen werden sowohl in der Exceldatei in einer intelligenten Tabelle als auch ( zur Sicherheit ) in einer LogDatei als csv abgelegt.
das soll über nachfolgenden Code erfolgen
Sub buchungen(strA As String, strB As String, strC As String, intNum As Integer)
Dim tbl As ListObject
Dim Spalte As Long, dblP As Double
Spalte = 1
Dim zeile As Long
Dim rng As Range
Dim filepath As String, csvLine As String, logFile As Integer
If InStr(1, strC, "0,33") > 0 Then
dblP = 1
ElseIf InStr(1, strC, "0,5") > 0 Then
dblP = 1.25
Else
dblP = 0.75
End If
'Tabelle einlesen
With Tabelle3
Set tbl = .ListObjects(1)
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile definieren
zeile = tbl.DataBodyRange.Rows.Count
With tbl.DataBodyRange
.Cells(zeile, 1).Value = zeile
.Cells(zeile, 2).Value = Date
.Cells(zeile, 3).Value = strA
.Cells(zeile, 4).Value = strB
.Cells(zeile, 5).Value = strC
.Cells(zeile, 6).Value = intNum
.Cells(zeile, 7).Value = dblP
.Cells(zeile, 8).Value = intNum * dblP
End With
End With
' Logfile (CSV-Datei) als Backup ergänzen
filepath = "C:\Users\Logfile.csv"
' CSV-Zeile vorbereiten
csvLine = Date & ";" & strA & ";" & strB & ";" & strC & ";" & intNum * dblP
' CSV-Datei öffnen und neue Zeile anfügen
logFile = FreeFile
Open filepath For Append As logFile
Print #logFile, csvLine
Close logFile
End Sub
Jetzt musste ich leider feststellen, dass mir im Listobject der Tabelle3 ca 500 Datensätze fehlen. Insgesamt sind in der csv-Datei 1217 Einträge, das Listobject hat lediglich 729 Einträge.
Eine mögliche Ursache kann natürlich sein, dass das logFile für jeden Eintrag geöffnet und geschlossen wird, während die ExcelDatei geöffnet bleibt. Hier auch nach jedem Eintrag zu speichern ließe sich ja relativ einfach bewerkstelligen.
Habt ihr für den geschilderten Datenverlust hinsichtlich ListObject oder Microsoft Surface ggfs. irgendwelche Erkenntnisse?
Vielen Dank für eure Bemühungen
emkaes
Anzeige