vb vb连接access数据库 excel调入access

vb.net将 excel的数据 导入ACCESS中
[问题点数:40分,结帖人babypurple]
vb.net将 excel的数据 导入ACCESS中
[问题点数:40分,结帖人babypurple]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年12月 .NET技术大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。如何利用vb和access再加excel制作ERP?
我现在要做一个简单的专用erp,现在企业里以用excel为主,但是数据存取太多(每个月主数据2000条(excel行数),每台设备(生产线又要引用,几乎要2000*20的数据)。我会基本vb、vba、还算对excel熟悉,但是没有用过access。现在有个想法自己开发以vb界面为前台(每台机器旁配备了电脑),access为主数据库(办公室普通电脑),又可以以excel为辅(有些地方还是excel来得快),请教大师如何操作?主要想问:1.当生产线上每台电脑操作输入输出数据的时候,可不可以同时调用这个办公室的电脑上的access?2.是否需要sql或者什么软件来协调?-----------------------补充:各位千万不要让我去买一套erp这样的回答。公司已经花了近20万买了套行业内的erp系统,不是说不好用,但是的的确确问题很多,买之前天花乱坠,买之后永远只有一个理由:你以为改个东西这么简单。所以我现在已经做好了每台机器所对应需要的带宏excel表格,建立完整的数据库各个表,前者已经投入使用,的确也够用了,就是缺乏对数据整合的手段。希望大家能暂时放下利益冲突的想法,权当指导一个门外汉!谢谢
Access作为小型数据库管理是最好的选择,用不上SqlServer。局域网共享的话不如用Excel支持多人编辑,每天手动往数据库里导入更新数据。如果是我的话会用IIS在局域网搭一个简陋的网站供数据写入写出,用Access做数据库也还适用。 不过看题主应该不会选择这个方式...
理论上可以的,建议用sqlsever管理后台数据。但是参考我们部门的案例吧,现在用的是fox,从领导牵头说要换成sqlsever,跨越了整整五年,这个系统仍没有上。实际上已经基本做好了,就是各种bug,IT天天在测试和打补丁。除了硬件,你最需要的是一批训练有素的录入员,以及你自己在公司里举足轻重的地位。否则,有苦头吃了
1.我赶脚为什么用现成的ERP不用,反而要用VB+ACCESS+EXCEL自己造轮子喃?2. (请参考)
建议你买成熟的产品,最便宜的也就万把块钱,比你自己做要好很多,erp不是懂开发就行
1.当生产线上每台电脑操作输入输出数据的时候,可不可以同时调用这个办公室的电脑上的access?答:建议你可以直接使用Access来开发,后端Access文件用来存储数据,可以放在服务器上共享,前端Access文件访问的是后端Access文件中的数据,可以通过窗体来录入、编辑、查询、查看数据,前端Access文件分发给需要使用这个系统的电脑。为什么建议你直接使用Access来开发管理数据,因为在对数据类型的规范性方面Access比Excel强,对数据关联性方面的处理也比Excel方便。2.是否需要sql或者什么软件来协调?答:如果你同时需要使用这个系统的并发用户比较多的话,建议你后端可以使用SQLServer数据库,前端还是使用Access,后端使用SQLServer数据库的优点在于一方面数据的稳定性和安全性相对更好,另一方面可以承受比Access更多的并发用户。
用户习惯的操作界面是Excel的话,用C#或VB开发Excel插件是最经济的方案。当然,技术实现不重要,重要的是对需求的把握和产品的设计。
我是用 access+mysql做搭配的, access做为前端数据录入查询报表等,数据存储在mysql中,局域网内可以很多用户同时使用。我用access自带的VBA, 内含DAO,ADO等很多有用的控件,小企业中,我觉得已经足够用了。而且开发快,要改进的话也非常方便, 界面又那么友好,我觉得是小企业的上上之选。
---刚加入知乎, 也许回答有些晚了,希望对你有帮助!
如果只是现有业务利用数据库做数据处理,建议考虑采用易表,这个软件有免费版本,多半能涵盖你要的功能。如果希望全部基于excel,也可以考虑采用excel server软件。个人感觉你说的这个需求还用不到erp这么大的软件。
我认为,一般的管理应用,excel+vba+access就够用了,不需要其他软件。
我在工作中也碰到博主类似的问题,我比博主要菜鸟些,想先从VB学起,有啥推荐的?
已有帐号?
无法登录?
社交帐号登录VB_Access系统中实现Excel和Access数据库相互导入_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
VB_Access系统中实现Excel和Access数据库相互导入
上传于||文档简介
&&V​B​_​A​c​c​e​s​s​系​统​中​实​现​E​x​c​e​l​和​A​c​c​e​s​s​数​据​库​相​互​导​入
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢SQL Server与Excel、Access数据之间互导操作教程
作者:佚名
字体:[ ] 来源:互联网 时间:03-22 13:24:29
这篇文章主要介绍了SQL Server与Excel、Access数据之间互导操作教程,需要的朋友可以参考下
  1、SQL Server导出为Excel:
  要用T-SQL语句直接导出至Excel工作薄,就不得不用借用SQL Server管理器的一个扩展存储过程:xp_cmdshell,此过程的作用为&以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返 回任何输出。&下面为定义示例:
  2、Excel导入SQL Server表:
  在SQL Server中,有定义一个OpenDateSource函数,用于引用那些不经常访问的 OLE DB 数据源,而我们的数据互导操作,就是建立在这个函数之上。
  首先看一个T-SQL帮助中的示例,描述如下:
  --下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
  SELECT *
  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:Financeaccount.xls&;User ID=APassWord=;Extended PRoperties=Excel 5.0')xactions
  注:--在password=;的后面,加个 HDR=NO 的选项, 表示第1行是数据, 默认为YES, 表示第1行是字段名
  如果你直接引用这个示例进行查询,那么肯定是通不过的。关键在于语句中的两个地方需要修改,一处在于Data Source处,双引号内为Excel表格的实际存放位置,要修改为你想查询的Excel表实际完整路径;二为最后的...xactions,其实这里代 表的是要进行的某些动作,下面会讲,这里修改成用中括号包围的Excel表中工作表名字(加上一个$)就可以了,如[Sheet1$]。当然,还可以将 Excel 5.0改为Excel 8.0,因为5.0是以前的老版本了。
  下面是实例说明:
  /**//*1、插入Excel中的资料到现存的sql数据库表中(假设C盘有excel表book2.xls,book2.xls中有个工作表sheet1,sheet1中有两列id和FN而同时sql数据库中也有一个表test):*/
  insert into test SELECT id,FName
  FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=&c:ook2.xls&;User ID=APassword=;Extended properties=Excel 8.0')[sheet1$]
  --如果用select * ,则列的次序会乱,资料内容也会乱,无法插入成功,所以指定列名
  -----------------------
  /**//*2、插入excel表中资料到sql数据库并新建一个sql表(excel的定义和内容同上):*/
  select convert(int,id)as id,FName into test7
  FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=&c:ook2.xls&;User ID=APassword=;Extended properties=Excel 8.0')[sheet1$]
  --在select 列中最好用convert进行显示类型转换,否则资料类型会不如预期。
  特别注意!!!:1)如果是从数据库中导出的exel表,例如从jobs表导出的exel文件mytest.xls工作表默认是jobs上面例子中的[sheet1$] 应改为[jobs$]
  2)如果出现&服务器: 消息 7399,级别 16,状态 1,行 1
  OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。&
  上面这个错误是因为你的EXECL 文件被打开着,关掉那个EXCEL文件再试试.
  3)被导入的exel表第一行要有各列的列名如
  id name age
  1 tomclus 35
  。。。
  如果没有列名仅仅
  1 tomclus 35
  。。。
  可能会出错
  如果上面的例子中没有制定所有列,或select*,都会出错,如列不完全,或数据类型布匹
  SQL Server与Excel的数据互导讲解完了,你明白了吗?而access和Excel的基本一样,只是要去掉Extended properties声明。
  =======================
  Delphi示例(導出為excel表):
  ADOQ1.C
  ADOQ1.SQL.C
  sqltrs :=
  'INSERT INTO CTable (Name1,Sex,ID)'+
  ' SELECT'+
  ' 姓名,性别,身份证号'+
  ' FROM [excel 8.0;database=' + XlsName + '].[sheet1$]';
  ADOQ1.Parameters.C
  ADOQ1.ParamCheck:=
  ADOQ1.SQL.Text :=
  ADOQ1.E
  //中文字段两边不能有空格
  另附:(下面的部分内容没有亲自实践)
  熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在 Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下:
  一、SQL SERVER 和ACCESS的数据导入导出
  常规的数据导入导出:
  使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
  ○1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
  ○2Services(数据转换服务),然后选择 czdImport Data(导入数据)。
  ○3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
  ○4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。
  ○5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
  ○6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
  Transact-SQL语句进行导入导出:
  1.在SQL SERVER里查询access数据:
  SELECT *
  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:DB.mdb&;User ID=APassword=')...表名
  2.将access导入SQL server
  在SQL SERVER 里运行:
  SELECT *
  INTO newtable
  FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:DB.mdb&;User ID=APassword=' )...表名
  3.将SQL SERVER表里的数据插入到Access表中
  在SQL SERVER 里运行:
  insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=& c:DB.mdb&;User ID=APassword=')...表名
  (列名1,列名2)
  select 列名1,列名2 from sql表
  实例:
  insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
  'C:db.mdb';'admin';'', Test)
  select id,name from Test
  INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c: rade.mdb'; 'admin'; '', 表名)
  SELECT *
  FROM sqltablename
  二、SQL SERVER 和EXCEL的数据导入导出
  1、在SQL SERVER里查询Excel数据:
  SELECT *
  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:ook1.xls&;User ID=APassword=;Extended properties=Excel 5.0')...[Sheet1$]
  下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
  SELECT *
  FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:Financeaccount.xls&;User ID=APassword=;Extended properties=Excel 5.0')...xactions
  2、将Excel的数据导入SQL server :
  SELECT * into newtable
  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:ook1.xls&;User ID=APassword=;Extended properties=Excel 5.0')...[Sheet1$]
  SELECT * into newtable
  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:Financeaccount.xls&;User ID=APassword=;Extended properties=Excel 5.0')...xactions
  3、将SQL SERVER中查询到的数据导成一个Excel文件
  T-SQL代码:
  EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:Temp.xls -c -q -S&servername& -U&sa& -P&&'
  参数:S 是SQL服务器名;U是用户;P是密码
  说明:还可以导出文本文件等多种格式
  实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c: emp1.xls -c -q -S&pmserver& -U&sa& -P&sa&'
  EXEC master..xp_cmdshell 'bcp &SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname& queryout C: authors.xls -c -Sservername -Usa -Ppassword'
  在VB6中应用ADO导出EXCEL文件代码:
  Dim cn As New ADODB.Connection
  cn.open &Driver={SQL Server};Server=WEBSVR;DataBase=WebMUID=WD=123;&
  cn.execute &master..xp_cmdshell 'bcp &SELECT col1, col2 FROM 库名.dbo.表名& queryout E:DT.xls -c -Sservername -Usa -Ppassword'&
  4、在SQL SERVER里往Excel插入数据:
  insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=&c:Temp.xls&;User ID=APassword=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)
  T-SQL代码:
  INSERT INTO
  OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
  'Extended Properties=Excel 8.0;Data source=C: raininginventur.xls')...[Filiale1$]
  (bestand, produkt) VALUES (20, 'Test')
  总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!
  EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:Book3.xls -c -q -S&servername& -U&sa& -P&&'
  --参数:S 是SQL服务器名;U是用户名;P是密码,没有就空着
  --说明:其实用这个过程导出的格式实质上就是文本格式的,不信的话在导出的Excel表中改动一下再保存看看。
  实际例子与说明如下:
  /**//*如果要将表整个导出至Excel的话*/
  EXEC master..xp_cmdshell 'bcp northwind.dbo.orders out c:Book1.xls -c -q -S&(local)& -U&sa& -P&&'
  --注意句中的northwind.dbo.orders,为数据库名+拥有者+表名
  --直接导出用&out&关健字
  -------------------------------------------
  /**//*如果要利用查询来导出部分字段至Excel的话*/
  EXEC master..xp_cmdshell 'bcp &SELECT orderid,cutomerid,freight FROM northwind..orders ORDER BY orderid& queryout C: Book2.xls -c -S&(local)& -U&sa& -P&&'
  --这里在bcp后面加了一个查询语句,并用双引号括起来
  --利用查询要用&queryout&关键字
  关于SQL Server与Excel、Access数据互导问题的补充:
  1、将excel中的数据导入sql中时,数字变为科学计数法的解决办法:
  excel中的数据为:8630890
  导入sql后变为:8.6
  注:sql中该字段数据类型为nvchar。
  可以参考下面的方法转换已经导入的数据,但因精度问题导致的数据不准确不能被处理,另外,excel数据中,如果有前导的0,那么导入后的数据由于是float数字,所以会丢失前导0
  declare @a float
  set @a=8.6
  select cast(@a as decimal(38))
  --结果:8630890
  结合自己的实例,给大家一段代码:
  file1=request(&file&)
  sql=&insert into student(studyid,yourname,yourpass,yourclass,courseid) SELECT cast(学号 as decimal(18)),姓名,cast(密码 as decimal(18)),班级,cast(选课班号 as decimal(18)) FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=&&file1&&;User ID=APassword=;Extended properties=Excel 8.0')...[sheet1$]&
  conn.Execute sql
  2、如何得到EXCEL的表名(asp中):
  set app=server.CreateObject(&Excel.application&)
  app.Workbooks.Open(&&&file1&&&)
  for i =1 to app.worksheets.count
  response.write app.worksheets(i).name
  测试的时候,不知什么原因,时好时不好的,有待进一步解决!
大家感兴趣的内容
12345678910
最近更新的内容}

我要回帖

更多关于 vb连接access数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信