VBA中連接SQLSERVER數(shù)據(jù)庫(kù)例子
更新時(shí)間:2014年07月24日 10:16:43 投稿:junjie
這篇文章主要介紹了VBA中連接SQLSERVER數(shù)據(jù)庫(kù)例子,VBA是指Visual Basic for Applications,是Visual Basic的一種宏語(yǔ)言,需要的朋友可以參考下
我們?cè)谑褂胑xcel編程時(shí),很多時(shí)候都需要使用數(shù)據(jù)庫(kù)。
那么如何連接數(shù)據(jù)庫(kù)然后從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)呢?
VBA 連接 SQL SERVER 數(shù)據(jù)庫(kù) 實(shí)例:
Dim strConn As String, strSQL As String
Dim conn As ADODB.Connection
Dim ds As ADODB.Recordset
Dim col As Integer
'連接數(shù)據(jù)庫(kù)的字符串
strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[user];Password=[password];Initial Catalog=[database];Data Source=[數(shù)據(jù)庫(kù)IP地址或數(shù)據(jù)庫(kù)服務(wù)器名稱];Connect Timeout=720; "
'查詢語(yǔ)句,如果sql語(yǔ)句很長(zhǎng)可以用strSQL=strSQL+來(lái)連接分成多段的語(yǔ)句,如果語(yǔ)句很短可以只寫(xiě)在一行上。
strSQL = "select * from Hy_KPI_Shop_Dept_WeekRpt "
strSQL = strSQL+"where sdate='2014-01-01' order by sdate,shopid "
Set conn = New ADODB.Connection
Set ds = New ADODB.Recordset
'打開(kāi)數(shù)據(jù)庫(kù)連接
conn.Open strConn
'該句和數(shù)據(jù)庫(kù)連接字符串處的Connect Timeout=720,表示說(shuō)如果語(yǔ)句運(yùn)行時(shí)間很長(zhǎng),這兩句可以延長(zhǎng)vba的等待時(shí)間,沒(méi)有這兩句,vba往往會(huì)報(bào)查詢超時(shí)。
conn.CommandTimeout = 720
With ds
'根據(jù)查詢語(yǔ)句獲得數(shù)據(jù)
.Open strSQL, conn
'自動(dòng)控制加入所有列標(biāo)題
For col = 0 To ds.Fields.Count - 1
'請(qǐng)注意Offset(0, col)中的參數(shù)一定要正確,該句表示標(biāo)題將會(huì)寫(xiě)在第一行,從A1單元格開(kāi)始,如果不想寫(xiě)入標(biāo)題行,可將下面這句注釋掉。
Worksheets("門(mén)店各課KPI周報(bào)").Range("A1").Offset(0, col).Value = ds.Fields(col).Name
Next
'加入所有行數(shù)據(jù),該句表示查詢結(jié)果將會(huì)寫(xiě)在第一行,從A1單元格開(kāi)始,但是由于標(biāo)題行寫(xiě)在第一行了,所以實(shí)際這一行從標(biāo)題下的一行寫(xiě)入。
Worksheets("sheet1").Range("A1").Offset(1, 0).CopyFromRecordset ds
End With
'關(guān)閉數(shù)據(jù)庫(kù)連接和清空資源
Set ds = Nothing
conn.Close
Set conn = Nothing
您可能感興趣的文章:
- 刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法
- SqlServer修改數(shù)據(jù)庫(kù)文件及日志文件存放位置
- SqlServer2008 數(shù)據(jù)庫(kù)同步的兩種方式(發(fā)布、訂閱使用方法)
- VB語(yǔ)言使用ADO連接、操作SQLServer數(shù)據(jù)庫(kù)教程
- SqlServer數(shù)據(jù)庫(kù)提示 “tempdb” 的日志已滿 問(wèn)題解決方案
- 用Java連接sqlserver數(shù)據(jù)庫(kù)時(shí)候幾個(gè)jar包的區(qū)別分析
- SQLServer無(wú)法打開(kāi)用戶默認(rèn)數(shù)據(jù)庫(kù) 登錄失敗錯(cuò)誤4064的解決方法
- SQL SERVER數(shù)據(jù)庫(kù)表記錄只保留N天圖文教程
相關(guān)文章
VB實(shí)現(xiàn)鼠標(biāo)繪圖實(shí)例代碼
這篇文章主要介紹了VB實(shí)現(xiàn)鼠標(biāo)繪圖實(shí)例代碼,很實(shí)用的一個(gè)功能,需要的朋友可以參考下2014-07-07
VB簡(jiǎn)單實(shí)現(xiàn)防止文件被改寫(xiě)
這篇文章主要介紹了VB簡(jiǎn)單實(shí)現(xiàn)防止文件被改寫(xiě)的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06
淺談如何使用vb.net從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)
這篇文章主要介紹了淺談如何使用vb.net從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),使用VB提取數(shù)據(jù),是先查找,做成數(shù)組,再顯示到數(shù)據(jù)里,如果感興趣可以了解一下2020-07-07
VB鍵盤(pán)鼠標(biāo)無(wú)動(dòng)作調(diào)用程序的嘗試
這篇文章主要介紹了VB鍵盤(pán)鼠標(biāo)無(wú)動(dòng)作調(diào)用程序的嘗試,記錄下整個(gè)思路和過(guò)程,有需要的小伙伴可以參考下。2015-06-06
VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法
這篇文章主要介紹了VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法,比較實(shí)用的功能,需要的朋友可以參考下2014-07-07

