用VBA實現excel與access數據庫交互


1、將access中數據導入excel

Public Sub ImportData()
Dim mydata As String, mytable As String, SQL As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
ActiveSheet.Cells.Clear
mydata = ThisWorkbook.Path & "\成績管理.mdb" '指定數據庫
mytable = "考試成績" '指定數據表
'建立與數據庫的連接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open mydata
End With
SQL = "select 班級,avg(數學) as 數學平均,avg(語文) as 語文平均," _
& "avg(物理) as 物理平均,avg(化學) as 化學平均,avg(英語) as 英語平均, " _
& "avg(體育) as 體育平均,avg(總分) as 總分平均 " _
& "from " & mytable & " group by 班級"
Set rs = New ADODB.Recordset
rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
'復制字段名
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next i
'復制全部數據
Range("A2").CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

2、將excel數據導入access

Sub 把Excel數據插入數據庫中()
'*******************************************
'時間:2010-06-28
'作者:bengdeng
'功能:把當前工作表的數據增加到在程序文件同一目錄下進銷存表數據庫中
'注意:要在工具/引用中引用microsoft activex date objects x.x
' 其中x.x為版本號,可能會因為你安裝的office的版本不同而不同,本例引用了2.5版
'發布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim TableName As String
Dim sSql As String
Dim tStr As String
'數據庫名,請自行修改,路徑與當前工作簿在同一目錄
WN = "進銷存表.mdb"
'數據庫的表名與當前工作表名一致
TableName = ActiveSheet.Name

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & ActiveWorkbook.Name
conn.Open
If conn.State = adStateOpen Then
sSql = "Insert Into [;DataBase=" & ActiveWorkbook.Path & "\" & WN & "]." & TableName & " Select * From [" & ActiveSheet.Name & "$]"
conn.Execute sSql
MsgBox "成功把數據插入到“" & TableName & "”中!", , "http://excelba.com"
conn.Close
End If
Set conn = Nothing
End Sub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM