VBA SQL - Replace
25.08.2015 15:00:52
Sparrow
ich sitze nun schon ewig an einer Lösung, die eine History verschiedene Excel-Sheets in eine Access-Datenbank schreibt. (um zu überprüfen wer welches Sheet wann genutzt hat) In diesem Sinne hat jedes Sheet eine Eigenschafts-ID. Außerdem wird der Username sowie die Uhrzeit und das Datum abgefragt. Abschließend sollen diese Daten in eine Access-Tabelle geschrieben werden.
Nun die Schwierigkeit: Sind die ID sowie der User analog, soll keine neue Zeile in Access geschrieben werden, sondern es soll ein REPLACE stattfinden, dementsprechend dann mit aktualisierter Uhrzeit und Datum. Warum? Damit die Tabelle nicht ewig lang wird, so existiert lediglich ein Eintrag pro User pro Sheet.
Hier mein bisheriger Ansatz:
Sub test()
Dim Username As String
Dim ID As Integer
Dim Time As Date
Dim Datum As Date
Username = Environ("UserName")
ID = ThisWorkbook.CustomDocumentProperties("ID").Value
Datum = Format(Now, "yyyy.mm.dd")
Time = Format(Now, "hh:mm:ss")
Dim dbe As DAO.DBEngine
Dim db As DAO.Database
Dim SQL As String
Dim sThisDB As String
sThisDB = ThisWorkbook.Path & "\" & ThisWorkbook.Name
Set dbe = New DBEngine
Set db = dbe.OpenDatabase("test.mdb", False, False, ";pwd:test#")
SQL = "INSERT INTO Sheet(ID, Uhrzeit, Datum, Username) VALUES (" & ID & ", #" & Time & "#, ' _
" & Datum & "', '" & Username & "');"
db.Execute SQL, dbFailOnError
db.Close
End Sub
Wie gesagt muss hier noch irgendwie ein REPLACE integriert werden. Der Code funktioniert auf jeden Fall soweit. Falls jemand eine Idee hat- ich bin für alles super dankbar!Viele Grüße
Sascha