我有一个电子表格设置连接到SQL Server通过ADO连接。它的工作原理是,一旦输入Excel,连接到SQL Server打开,然后我从Excel文档中抓取变量输入到数据库中。这是我的代码:
SQLConnect = "Provider=sqloledb;Integrated Security=SSPI;" & _
"Data Source=NCCHAR9PDS_SSQL; Database=MWPMO; " & _
"Persist Security Info=False;"
Conn1.ConnectionString = SQLConnect
Conn1.CursorLocation = adUseClient
Conn1.Mode = adModeReadWrite
Conn1.Open
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "UPDATE Input_Tracker SET " & varCol & " = NULL WHERE [ID] = " & varKey & ""
Cmd1.Execute
Cmd1.CommandText = "INSERT INTO Input_Changes(ID, TableName, ColumnName, OldData, NewData, UserID, DateTime) " _
& "VALUES('" & varKey & "','" & tblnm & "','" & varCol & "','" & Oval1 & "','" & varData & "','" & username & "','" & Now() & "')"
Cmd1.ExecuteConn1.Close
Set Conn1 = Nothing
我的问题是,不知何故,这段代码是锁定表在SQL服务器从每隔一段时间更新。我不是数据库管理员,但我确实让他们看了一下,他们无法找到任何人锁定表。我的代码是否有问题,以创建此间歇性问题?我能做什么?
好的,所以我做了更多的挖掘,显然,由于在Excel中的"获取外部数据源"数据连接中内置的选择语句,表被锁定。现在我想我需要弄清楚如何阻止表通过Excel锁定,除非有一种方法,我可以强制SQL服务器不允许锁定,这是可能的吗?
我认为这个问题可以通过VBA写一个链接到SQL服务器来解决。搜索进一步…