我已经使用此代码很长时间了,但是最近有一位客户问我是否可以将连接建立为只读连接,以确保在使用我的excel工具时没有数据被覆盖
从文件中读取数据时,有很多以前的文章解决了这个问题,但是在连接到数据库时我找不到任何答案(嗯,至少没有一个能奏效)。
我通常将代码放在类模块中,并在需要提交SQL的代码中将其变暗。在类模块中拥有它的伟大之处在于,在执行停止后,打开连接似乎没有任何问题。
任何人都不知道要添加到此代码中的内容,以确保该连接不能用于提交更新SQL吗?
是的,理想情况下,这将在SQL服务器上而不是在我的一端进行设置,但是...:)
Option Explicit
Public Connection As ADODB.Connection
Public Sub init()
Dim Server As String
Dim Database As String
Server = Worksheets("K").Cells(3, 3) ' <== This cell contains the name of the Database Server
Database = Worksheets("K").Cells(3, 4) ' <== This cell contains the name of the Database
Set Connection = New ADODB.Connection
With Connection
.Provider = "MSDASQL"
.ConnectionString = "DRIVER={SQL Server};SERVER=" + Server + ";DATABASE=" + Database
.ConnectionString = .ConnectionString + ";Trusted_Connection=Yes"
.CommandTimeout = 60000
.Open
End With
End Sub
Public Function RunSQL(SQL As String) As ADODB.Recordset
Set RunSQL = Connection.Execute(SQL)
End Function