一、excel怎樣與數(shù)據(jù)庫進行連接并可以直接在excel中操作數(shù)據(jù)庫中的表
名列前茅種是用Excel自帶的獲取外部數(shù)據(jù)功能,第二種是用Excel VBA,第三種是用專業(yè)的第三方插件。
1、用Excel自帶的獲取外部數(shù)據(jù)功能連接Sql Server數(shù)據(jù)庫
點擊“數(shù)據(jù)”->“自其他來源”->“來自Sql Server”->填寫登錄信息->選擇數(shù)據(jù)庫和表->下一步->完成。
2、用Excel VBA連接Sql Server數(shù)據(jù)庫
點擊“工具”->“引用”添加以下引用:
Microsoft ActiveX Data Objects 2.8 Libary
Microsoft ActiveX Data Objects Records 2.8 Libary
Microsoft ADO Ext.2.8 For Dll and Security
Microsoft Forms 2.0 Object Libary
這樣我們就可以自己配置數(shù)據(jù)庫連接信息了
新建一個模塊專門用來寫數(shù)據(jù)庫的常用操作比如我們給這個模塊取名為Mdl_public,首先在這個模塊中定義以下幾個公共變量
Public cat As New ADOX.Catalog
Public Conn As New ADODB.Connection ‘定義數(shù)據(jù)鏈接對象 ,保存連接數(shù)據(jù)庫信息;請先添加ADO引用
Public rs As New ADODB.Recordset ‘定義記錄集對象,保存數(shù)據(jù)表
Public Strsql As String
‘打開數(shù)據(jù)庫連接
Public Sub OpenSql()
If Conn.State = 1 Then Conn.Close
If Conn.State = 0 Then
With ThisWorkbook.Sheets(“sys”)
Conn.Open “Provider=sqloledb;” & _
” Server=” & .Cells(1, 2).Value & _
“;Database=” & .Cells(2, 2).Value & _
“;Uid=” & .Cells(3, 2).Value & _
“;Pwd=” & .Cells(4, 2).Value & “;” ‘定義數(shù)據(jù)庫鏈接字符串
End With
End If
End Sub
‘關閉數(shù)據(jù)庫連接
Public Sub CloseConn()
rs.Close
Conn.Close
End Sub
通過以上方法就實現(xiàn)了Sql Server數(shù)據(jù)庫連接的打開和關閉
接下來,我們要使用連接查詢數(shù)據(jù)庫中的表,如下:
Sub View前二000Rows(TBName As String)
Strsql = “SELECT 前二000 * FROM ” & TBName
OpenSql ‘打開連接
rs.Open Strsql, Conn ‘使用連接
Cells.Clear
Dim i As Integer
For i = 0 To rs.Fields.Count – 1 ‘處理查詢結果
Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
Cells(2, 1).CopyFromRecordset rs
CloseConn ‘關閉連接
End Sub
Sub Test()
Call View前二000Rows(“MSreplication_options”)
End Sub
這樣設計看上去有些繁瑣,但是當做比較大型的項目時這樣處理好處很多。名列前茅方便配置數(shù)據(jù)庫,第二常用的數(shù)據(jù)庫操作功能封裝起來方便調用。比如查詢數(shù)據(jù)庫要經歷三個步驟:1,打開連接(OpenSql) 2,執(zhí)行查詢語句(rs.Open Strsql, Conn )3,關閉連接(CloseConn)
3、用SqlCel連接Sql Server數(shù)據(jù)庫
SqlCel連接數(shù)據(jù)庫非常方便。SqlCel不僅可以連接Sql Server數(shù)據(jù)庫,同時也可以連接Mysql、Oracle和文件夾。
延伸閱讀:
二、SQL是什么
Structured Query Language
‘SQL’是結構化查詢語言,是一種用來操作?RDBMS?的數(shù)據(jù)庫語言,當前關系型數(shù)據(jù)庫都支持使用SQL語言進行操作,也就是說可以通過?SQL?操作 oracle,sql server,mysql,sqlite 等等所有的關系型的數(shù)據(jù)庫
SQL語句主要分為:DQL:數(shù)據(jù)查詢語言,用于對數(shù)據(jù)進行查詢,如select**
DML:數(shù)據(jù)操作語言,對數(shù)據(jù)進行增加、修改、刪除,如insert、udpate、delete**
TPL:事務處理語言,對事務進行處理,包括begin transaction、commit、rollback
DCL:數(shù)據(jù)控制語言,進行授權與權限回收,如grant、revoke
DDL:數(shù)據(jù)定義語言,進行數(shù)據(jù)庫、表的管理等,如create、drop
CCL:指針控制語言,通過控制指針完成表的操作,如declare cursor對于web程序員來講,重點是數(shù)據(jù)的crud(增刪改查),必須熟練編寫DQL、DML,能夠編寫DDL完成數(shù)據(jù)庫、表的操作,其它語言如TPL、DCL、CCL了解即可SQL 是一門特殊的語言,專門用來操作關系數(shù)據(jù)庫不區(qū)分大小寫