VBA对MySql数据库进行读取和写入操作时间:2009-10-06 09:18:47来源:网络 作者:未知 点击:178次

'以下代码用于32位系统,Office 2003,环境,MySql版本5.1

'在使用前需要先安装MySql的驱动,进行正确配置

'注意:必须给出正确的服务器名、数据库名、表名、数据库连接的用户名、密码

Option Explicit

Dim Cnn As ADODB.Con

'以下代码用于32位系统,Office 2003,环境,MySql版本5.1

'在使用前需要先安装MySql的驱动,进行正确配置

'注意:必须给出正确的服务器名、数据库名、表名、数据库连接的用户名、密码

Option Explicit

Dim Cnn As ADODB.Connection '定义ADO连接对象

Dim Records As ADODB.Recordset '定义ADO记录集对象

'连接到数据库

Function CnnOpen(ByVal ServerName As String, ByVal DBName As String, ByVal TblName As String, ByVal User As String, ByVal PWD As String) '服务器名或IP、数据库名、登录用户、密码

Dim CnnStr As String '定义连接字符串

Set Cnn = CreateObject("ADODB.Connection") '创建ADO连接对象

Cnn.CommandTimeout = 15 '设置超时时间

CnnStr = "DRIVER={MySql ODBC 5.1 Driver};SERVER=" & ServerName & ";Database=" & DBName & ";Uid=" & User & ";Pwd=" & PWD & ";Stmt=set names GBK" '

Cnn.ConnectionString = CnnStr

Cnn.Open

End Function

'关闭连接

Function CnnClose()

If Cnn.State = 1 Then

Cnn.Close

End If

End Function

'取得记录集

Function GetRecordset(ByVal SqlStr As String)

Set Records = CreateObject("ADODB.recordset")

Records.CursorType = adOpenStatic '设置游标类型,否则无法获得行数

Records.CursorLocation = adUseClient '设置游标属性,否则无法获得行数

'对于Connection对象的Execute方法产生的记录集对象,一般是一个只读并且只向前的记录集

'如果需要对记录集进行操作,譬如修改和增加,则需要用一个Recordset对象

'并正确设置好CursorType和LockType为适当类型,然后调用Open方法打开

Records.Open SqlStr, Cnn '使用这个语句,行数将返回-1,Set Records = Conn.Execute(SqlStr)

End Function

'写入Excel表

Function InputSheet(ByVal SheetName As String)

Dim Columns, Rows As Integer

Dim i, j As Integer

Columns = Records.Fields.Count

Rows = Records.RecordCount

If Records.EOF = False And Records.BOF = False Then

For i = 0 To Rows - 1

For j = 0 To Columns - 1

Sheets(SheetName).Cells(i + 2, j + 1).Select

Sheets(SheetName).Cells(i + 2, j + 1) = Records.Fields.Item(j).Value

Next

Records.MoveNext

Next

End If

Sheets(SheetName).Cells(1, 1).Select

MsgBox "Output!", vbOKOnly, "MySql to Excel"

End Function

'把Excel写入MySql中的数据库

Function InsertToMySql(ByVal SheetName As String, ByVal TblName As String)

Dim SqlStr As String

Dim i, j As Integer

Dim Columns, Rows As Integer

Columns = VBAProject.func_public.GetTotalColumns(SheetName)

Rows = VBAProject.func_public.GetTotalRows(SheetName)

Set Records = CreateObject("ADODB.recordset")

'取得结果集并插入数据到数据库

Set Records = CreateObject("ADODB.Recordset")

'以下语句提供了插入思路,我只是把单条记录的插入方式改为循环,以把所有的记录添加到表中

'rs.Open "insert   into   newtable  values('" & ActiveSheet.Cells(i, 1).Value & "'," & "'" & ActiveSheet.Cells(i, 2).Value & "')", cnn, 0

For i = 2 To Rows

SqlStr = "INSERT INTO " & TblName & " values('" & Sheets(SheetName).Cells(i, 1).Value & "'" '注意:" values('",字母“v”之前是有空格的!!!

For j = 2 To Columns

SqlStr = SqlStr & ",'" & Sheets(SheetName).Cells(i, j).Value & "'"

Next

SqlStr = SqlStr & ")"

Set Records = Cnn.Execute(SqlStr) 'rs.Open SqlStr, cnn, 0  不能用这条语句实现!!!

Next

MsgBox "Insert!", vbOKOnly, "Excel To MySql"

End Function

'清除对象

Function ClearObj()

Set Cnn = Nothing

Set Records = Nothing

End Function

'获得数据表的字段名称

'OpenSchema可以获得数据库的各种信息

Function InputColumns(ByVal SheetName As String)

CnnOpen "localhost", "mydb", "employees", "root", ""

Set Records = Cnn.OpenSchema(adSchemaColumns)

Dim i As Integer

i = 1

While Not Records.EOF

Sheets(SheetName).Cells(1, i) = Records!COLUMN_NAME

i = i + 1

Records.MoveNext

Wend

CnnClose

ClearObj

End Function

本篇文章来源于:开发学院 http://edu.codepub.com   原文链接:http://edu.codepub.com/2009/1006/16171.php

excel数据命令导入mysql_如何将EXCEL数据导入MYSQL相关推荐

  1. excel数据怎么导入mysql_如何将Excel文件导入MySQL数据库

    如何将Excel文件导入MySQL数据库 本文实例为大家分享了Excel文件导入MySQL数据库的方法,供大家参考,具体内容如下 1.简介 本博客给大家分享一个实用的小技能,我们在使用数据库时常常需要 ...

  2. js 读取excel 导入mysql_可以读取EXCEL文件的js代码

    首页给个有中文说明的例子,下面的例子很多大家可以多测试. function readExcel() { var excelApp; var excelWorkBook; var excelSheet; ...

  3. 百万excel导入mysql_百万级xlsx表格导入数据库的实现方案

    需求是这样的,供应商给到一份 xlsx 表格(144MB),里面刚好有 100w 行数据(11列).我需要把它们稍作处理后写入到 mysql 数据库 项目基于 Laravel,既然需要稍作处理,那我首 ...

  4. python批量导入mysql_用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...

  5. oracle 数据导入 mysql_将oracle的数据导入到mysql的三种方法

    为了生产库释放部分资源,需要将API模块迁移到MysqL中,及需要导数据. 尝试了oracle to MysqL工具,迁移时报错不说,这么大的数据量,用这种简陋的工具不大可靠. 意外发现平时用的数据库 ...

  6. 数据集可以导入mysql_利用数据集进行数据访问操作

    数据访问有两种不同的方式,一种是用Connection, Command , DataReader来进行数据对数据的操作,另一种是用DataAdapter(适配器)来进行数据操作,而数据则一般放在内存 ...

  7. pb 数据窗口更新mysql_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在PB数据窗口中修改数据 如何在PB数据窗口中修改数据---设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修改了数据窗口中的数据,插入了新的数据行或者删除 ...

  8. excel 导入mysql_如何将Excel文件导入MySQL数据库

    本文实例为大家分享了Excel文件导入MySQL数据库的方法,供大家参考,具体内容如下 1.简介 本博客给大家分享一个实用的小技能,我们在使用数据库时常常需要将所需的Excel数据添加进去,如果按照传 ...

  9. c#excel导入mysql_(转)C# Excel导入Access数据库的源码

    环境:c#.2005+Access+ Sql 一.把DataTable插入数据库 public static void DataTableToDB() { string _strExcelFileNa ...

最新文章

  1. Maven 使用 Tomcat7
  2. DHCP服务_学习笔记
  3. Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json
  4. STL学习笔记(数值算法)
  5. 有关javabean的说法不正确的是_关于 JavaBean, 下列叙述中不正确的是 ( ) 。_学小易找答案...
  6. [机器学习]TF-IDF是什么
  7. MySQL 函数积累
  8. STM32固件库详解
  9. 车型代号对照表_车型代号对照表2015Q3
  10. 对费曼来说,“不可能”意味着什么?
  11. 计算机平面设计是计算机类吗,计算机平面设计是什么?平面设计就业前景怎么样?...
  12. linux挂镜像文件作用是什么,linux下挂载iso镜像文件,linux挂载iso镜像文件
  13. 【记录一下】解决Dataset not found
  14. New Year Snowmen codeforces 140C
  15. 轻松掌握Notification的各种用法
  16. 安装office未能启动服务器,关于 office 2013 无法安装的解决方法
  17. 西电李航 操作系统课程笔记 day10 IO hardware principles
  18. Python采集二手房源数据信息 基础版, 多线程版
  19. css修改element组件中el-date-picker中的placeholder样式失效
  20. Java(网络编程)

热门文章

  1. 使用Java 8.0进行类型安全的依赖项注入
  2. 参数化的JUnit测试
  3. 从RSS Feed和YQL创建数据表
  4. MongoDB身份验证
  5. Java中的Google ClientLogin实用程序
  6. 产品经理十大悲催错误
  7. HH SaaS电商系统的商品销售管理标签功能模块设计
  8. java控制图片移动_多线程控制图片移动
  9. springboot jwt token前后端分离_「转」七个开源的 Spring Boot 前后端分离项目,建议收藏加转载...
  10. 计算机线性输入录音原理,耳机输出的模拟信号-怎样把声音通过线路录入电脑?比方说,收音机的耳机输出孔,接线(串 爱问知识人...