如何将Access和Excel导入到Mysql中

对于一些小型甚至中型的公司来说,仍然使用Access或者Excel记录数据,不仅速度慢,而且在多人操作时存在着很多的不便,随着业务的发展,它们都有着升级系统的要求,但它们又拿不出很多的资金去开发一个系统,这时采用Mysql数据库,然后配合PHP等脚本语言进行开发就有着很多的好处,不仅经济、速度快、便于维护,而且通过浏览器就可以多人同时操作数据库,可以极大地提高工作效率。但这里首先会碰到一个问题,如何将Access和Excel中的数据导入到Mysql中呢,这里就以一个具体的项目为例,介绍如何使用VB开发这样的导库程序。

项目需求:该公司是一个进行二手楼盘买卖的公司,楼盘的资料来自几间分公司,存放在Access文件和Excel文件中,要求将所有的数据导入到一个中型数据库中,并且实现楼盘搜索的功能。

项目分析:考虑到该公司的规模,决定采用Mysql数据库,它是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,对于中小型的企业非常合用,搜索功能可以用PHP实现。至于导数据的操作,可以通过VB进行。下文就着重介绍这一点。

软件环境:服务器使用Win2000 Server,Win2000比win98稳定,而且可控性更强。

本文介绍的例子很简单,只要你开发过ASP及对可视化编程有一点概念就可以理解,以后就可以使用VB开发类似的数据库应用。

一。Mysql数据库的安装、建库和ODBC的安装设置

Mysql和ODBC驱动可以在其主页(http://www.mysql.com/)下载,在右边的Latest Versions点击进去,下载相应的版本就行了。这里我们要下载Intel版本的Mysql(最新版本为3.23.40),ODBC驱动则是MyODBC 2.50.37 for NT/2000 (full setup),如果使用Win95/98,其驱动是不同的,请注意区分。

然后就可以安装了,Mysql的安装是非常简单的,将它解压到一个目录(C:\mysql),在Win2000中,Mysql可以作为Windows的一个服务运行,在命令行中运行"C:\mysql\bin\mysqld-nt --install",然后在Win2000管理工具的服务中我们就可以发现有Mysql这个服务运行,不过我发现直接运行winmysqladmin.exe也是可以的,这时会要求输入一个密码,这是Mysql的连接密码,请记好,默认的连接是没有密码的(用户为root)。

其后是建立数据库和表,由于要将Access和Excel中的数据都导过来,因此表格中要包括两者的全部字段,这里为简单起见,只选择了其中的一些字段来说明,运行cmd进入到命令行方式,切换到c:\mysql\bin目录,执行"mysqladmin create build",这个命令是创建数据库,build是数据库的名称,成功后,执行“mysql”,进入"Mysql>"的命令行方式下,执行以下的命令:

mysql>use build;

mysql>CREATE TABLE loupan (

id int(10) unsigned NOT NULL auto_increment,

loupantype varchar(6),

inputdate date,

at_whatsection varchar(6),

buildname varchar(50),

buildaddress varchar(50),

room tinyint(4),

hall tinyint(4),

areasize decimal(10,2),

exp_sellprice decimal(13,2),

ownername varchar(20),

contactway varchar(50),

memo varchar(255),

updatestatus char(1),

goodloupan char(1),

PRIMARY KEY (id)

);

接着就会出现Query OK, 0 rows affected (0.04 sec)的成功提示,上文中use build表示切换当前的数据库为build,接着的语句是建表的命令,字段由上至下表示的是id号(自动加1,而且是该表的主键)、楼盘的类型、输入的日期、所在的区域、楼盘的名字、地址、房间的数目、厅的数目、面积、期望售价、业主的名字、联系方式、备注、更新状态、笋盘标志。

接着就是安装Mysql的ODBC驱动了,MyODBC的安装也是傻瓜式的,运行setup,一步步确认。结束后,就可以在控制面板的ODBC数据源中进行设置了,点“系统DSN”,选择“添加”,在驱动程序的列表中选择“mysql”,就会弹出一个配置页面,在Windows DSN Name中输入数据源的名称,这里输入build(还可以输入其它的名称,不一定跟数据库的名字相同),在“MySQL host(name or IP)”中,输入“localhost”,表示Mysql运行在本机上,在Mysql Database Name中输入数据库的名字“build”,User中输入“root”,PassWord中输入刚才设置的密码,如果刚才没有设置的话,留空,按“OK”后,就会在系统数据源中多了一项“build”,这样Mysql的ODBC数据源就设置成功了。

二。导库的VB程序

这个工程要使用一些对象库,在数据库访问方面,决定使用ADO(ActiveX Data Objects),对于使用过ASP的人,这个名字应该非常熟悉了,实际上,它在VB中的应用也是几乎一样的,由于要操作Excel,还要引用一个扩展的对象库。点菜单中的“工程”---“引用”,选择“Microsoft ActiveX Data Objects 2.6 Library”和“Microsoft Excel 9.0 Object Library”,在引用列表中,可引用对象库的版本或许有所不同,选择类似的最新版本就可以了。要使用对话框和进度条,还要引用一些部件,点菜单中的“工程”--“部件”,选择“Microsoft Common Dialog Control 6.0(SP3)”和“Microsoft Windows Common Controls 6.0(SP3)”。

界面如图一所示

图中各数字表示的控件分别是:

1-3:3个均为TextBox控件,名字分别为mdbfilename,mdbpassword,xlsfilename,mdbfilename用来指示导入Access文件的路径和文件名,mdbpassword用来输入Access文件的密码,xlsfilename用来指示导入Excel文件的路径和文件名;

4:名称为select_mdbfile,CommandButton控件,用来选择要导入的Access文件;

5:名称为importMDB,CommandButton控件,选择好文件后,用该按钮导入MDB文件

6:名称为CommonDialog1,CommonDialog控件

7:名称为select_xlsfile,CommandButton控件,用来选择要导入的Excel文件;

8:名称为importXLS,CommandButton控件,选择好文件后,用该按钮导入XLS文件;

9:名称为CommonDialog2,CommonDialog控件

10:名称为prgBar1,进度条(ProgressBar),当要导入很多记录时,使用进度条可以指示当前的导入进度

11:名称为StatusBar1,状态条(StatusBar),指示导入的进展状态,包括“正在导入”,“导入完成”等。

要将Style设置为“1-sbrSimple”

在程序的头部作以下声明

Option Explicit

Dim Cn As New ADODB.Connection

Dim Cnmysql As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim Rsmysql As New ADODB.Recordset

Function replace_str(srcstr As String)

srcstr = Replace(srcstr, "", "\")

replace_str = Replace(srcstr, "'", "'")

End Function

双击form,在装载form时输入以下的代码

Private Sub Form_Load()

'将进度条设置为不可见

prgBar1.Visible = False

'连接mysql数据库,pwd为数据库的密码,uid为用户名,dsn为数据源的名称

Cnmysql.ConnectionString = "uid=root;pwd=;dsn=build"

Cnmysql.Open

End Sub

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus