導航:首頁 > 編程大全 > vba連接mssql資料庫

vba連接mssql資料庫

發布時間:2023-10-07 01:03:29

❶ 求教VBA連接SQL資料庫的詳細方法及解釋。

1、基本上所有的資料庫都有對應的寫法(有些資料庫是要裝連接驅動才能連),比如"Provider=Microsoft.Jet.OLEDB.4.0(用來連接access)或者provider =MSDASQL,而且每種資料庫也可能會有多種連接方法(Provider意即資料庫引擎),常見的有下面這些

Provider 代碼 Provider
ADSDSOObject Active Directory Services
Microsoft.Jet.OLEDB.4.0 Microsoft Jet databases
MSDAIPP.DSO.1 Microsoft Internet Publishing
MSDAORA Oracle databases
MSDAOSP Simple text files
MSDASQL Microsoft OLE DB provider for ODBC
MSDataShape Microsoft Data Shape
MSPersist Locally saved files
SQLOLEDB Microsoft SQL Server
2、參見http://www.w3school.com.cn/ado/met_conn_open.asp#connectoptionenum
3、這樣就可以對book1.xlsx中的數據使用sql語法進行操作
4、當你需要返回結果的,比如說你要查詢資料庫符合某個條件的有幾條記錄,或者說取出資料庫中符合條件的一批記錄的時候就要用數據集,單一的conn.execute只能執行操作,不能返回數據,必須配合結果集使用才可取回數據。

❷ vba連接sqlserver資料庫問題

while( @beginMonth<=@endMonth)
begin
select
Execute
End With
Set rs.ActiveConnection = conn
rs.Open cmd
If rs.RecordCount > 0 Then
conn.ConnectionString = "Driver={SQL Server};server=HKTNSSK-SQ003;database=Microsoft CSS;Trusted_Connection=yes;"
conn.Open

❸ VBA通過ADO連接SQL資料庫,但是提示「無法鏈接到SQL資料庫 錯誤編碼 [67]」,問題在哪裡呢

67表示主機地址錯誤,你下面語句中的【伺服器名】要修改伺服器的機器名專、域名或者屬IP地址。

constr = "provider=sqlncli10.1;persist security info=false;initial catalog=yearsallshow;user id=sa;pwd=psw;data source=伺服器名"

所有錯誤代碼的含義見連接網頁:網頁鏈接

❹ 關於使用VBA連接SQL資料庫獲取數據時創建臨時表的問題

也這來樣。。。原因不明。不加臨時源表完全沒有問題。

哈哈哈哈,解決了 跟調用存儲過程的時候是相同的解決方案。
在語句前面加上 SET NOCOUNT ON
因為 往臨時表插入數據的時候會產生 影響行數 這種消息
SET NOCOUNT ON 能屏蔽這類信息。

❺ 誰能給我一個EXCEL VBA往SQL資料庫讀取和寫入記錄的例子

End Sub

❻ EXCEL VBA怎麼讀寫SQLSERVER 資料庫

Sub 按鈕1_Click()
Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數變數;sht 為excel工作表對象變數,指向某一工作表
'Dim cn As New ADODB.Connection '定義數據鏈接對象 ,保存連接資料庫信息;請先添加ADO引用
'Dim rs As New ADODB.Recordset '定義記錄集對象,保存數據表
工具 ---〉引用 ---〉Microsoft ActiveX data objects ....
'下面兩句就不需要增加引用ADO
Set cn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
Dim strCn As String, strSQL As String '字元串變數
Dim strCond As String
strCn = "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password" '定義資料庫鏈接字元串

'下面的語句將讀取數據表數據,並將它保存到excel工作表中:工作表為一張兩維表,記錄集也是一張兩維表

strSQL = "select CUSTOMER_NAME from VSC_BI_CUSTOMER " '定義SQL查詢命令字元串

cn.Open strCn '與資料庫建立連接,如果成功,返回連接對象cn
rs.Open strSQL, cn '執行strSQL所含的SQL命令,結果保存在rs記錄集對象中
i = 2

Set sht = ThisWorkbook.Worksheets("Test") '把sht指向當前工作簿的Test工作表
Do While Not rs.EOF '當數據指針未移到記錄集末尾時,循環下列操作
sht.Cells(i, 1) = rs("CUSTOMER_NAME") '把當前記錄的欄位1的值保存到sheet1工作表的第i行第1列
rs.MoveNext '把指針移向下一條記錄
i = i + 1 'i加1,准備把下一記錄相關欄位的值保存到工作表的下一行
Loop '循環
rs.Close '關閉記錄集,至此,程序將把某數據表的欄位1保存在excel工作表sheet1的第1列,行數等於數據表的記錄數

cn.Close '關閉資料庫鏈接,釋放資源
End Sub

❼ Excel 怎樣用VBA將數據導入到SQL資料庫

subtest()
Setcnn=CreateObject("ADODB.Connection")

Setrs=CreateObject("Adodb.Recordset")strCn="Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password"
cnn.OpenstrCn
SQL=""
cnn.OpenstrCn'與資料庫建立連接,如果成功,返回連接對象cn
rs.OpenSQL,cn'執行strSQL所含的SQL命令,結果保存在rs記錄集對象中
cnn.Close
Setcnn=Nothing

endsub

請參考

連接資料庫後,通過寫SQL語句實現增刪改查

❽ Excel VBA 連接SQL資料庫後的操作。

呵呵,以前就幫人家解決過這個,請看下面的代碼,有注釋的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODB.Connection '定義ADODB連接對象
Dim ConnStr As String '定義連接字元串
Dim xiao As String

xiao = ComData.Text

'對於SQL 2008,如果以IP方式訪問伺服器,必須要啟動SQL Server Browser服務,如果是Express版本,要以「IP(計算機名)\實例名」方式訪問
ConnStr = txtData.Text

Dim Records As New ADODB.Recordset '定義ADODB對象的記錄集
Dim Sheet As Worksheet '定義工作表

Set Sheet = ThisWorkbook.Worksheets("Sheet2") '給變數Sheet賦值,注意:是工作簿中索引為1的那個表(通常一個新的工作簿Sheet1的索引為1)
'Sheet.Name = "Data" '把Sheet名稱改為Data
Sheet.Cells.Clear '清空表中原有的數據

'連接狀態是打開就不在進行Open操作

Conn.Open ConnStr
Dim SQLStr As String '要執行的SQL語句
SQLStr = "select * from Shift_Code where Club='" + xiao + "'" '可以執行更復雜的SQL語句

Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '讀取SQL查詢結果到Records記錄集
'Records.Open
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count

'下面的循環把表頭(即列名)寫到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2.Cells(1, i + 1) = Records.Fields(i).Name
Next

'下面的循環把查詢結果寫到Excel表中
Do While Not Records.EOF

For i = 0 To TotalColumns - 1
Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next

Records.MoveNext
j = j + 1

Loop
Records.Close '關閉記錄集
Conn.Close '關閉連接

Set Records = Nothing '清空對象
Set Conn = Nothing '清空對象

End Sub

有什麼不懂的話Hi我!

閱讀全文

與vba連接mssql資料庫相關的資料

熱點內容
api源碼分享網站 瀏覽:511
小米復制文件找不到 瀏覽:959
什麼是網路層 瀏覽:73
如何利用編程做多文件數據合並 瀏覽:666
java如何用tcp發送16進制協議 瀏覽:975
js獲取當天 瀏覽:637
在什麼網站看戰狼2 瀏覽:881
win7桌面工具欄不見了 瀏覽:346
qq群幾個管理員 瀏覽:598
錄光碟怎麼找不到文件 瀏覽:885
flip5怎麼連app 瀏覽:273
五個g的文件怎麼傳到u盤 瀏覽:316
如何用編程編譯運行出心形圖案 瀏覽:486
linuxcentos64vpn 瀏覽:328
桔城pdf轉換成word轉換器 瀏覽:754
java數組排重 瀏覽:846
1703版win10 瀏覽:357
windows文件上傳 瀏覽:111
精通jsp編程技術 瀏覽:139
電腦軟體刪不了提示找不到文件 瀏覽:223

友情鏈接