我有一个名为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