MS Access, MySql, Ado
一. Access连接到MySQL:
在本机状态下,用mysql(8.0)做后台,用Access(2019)做前端`
并在VBA界面中,点『运行』-『引用』-microsoft activex data objects 6.1 library,做好ADO的引用
连接MySQL的准备
Option Compare Database
Option Explicit
Const MYDRIVER = "Driver={MySQL ODBC 8.0 Unicode Driver};" '驱动程序
Const MYSERVER = "Server=127.0.0.1;" '服务器
Const MYPORT = "Port=3306;" '端口
Const MYDATABASE = "Database=abc;" 'MySQL数据库名称
Const MYUSER = "User=root;" '用户名
Const MYPASS = "PWD=123456789abcd;" 'Mysql密码
Public constr As String
ADO的定义
在Option Compare Database下
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
组装连接MySQL的准备
constr = MYDRIVER & MYSERVER & MYPORT & MYDATABASE & MYUSER & MYPASS
cn.ConnectionString = constr
cn.Open
二、insert
Dim cm As New ADODB.Command
cm.ActiveConnection = cn
cm.CommandText = "INSERT INTO mesa_abc ( 工号, 姓名, 地区, 项目, 职级, 学历, 入职日期, 离职日期 ) " & _
"SELECT b.工号, b.姓名, b.地区, b.项目, b.职级, b.学历, b.入职日期, b.离职日期 " & _
"FROM mesa_abc as a RIGHT JOIN mesa_abc_临时 as b ON (a.姓名 = b.姓名) AND (a.地区 = b.地区) " & _
"WHERE a.姓名 is null AND a.入职日期 is null "
cm.Execute
三、清除内存
cn.Close
Set rs = Nothing
Set cn = Nothing
四、完整代码
Option Compare Database
Option Explicit
Const MYDRIVER = "Driver={MySQL ODBC 8.0 Unicode Driver};" '驱动程序
Const MYSERVER = "Server=127.0.0.1;" '服务器
Const MYPORT = "Port=3306;" '端口
Const MYDATABASE = "Database=abc;" 'MySQL数据库名称
Const MYUSER = "User=root;" '用户名
Const MYPASS = "PWD=123456789abcd;" 'Mysql密码
Public constr As String
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Private Sub Command0_Click()
constr = MYDRIVER & MYSERVER & MYPORT & MYDATABASE & MYUSER & MYPASS
cn.ConnectionString = constr
cn.Open
Dim cm As New ADODB.Command
cm.ActiveConnection = cn
cm.CommandText = "INSERT INTO mesa_abc ( 工号, 姓名, 地区, 项目, 职级, 学历, 入职日期, 离职日期 ) " & _
"SELECT b.工号, b.姓名, b.地区, b.项目, b.职级, b.学历, b.入职日期, b.离职日期 " & _
"FROM mesa_abc as a RIGHT JOIN mesa_abc_临时 as b ON (a.姓名 = b.姓名) AND (a.地区 = b.地区) " & _
"WHERE a.姓名 is null AND a.入职日期 is null "
cm.Execute
cn.Close
Set rs = Nothing
Set cn = Nothing
end sub