[英]Excel 2003 VBA Write to SQL Server 2000 ADO
我們正在努力更改現有的excel表單,以將記錄發送到我們的SLQ服務器。
我們已經成功完成了使用DSN和ODBC清理捕獲數據並將數據寫入服務器的代碼。
scn = dsn=ODBC123
我們的目標用戶(其中有很多)正在使用excel 2003,並且每個終端上的ODBC連接都是不實際的。
這是我第一次使用ADODB。
在添加UID和通行證之前,我曾絆倒我的badSQL消息,但沒有從服務器收到錯誤消息。
現在,我得到運行時錯誤“ -2147467559(80004005)”:自動化錯誤未指定錯誤
你們中的一位女士和/或先生們會不會看一下並提供一些指導?
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ssql As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Const scn As String = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog="DB on Server";" & _
"Data Source="Server Name" & _
"User ID=Form;Password=nope;"
ssql = "sql statment that writes a record to a table using info in the excel form," & _
" writen in vb that has worked through an odbc"
With cn
.CursorLocation = adUseClient
.Open scn
.CommandTimeout = 0
Set rst = .Execute(ssql)
End With
On Error GoTo badsql:
rs.Open ssql, cn, adOpenStatic, adLockOptimistic
On Error GoTo badsql:
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
MsgBox ("This record was updated in the database and documented for" & _
" processing. Please close this workbook.")
badsql:
MsgBox ("This record was not processed please resubmit.")
Exit Sub'
我們似乎同時將rst
和rs
作為Recordset
對象。 我沒有看到一個聲明rst
在提供的代碼。
無論如何, ssql
的查詢字符串將運行兩次。 一旦執行,結果(如果有的話)返回rst
。 rs
打開的另一時間。
您可能只想運行一次查詢字符串,並且由於它似乎是INSERT
類型的查詢,因此您可能想使用cn.Execute
而不是rs.Open
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.