Excel VBA连接各种类型数据库

计算机语言、软件、硬件
回复
peng
Site Admin
帖子: 199
注册时间: 周五 11月 01, 2019 9:06 am

Excel VBA连接各种类型数据库

帖子 peng »

Excel VBA连接各种类型数据库-Excel、Access、mysql、sqlserver

VBA作为Excel的一个高级功能,还是有很多小伙伴喜欢来使用这个功能。那么,在使用VBA编程的过程中,连接各种数据库进行操作就成为了必备的一个技能。今天,我们就来给大家分享一下常见的一些数据库的连接方式。

Excel其实本身也可以当作一个数据库来使用,首先我们就来看一下Excel的连接方法。

Sub db_Excel()
On Error Resume Next
Dim cn As New ADODB.Connection
Dim cnStr As String
cnStr = "Provider = Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0;Data Source = " & ThisWorkbook.FullName
cn.Open (cnStr)
If cn.State = 1 Then
MsgBox "数据库连接成功!"
Else
MsgBox "数据库连接失败,请重试!"
End If
End Sub

Access数据库作为office家族中的一员,是微软提供的一个桌面型的数据库,如果你的office软件是完整安装的话,默认就已经安装了Access数据库。如果进行一些简单的数据存储的话,Access不愧为一个很好的选择。

Sub db_Access()
On Error Resume Next
Dim cn As New ADODB.Connection
Dim cnStr As String
cnStr = "Provider = Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password='';Data Source='\\192.168.31.101\db\data.mdb'"
cn.Open (cnStr)
If cn.State = 1 Then
MsgBox "数据库连接成功!"
Else
MsgBox "数据库连接失败,请重试!"
End If
End Sub

mysql数据库是一款开源的数据库产品,是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。强烈推荐各位开发者使用该数据库进行开发。

Sub db_Mysql()
On Error Resume Next
Dim cn As New ADODB.Connection
Dim cnStr As String
mydriver = "Driver={MySQL ODBC 8.0 Unicode Driver}"
host = "192.168.31.237"
database = "vbatest"
user = "root"
pw = "123456789"
cnStr = mydriver & ";Server=" & host & ";Database=" & database & ";Uid=" & user & ";Pwd=" & pw & ";option=3"
cn.Open (cnStr)
If cn.State = 1 Then
MsgBox "数据库连接成功!"
Else
MsgBox "数据库连接失败,请重试!"
End If
End Sub

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

Sub db_Sqlserver()
On Error Resume Next
Dim cn As New ADODB.Connection
Dim cnStr As String
mydriver = "Provider=sqloledb"
host = "192.168.31.101"
database = "vbatest"
user = "lou"
pw = "123456"
cnStr = mydriver & ";Server=" & host & ";Database=" & database & ";Uid=" & user & ";Pwd=" & pw & ";option=3"
cn.Open (cnStr)
If cn.State = 1 Then
MsgBox "数据库连接成功!"
Else
MsgBox "数据库连接失败,请重试!"
End If
End Sub

peng
Site Admin
帖子: 199
注册时间: 周五 11月 01, 2019 9:06 am

Re: Excel VBA连接各种类型数据库

帖子 peng »

vba怎么将excel数据插入mysql数库库

1、定义连接db的过程:
Dim oConn As ADODB.Connection
Private Sub ConnectDB()
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=yourdatabase;" & _
"USER=yourdbusername;" & _
"PASSWORD=yourdbpassword;" & _
"Option=3"
End Sub

2、执行db插入的具体写法:
Dim rs As ADODB.Recordset
Private Sub InsertData()
Set rs = New ADODB.Recordset
ConnectDB
With wsBooks
For rowCursor = 2 To 11
strSQL = "INSERT INTO tutorial (author, title, price) " & _
"VALUES ('" & esc(.Cells(rowCursor, 1)) & "', " & _
"'" & esc(.Cells(rowCursor, 2)) & "', " & _
esc(.Cells(rowCursor, 3)) & ")"
rs.Open strSQL, oConn, adOpenDynamic, adLockOptimistic
Next
End With
End Sub

回复