excel数据命令导入mysql_如何将EXCEL数据导入MYSQL

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】广东开放大学 工程力学 形成性考核 (27)

选择题 题目:物体受平面内三个互不平行的力作用而平衡,三个力的作用线()。 题目:力偶对物体的作用效应,决定于()。 题目:平面平行力系的独立平衡方程数目一般有&#xff…

node mysql安装目录_nodejs 指定全局安装路径和缓存路径

1、前提:已安装 nodejs(nodejs官网 https://nodejs.org), 并且已将其添加到了环境变量 path 中;2、进入cmd命令行,然后输入 node -v ,测试是否安装成功,出现版本号就表示安装成功3、进入cmd命令行,然后输入…

【渝粤教育】广东开放大学 房屋建筑学 形成性考核 (50)

选择题 题目:以下基础一般应用于单层厂房的基础是 题目:以下属于刚性防水的是 题目:装配整体式钢筋混凝土楼板包括 题目:当主梁的跨度为7m时,以下主梁高设计尺寸合理为 题目:是指为了防止建筑物构件由于气候…

【渝粤教育】广东开放大学 文化项目管理 形成性考核 (36)

选择题 题目: ( )是依据一定的标准和程序,对政策的效益、效率及价值进行判断的一种政治行为,目的在于取得有关这些方面的信息,作为决定政策变化、政策改进和制定新政策的依据 选择一项: 答案:看左侧 题目&…

mysql的sql执行原理图_性能测试MySQL之SQL运行原理

一,MySQL运行原理两个一样的图1,SQL语句执行的过程详细说明如上图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么:a, 客户端发送一条查询给服务器。b, 服务器先检查查询缓存,如果命中了缓存&#xff…

穹顶灯打不出阴暗面_Java 8星期五:Java 8的阴暗面

穹顶灯打不出阴暗面在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五,我们都会向您展示一些不错的教程风格的…

【渝粤教育】广东开放大学 物业服务营销管理 形成性考核 (59)

选择题 题目: 单选 ( )是物业服务产品的期望产品。 答案:看左侧 题目: 单选 ( )是指模仿市场上旺销的其他物业服务企业的产品而开发的某种新产品。 答案:看左侧 题目&#xff1a…

【渝粤教育】广东开放大学 系统工程 形成性考核 (25)

选择题 题目:系统工程与系统科学的区别是,前者是工程技术,后者是基础理论。 答案:看左侧 题目:"有机论”生物学认为,有机体可分解为各个部分,各个部分的功能完全决定了系统的功能和特性。 …

Java 11:JOIN表,获取Java流

是否曾经想过如何将联接的数据库表转换为Java Stream? 阅读这篇简短的文章,并了解如何使用Speedment Stream ORM完成它。 我们将从Java 8示例开始,然后研究Java 11的改进。 Java 8和JOIN 速度允许将动态JOIN:ed数据库表作为标准J…

mysql宽字节注入_转宽字节注入详解

在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。首先,宽字节注入与HTML页面编码是无关的&#xf…

【渝粤教育】电大中专中药制剂学 (2)作业 题库

1.根据药典、药品标准等将药物加工制成具有一定规格,可直接用于临床的药物制品,称为()。 A.制剂 B.剂型 C.单味中药 D.中成药 E.炮制 错误 正确答案:左边查询 学生答案:D 2.药材经过炮制后可直接用于中医临…

mysql集群软件有哪些_浅谈数据库集群软件优缺点有哪些

满心狼藉回答时间:2019-12-05向TA提问集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。集群…

【渝粤教育】电大中专办公设备使用与维护 (2)作业 题库

1以下哪个不是现代办公硬件需求的主要依赖()。 A扫描仪 B计算机 C办公桌 D打印机 错误 正确答案:左边查询 学生答案:B 2现代办公设备可分为计算机、通信()三大类。 A电子工具 B办公机械 C路由器 D碎纸机 错…

input发送a.jax_JAX-RS 2.0中的透明PATCH支持

input发送a.jaxPATCH方法是最不受欢迎的HTTP方法之一,因为直到最近才真正没有一种标准的PATCH格式。 一段时间以来,它已经针对JSON进行了标准化,因此有很多库可以为您完成繁重的工作。 出于本博客的目的,我将使用json-patch&#…

python 日志函数参数_将日志信息作为参数传递给函数

我使用的Python库使用logging模块。但是,我创建了自己的log函数,脚本在内部使用。在下面是我要使用的日志记录功能:def log(name, content, swtch : bool None, time None):time time or datetime.now(pytz.timezone(US/Pacific))if swtch…

【渝粤教育】电大中专就业指导作业 题库

1.( )给中职生就业带来的机遇和挑战 A.一带一路 B.发展标准化服务业 C.“十三五”规划 正确 正确答案:左边查询 学生答案:C 2.最受企业欢迎的人才应具备( )素质 A.道德品质、文化认同、敬业精神、团队意识、…

python回车和换行的区别_回车与换行的解释~!

Unix/Linux和Windows回车换行Linux/Unix下的回车符与windows下的不同,Linux/unix下的回车符是0d,而在windows下则是0d0a,据说这和电脑刚开始发展时的电传打印机的速度有关。在计算机还没有出现之前,有一种叫电传打字机(teletype model 33)的玩…

【渝粤教育】电大中专常见病药物治疗作业 题库

1.作为退热药,阿司匹林的劣势是( )。 A.口服吸收迅速而完全 B.婴幼儿发热用阿苯片 C.儿童用药可引起Reye综合征,尤其是病毒性感染引起的发热 D.作用于下丘脑体温调节中枢 E.解热镇痛作用较强 错误 正确答案:左边查询 学…

在Spring Boot启动时运行代码

Spring Boot会自动为我们执行很多配置,但是迟早您将不得不做一些自定义工作。 在本文中,您将学习如何进入应用程序引导生命周期并在Spring Boot启动时执行代码 。 因此,让我们看看该框架提供了什么。 1. Bean初始化时执行方法 Spring启动您…

错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1

1、在控制节点安装rabbitmq、memcached组件apt-get -y install rabbitmq-server memcached python-pymysql # 设置openstack用户 rabbitmqctl add_user openstack password #后一个password是密码,需要特别注意,要与后面组件访问时的密码一致 #设置ope…