如何在EXCEL 里通过一个控件实现对企业数据库的查询

如何在EXCEL 里通过一个控件实现对企业数据库的查询,第1张

补充: 你讲的复杂了点,我们只是在EXCEL单元格里面输入某个查询,比方输入某段物料号起止编码,再点击旁边的command控件(名字为查询),马上就能连接到数据(ODBC数据源,我猜测这个就是放在服务器上的东西吧)在该工作表里面马上就显示出需要的内容。能告诉这个控件是怎么弄到EXCEL里的,又是如何连接到相应ODBC数据源的呢,比方你自己在EXCEL里建个控件,通过查询就连接到ODBC数据源了。谢谢了 补充: 有时间帮我们搞得更详细点,这个控件是怎么导入EXCEL文件的,禁用宏后控件有如下代码:

Private Sub CommandButton1_Click()

ApplicationGoto Reference:="查询来自_ERPLive_Elec"

End Sub 补充: 匿名:Command button 属性里面没有宏指定这一项啊,控件能和宏进行关联么,你的回答似乎只能表明:宏能够用来执行同一 *** 作这一问题。风之龙说的“必须要通过vb编程来导入数据库。在其里面建立一个报表文件时期导入excel里面。”可能能实现我说的那些功能,只是不具体,谢谢你的帮助。 补充: 你说的是对的。

、打企业管理器打要导入数据数据库表按右键所任务--导入数据dDTS导入/导向导按

2、选择数据源

Microsoft

Excel

97-2000文件名

选择要导入xls文件按

3、选择目

用于SQL

Server

Microsoft

OLE

DB提供程序服务器选择本(本数据库

VVV)使用

SQL

Server身份验证用户名sa密码空数据库选择要导入数据数据库(

client)按

4、选择

用条查询指定要传输数据按

5、按

查询器源表列表要导入xls文件列各列加入右边

选列

列表步定要注意加入列顺序定要与数据库字段定义顺序相同否则错按

6、选择要数据进行排列顺序步选择列查询语句

order

by

面所跟列按

7、要全部导入则选择

全部行按

8、则看根据前面 *** 作查询语句确认误按

9、看

表/工作表/Excel命名区域

列表

列选择要导入数据表按

10、选择

立即运行按

11、看整 *** 作摘要按

1、直接用Sql语句查询

2、先用excle中的数据生成xml文件,再把xml导入数据库

第一种方法(方法二以后再试),找到联机丛书里实现此功能的Sql语句如下:

SELECT

FROMOpenDataSource('MicrosoftJetOLEDB40',

'DataSource="c:Financeaccountxls";UserID=Admin;Password=;Extendedproperties=Excel50')xactions

语句是有了,但我还是试了很久,因为各个参数具体该怎么设置它没有说。Data

Source就是excel文件的路径,这个简单;UserId、Password和Extended

properties这三个属性我改成了各种各样的与本机有关的用户名、密码以及excel版本都不对,最后用上面例子里的值“User

ID=Admin;Password=;Extended

properties=Excel

50”才成功了,晕啊;最后个“xactions”更是查了很多资料,其实就仅仅是excel文件里所选的工作表名而已,怪我对excel不够熟悉了,另外注意默认的Sheet1要写成[Sheet1$]

最后,看看我成功的测试

数据库里建好一个表testTable_1,有5个字段id,

name,

date,

money,

content,C盘下book1xls文件的sheet1工作表里写好对应的数据并设好数据类型,执行如下插入语句:

insertintotestTable_1([name],[date],[money],[content])

Select[姓名],[日期],[金额],[内容]

FROMOpenDataSource('MicrosoftJetOLEDB40',

'DataSource="C:Book1xls";

UserID=Admin;Password=;Extendedproperties=Excel50')[Sheet1$]

select里的列名我一开始用代替,但发现输出顺序与我预期的不同,是“金额、内容、日期、姓名”,不知道具体有什么规律,就老老实实写名字了。 *** 作成功

回过头来看看市场部的要求,假设在我这张表里实现,可以先判断如excel里存在与记录相同的name字段(name要唯一非空)时就删除记录,之后再插入,这样简单,但自增的id字段会因为插入而改变,那是不行的了。可行的方法是先读出excel里全部记录,然后用游标一条条分析,如果存在这个name就更新否则就插入。OK,下次就不用让他们再对着文档一条条Update了

以下面的做法为例,说明导入步骤:

oracle数据库有一个student表,现有一个excel表:studentxlsx,需导入oracle数据库student表中。

student表的拥有者是system,system密码为test

打开需导入的excel表格,单击office按钮,选择另存为--其他格式

选择保存路径(置于D:\),保存类型CSV(逗号分隔)(csv),设置文件名为studentcsv,单击保存

新建inputctl文件(置于D:\),内容为:

load data

infile 'd:\studentcsv'

append into table student fields terminated by ','

trailing nullcols(id,name,sex,age)

说明:infile后面参数为欲导入的excel表(已转换成csv格式)路径及名称;append在表后追加;table后面跟oracle数据库中的表名称; terminated by ','表示字段分隔符;(id,name,sex,age)表示字段名称列表

同时按Windows徽标键和R键,打开运行,输入cmd,打开命令提示符,输入命令:

sqlldr userid=system/test@netservicename control=d:\inputctl

说明:system/test,为oracle数据库表student的所有者及其密码;

@ netservicename为网络服务名;

control是inputctl文件名称及路径

进入oracle数据库,查询student表,excel已导入成功

什么数据库?如果是mssql数据库的话

打开企业管理器,展开服务器-展开数据库-右键点击那个数据库名字(想把excel中的数据导入到的数据库-所有任务-导入数据

然后按照提示一步一步的来,很简单的

以上就是关于如何在EXCEL 里通过一个控件实现对企业数据库的查询全部的内容,包括:如何在EXCEL 里通过一个控件实现对企业数据库的查询、excel表格如何导入数据库中、如何把Excel表中数据导入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10198433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存