山西建设工程备案网站,物流公司介绍模板,知名网站都是什么系统做的,wordpress 前端传文件本文主要涉及#xff1a;
VBA中数据库连接参数改成从配置文件获取
VBA连接MySQL数据库
VBA读MySQL数据库
演示两种写入工作簿的代码实现系统环境#xff1a;
Windows 10 64bit
Excel 365 64bit
WAMP#xff08;3.2.2.2 64bit#xff09;集成的MariaDB版本为10.4.10#…本文主要涉及
VBA中数据库连接参数改成从配置文件获取
VBA连接MySQL数据库
VBA读MySQL数据库
演示两种写入工作簿的代码实现系统环境
Windows 10 64bit
Excel 365 64bit
WAMP3.2.2.2 64bit集成的MariaDB版本为10.4.10MariaDB的操作方法和MySQL相同这里不做区分VBA连接MySQL前的环境配置
如果还没有用VBA连接过mysql数据库请参照前篇 VBA连接MySQL数据库 2. VBA报表的优势
其实VBA报表的最大优势就是——它是在Excel表格中实现的
有些办公场景中不光需要你出报表并且呈报的时候还要改excel表格格式这时vba的优势就体现出来了。你可以首先在office中改好需要的样式然后使用vba填充数据即可单纯使用vba填入数据是不会破坏版面的各种样式的这比其他语言的排版更有优势代码量更少且所见即所得减少版面调整的时间 3. VBA代码示例 3.1 直接复制数据集的写法
Sub 直接复制()设置数据库连接对象Set conn CreateObject(Adodb.Connection)设置数据库记录集对象Set rs CreateObject(Adodb.Recordset)serverIP Sheet1.Range(J2).ValueserverDB Sheet1.Range(J6).ValueserverUID Sheet1.Range(J3).ValueserverPWD Sheet1.Range(J4).Value配置连接串conn.ConnectionString Driver{MySQL ODBC 8.0 Unicode Driver};Server serverIP ;DB serverDB ;UID serverUID ;PWD;OPTION3;conn.Open拼接sql语句写成这样子方便检查sql语句也可以全部写到一行里sqlStr SELECT sqlStr sqlStr tp_auth.id, sqlStr sqlStr tp_auth. NAME, sqlStr sqlStr tp_hobby.content sqlStr sqlStr FROM sqlStr sqlStr tp_auth, sqlStr sqlStr tp_hobby sqlStr sqlStr WHERE sqlStr sqlStr tp_auth.id tp_hobby.user_id 从test数据库的YGXM表中取出所有数据rs.Open sqlStr, conn设置表头Range(A1:C1).Value Array(ID, Name, content)将数据输出到工作表Range(A2).CopyFromRecordset rs关闭连接rs.Close: Set rs Nothingconn.Close: Set conn Nothing
End Sub优点操作简单
缺点所有的结果顺序都必须在sql语句中调试好在写入单元格前如果要修改列的次序相当于要在结果数组中直接操作数组相对繁琐 3.2 利用数组转储的写法
Sub 数组转储()设置数据库连接对象Set conn CreateObject(Adodb.Connection)设置数据库记录集对象Set rs CreateObject(Adodb.Recordset)serverIP Sheet1.Range(J2).ValueserverDB Sheet1.Range(J6).ValueserverUID Sheet1.Range(J3).ValueserverPWD Sheet1.Range(J4).Value配置连接串conn.ConnectionString Driver{MySQL ODBC 8.0 Unicode Driver};Server serverIP ;DB serverDB ;UID serverUID ;PWD;OPTION3;conn.Open拼接sql语句写成这样子方便检查sql语句也可以全部写到一行里sqlStr SELECT sqlStr sqlStr tp_auth.id, sqlStr sqlStr tp_auth. NAME, sqlStr sqlStr tp_hobby.content sqlStr sqlStr FROM sqlStr sqlStr tp_auth, sqlStr sqlStr tp_hobby sqlStr sqlStr WHERE sqlStr sqlStr tp_auth.id tp_hobby.user_id 从test数据库的YGXM表中取出所有数据rs.Open sqlStr, conn设置表头Range(A1:C1).Value Array(ID, Name, content)使用数组存储记录集—————————————————————————————————————————————————————————————————————————————————————————————Dim arrRecord(1 To 1000000, 1 To 3) 数组第一个参数代表数据集的行数第二个代表列数i 1Do While Not rs.EOF 当数据指针未移到记录集末尾时循环下列操作把数据集指定的字段依次写入数组指定的列顺序不必和sql结果相同arrRecord(i, 1) rs(id)arrRecord(i, 2) rs(NAME)arrRecord(i, 3) rs(content)rs.MoveNext 把指针移向下一条记录i i 1 i加1准备把下一记录相关字段的值保存到工作表的下一行Loop 循环将数组复制到单元格——————————————————————————————————————————————————————————————————————————————————————————————Sheet1.Range($A$2:$C$1000000) arrRecordrs.Close: Set rs Nothingconn.Close: Set conn NothingEnd Sub