我有一個名爲Audit的SQL表。該表中有兩個字段叫UN和CN。我的服務器名稱是analive,DB是DW_ALL。我試圖在excel中捕獲訪問/打開我的工作簿或工作表的用戶名和計算機名,然後將該審計信息寫入我的SQL表。如何使用Excel VBA編寫SQL表
Sub UpdateTable()
Dim cnn As ADODB.Connection
Dim uSQL As String
Dim strText As String
Dim strDate As Date
strText = ActiveSheet.Range("b4").Value
''strDate = Format(ActiveSheet.Range("c4").Value, "dd/mm/yyyy")''
Set cnn = New Connection
cnnstr = "Provider=SQLOLEDB; " & _
"Data Source=icl-analive; " & _
"Initial Catalog=DW_ALL;" & _
"User ID=ccataldo;" & _
"Trusted_Connection=Yes;"
cnn.Open cnnstr
''uSQL = "INSERT INTO tbl_ExcelUpdate (CellText,CellDate) VALUES ('" & strText & "', " & strDate & ")"''
''uSQL = "INSERT INTO Audit (UN,CN) VALUES (MsgBox Environ("username"), MsgBox Environ("username""''
uSQL = INSERT INTO Audit (UN,CN) VALUES ('MsgBox Environ("username") ', 'MsgBox Environ("username"'))
Debug.Print uSQL
cnn.Execute uSQL
cnn.Close
Set cnn = Nothing
Exit Sub
End Sub
重讀您的文章;我不確定自己是否正確理解了您的問題。你可以發佈錯誤代碼,並告訴我們哪一行負責。 –
什麼是錯誤?如果要將工作簿與其他人共享,您是不是需要對用戶進行硬編碼?如果是這樣,不要忘記鎖定宏,使它們不可讀 - 但這不是不可破解的! https://stackoverflow.com/questions/272503/how-do-i-remove-the-password-from-a-vba-project – JiggsJedi
此外,你最好的選擇是創建一個SQL帳戶使用,並給它沒有權限,除了在爲你插入的存儲過程中執行。 – JiggsJedi