通过参阅Excel帮助文档,我们可以发现一个很有用的外部函数SQL.REQUEST;http://office.microsoft.com/zh-cn/excel/HP052092672052.aspx?pid=CH062528302052(关于外部函数SQL.REQUEST的资料)

但是这个函数Excel不能直接调用,需要加载两个文件,XLODBC.XLA与XLODBC32.DLL。从Office2003的安装光盘找到XLODBC.XLA与XLODBC32.DLL两个文件复制到C:\Documents and Settings\Administrator\Application Data\Microsoft\AddIns文件夹中,(见图1),然后进入Excel文件中点工具菜单-加载宏-浏览-点击刚刚复制的文件-确定(宏安全等级为中)。(图2,3)另外,要注意的是要配置数据库,我最初没有配置好数据库,导致得不到想要的结果!在控制面板里面的数据源里面设置好你的系统DNS;(不明白的话,自己可以去查阅一些文档资料,或者看我的截图吧!)(图4)

现在外部环境已经构建好了,我们来看看SQL数据库

SQL服务器ip=192.168.1.1(这里加上装载自己数据库计算机的ip)(刚才配置数据源的IP)

用户名=sa

密码=1(这里加上自己数据库的密码)

数据库名字=test,(这里加上自己数据库的名字)

test.dbo.t_sal=数据库test中的一个表的名字(我查询的是t_sal表)

t_sal.salary=数据库test中表t_sal 的一个字段,即工资额(这个是我们要查询后返回的字段)

t_sal.id=数据库test中表t_sal的一个字段,即编码(我们要查询的就是这个字段,如这个是工号,我想查工号为2001的人工资,名字等资料)(图5)

假如我们在Excel单元格A3中输入编号要在c3得到工资,即在c3内输入如下公式:=SQL.REQUEST("DSN=192.168.1.1;UID=saWD=1;Database=test",,2,"SELECT t_sal.salary FROM test.dbo.t_sal

WHERE t_sal.id='"&A3&"'",FALSE)

假如我们在Excel单元格A3中输入编号要在b3得到姓名,即在b3内输入如下公式:=SQL.REQUEST("DSN=192.168.1.1;UID=saWD=1;Database=test",,2,"SELECT t_sal.name FROM test.dbo.t_sal

WHERE t_sal.id='"&A3&"'",FALSE)

……

……

依此类推,修改你要查询的字段,(图6)

ERPSERVER供应商信息调用示例:拷贝设置好ODBC,添加ERPSERVER DSN

=SQL.REQUEST("DSN=ERPSERVER;UID=jserp;PWD=jserp;database=dberp3",,2,

"select gys_mc from gys where gys_gysid='"&B4&"'")

全文完……

图1:

图2:

图3:

图4:

图5:

图6:

图7:

本主题中的部分内容可能不适用于某些语言。

与外部数据源连接,从工作表运行查询,然后 SQL.REQUEST 将查询结果以数组的形式返回,而无需进行宏编程。如果没有此函数,则必须安装 Microsoft Excel ODBC 加载项程序(加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。) (XLODBC.XLA)。 您可从 Microsoft Office 网站安装加载项。

语法

SQL.REQUEST(connection_string,output_ref,driver_prompt,query_text,col_names_logical)

Connection_string     提供信息,如数据源名称、用户 ID 和密码等。这些信息对于连接数据源的驱动程序是必需的,同时它们必须满足驱动程序的格式要求。下表给出用于 3 个不同驱动程序的 3 个连接字符串的示例。

驱动程序

连接字符串

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs

ORACLE

DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame

在试图连接到数据源之前,必须定义在 connection_string 中使用的数据源名称 (DSN)。

可以数组或字符串的形式输入 connection_string。如果 connection_string 超过 250 个字符,就必须以数组的形式输入。

如果函数 SQL.REQUEST 不能用 connection_string 访问数据源,则返回错误值 #N/A。

Output_ref     对用于存放完整的连接字符串的单元格的引用。如果在工作表中输入 SQL.REQUEST 函数,则可以忽略 output_ref。

当需要函数 SQL.REQUEST 返回完整的连接字符串时,可以使用 output_ref(此种情况下,必须在宏表中输入 SQL.REQUEST 函数)。

如果省略 output_ref,函数 SQL.REQUEST 不能返回完整的连接字符串。

Driver_prompt     指定驱动程序对话框何时显示以及何种选项可用。该参数使用下表中所描述的数字之一。如果省略 driver_prompt,SQL.REQUEST 函数使用 2 作为默认值。

Driver_prompt

说明

1

一直显示驱动程序对话框。

2

只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。所有对话框选项都可用。

3

只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。如果未指明对话框选项是必需的,这些选项变灰,不能使用。

4

不显示对话框。如果连接不成功,则返回错误值。

如果 SQL.REQUEST 函数不能在指定数据源中执行 query_text,则返回错误值 #N/A。

可将引用连接到 query_text 上来更新查询。在下面的例子中,每当 $A$3 更改时,SQL.REQUEST 函数都使用新的数值来更新查询。

"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".

Microsoft Excel 将字符串长度限制在 255 个字符内。如果 query_text 超过此长度,请在垂直单元格区域中输入查询并将整个区域作为 query_text。所有单元格的值连接在一起形成完整的 SQL 语句。

Column_names_logical     指示是否将列名作为结果的第一行返回。如果要将列名作为结果的第一行返回,请将该参数设置为 TRUE。如果不需要将列名返回,则设置为 FALSE。如果省略 column_names_logical,则 SQL.REQUEST 函数不返回列名。

返回值

如果此函数完成了它的所有操作,则返回查询结果数组或受查询影响的行数。

如果 SQL.REQUEST 函数不能使用 connection_string 访问数据源,则返回错误值 #N/A。

说明

SQL.REQUEST 函数可以数组的形式输入。如果以数组形式输入 SQL.REQUEST 函数,该函数将返回一个恰好填充选定区域的数组。

如果单元格区域大于结果集,则 SQL.REQUEST 函数将向返回的数组添加空白单元格,直至增加到所需要的大小。

如果结果集大于以数组形式输入的区域,则 SQL.REQUEST 函数返回整个数组。

SQL.REQUEST 函数的参数与 Visual Basic for Application 中 SQLRequest 函数的参数顺序不同。

示例

假设需要对名为 DBASE4 的 dBASE 数据库进行查询。在单元格中输入下列公式时,将会返回查询结果数组,其中第一行为列名:

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2,

"Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)

在DELPHI中怎样把SQL SERVER查询出来的数据导入EXCEL,WORD,TXT文件

用DexExpress Grid,即将此Grid连到数据上,然后再通过它的导出功能来另存为Excel,Html,Text,XMl

excel单元格调用mysql数据_Excel中如何调用SQL数据相关推荐

  1. 合并单元格后打字换行_excel中合并了单元格以后往里面打字如果打两行字,怎么换行...

    点击查看excel中合并了单元格以后往里面打字如果打两行字,怎么换行具体信息 答:1.演示使用的软件为Excel电子表格,软件版本为office家庭和学生版2016. 2.为了演示如何在合并的单元格中 ...

  2. python改变excel单元格字体和颜色_Python中openpyxl怎样改变字体和颜色

    在excel中为了区分不同数据内容,需要改变字体和单元格背景颜色.为了给学习编程的小伙伴找到既实用又有趣而且简单的学习方法,经过小编的不断找寻,接下来就让我们一起看看在openpyxl中如何填充背景和 ...

  3. c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...

    C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...

  4. 为何excel中数据无法计算机,excel表格内数据为何无法计算机-为什么EXCEL单元格内的数字不能运算...

    我的电脑为什么不能把一个excel表中数据导入另一个... 在Excel中打不上去可能是由于数出了位数限制,对应及解决方下: 1.系统默认单元格中输入数字格式为"常规",能完全显示 ...

  5. excel单元格内容拆分_excel软件应用:如何妙用Word拆分单元格数据

    编按:打仗亲兄弟,上阵父子兵!Word和Excel就是一对好兄弟,虽然各有分工,但有时也能彼此帮忙.Excel中的莫名其妙问题找Word帮忙解决,往往有效.譬如从平台中导出的数据,先使用Word做一次 ...

  6. matlab中设置数据长度,excel表格长宽设置/如何检查excel单元格内数字长度

    EXCEL用函数提取不同字符串长度的特定数据? 直接输入公式"=left(right(a1,6),2)" 关于此公式中用到的"Left"和"right ...

  7. excel单元格删除空格_在Excel数据输入单元格中防止空格

    excel单元格删除空格 In Excel, you can use data validation to control (to some extent!) what users can enter ...

  8. 为何excel中数据无法计算机,电脑excel表格数据改不了-Excel单元格里面的数字改不动怎么办...

    如何让excel表格中的数据不允许修改 不能修改excel表格中的数据的问题 为什么在EXCEL表格中不能更改数据 EXCEL软件本身出现了一些漏洞,解决办法: 1.单击"office&qu ...

  9. 选择邻近区域时: 代码操作与实际EXCEL键盘操作的区别 Currentregion与CTRL+A的区别, 又存在于,比如第一行有数据(合并单元格), 第二行为空, 第三行往下有数据, 第一行选中其中

    选择邻近区域时: 代码操作与实际EXCEL键盘操作的区别 Currentregion与CTRL+A的区别, 又存在于,比如第一行有数据(合并单元格), 第二行为空, 第三行往下有数据, 第一行选中其中 ...

最新文章

  1. 自定义本地Maven 仓库 配置
  2. java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
  3. win7 安装好redis 如何安装扩展
  4. ASP.NET CORE 之 在IIS上部署MVC项目
  5. 怎么给域账号映射服务器,如何给每个域用户映射网络驱动器?
  6. SpringBoot文件上传大小设置(yml中配置)
  7. 仿网易云音乐移动端html模板,使用jQuery仿制网易云音乐移动端
  8. Robocode简介
  9. AutoJs学习-实现极乐净土
  10. linux根据文件内容查找文件名,linux在当前目录下根据文件名查找文件
  11. No Assembler service found - please make sure that the right jars are in your classpath
  12. Flutter 3更新详解
  13. 【MobaXterm】设置 黑夜模式和白天模式
  14. Linux应用基础——串口应用编程
  15. 【Python】制作圆角图像的两种方案对比
  16. html 中按钮控件变为透明,css如何实现按钮透明
  17. vue3组件之间通信(三)——爷孙组件传递属性和方法
  18. uboot----getenv_IPaddr代码解析
  19. PHP对接支付宝当面付详细教程
  20. 怎么用matlab对图片缩小,使用Matlab实现对图片的缩放

热门文章

  1. 蚁创互联|微商起盘全案模式策划
  2. Rect定义的参数含义
  3. 汤姆大叔的博客 JS/jQuery
  4. Dropbox与Git管理代码
  5. cocos2d-iphone之魔塔20层第十部分
  6. 两小时的工匠show——老罗锤子rom发布会
  7. 新浪php面试题目,PHP新浪面试题全部题目与答案
  8. 光线凭借《左耳》胜出五一档后,又要拉上奇虎360整大事?
  9. 用时间换空间 孤独创新的贝壳正在用技术引领产业可持续向前发展
  10. AutoCAD常见问题及解决