【发布时间】:2014-04-15 06:12:39
【问题描述】:
我对 SQL 和 VBA 很陌生,所以请原谅下面的代码可能包含的任何大胆。我正在使用用 Excel 的 VBA 编写的代码。最终,来自 excel 用户表单的数据将输入到我使用 SQL Server 2008 创建的 SQL 数据库中。现在,我只是试图打开与 SQL 数据库的连接并将硬编码值输入到数据库中。不幸的是,这比我预期的要困难得多。我尝试过几种不同的方式来处理连接字符串,但没有运气。当表单运行时,我没有收到任何错误,并且可以看到数据已添加到适当的 Excel 工作表中(但 SQL DB 中没有更改)。我可以在 SQL Server Management Studio 上看到数据库并从那里添加行,但我无法通过此代码向数据库添加行。 db 仅受 Windows 身份验证保护。任何帮助将不胜感激。
Sub ConnectSqlServer()
'********SPC DATABASE CONNECTION**********************
'write slurry information to database
'spc_date, mix_type, slurry_lot_num, mixer_num, shift, oper
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
'Create connection string
sConnString = "Provider=sqloledb; Server=SERV; Database=db; Trusted_Connection=True;"
'Create the Connection and Recordset objects
Set oConn = New ADODB.Connection
Set rs = New ADODB.Recordset
'Open connection and execute
conn.Open sConnString
Set rs = conn.Execute("INSERT INTO TBL (col1, col2) VALUES ('val', 'val');")
'Clean up
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub
【问题讨论】:
-
你得到什么样的错误?请注意,
insert不会返回记录集。 -
我没有收到任何错误消息,但是当我转到 SQL Server Managment Studio 并查看表时,我可以看到我尝试添加到表中的值没有被添加
标签: sql sql-server-2008 vba database-connection excel-2010