在其他应用程序vba中使用SQL

有时您想在Excel中使用SQL?

我创建这个模块直接得到结果作为字符串(所有项目从fieldloop像这样a / b / c / d用“/”分隔符),
或者你可以调用这个函数到sub并返回一个数组来指定范围在表在Access中查询)
或者甚至直接应用使用ctrl + Shift + Enter的数组格式(记住首先选择多个单元格 - > write = SQL()在左上角conner)

SQL(dataRange As Range,FieldLoop As String,可选CritA As String ,可选分隔符作为字符串,可选唯一作为布尔值)
DataRange =包含标题的范围
FieldLoop =要循环的字段的名称,可以使用通配符,如“*”
或任何字符串如正常查询选择语句CritA =查询条件(应该像这样“Where”和某些条件)
Delimiter =“,”或“/”或任何字符,如果不留下此可选空格,SQL函数将返回字符串如下:“一个分隔符b分隔符c delimiter d”
Unique = True / False,default = false,使您能够从TableRange

Tada中“SELECT DISTINCT” 您已经在Excel中完成了查询数据。

公共函数SQL(dataRange As Range,FieldLoop As String,可选CritA As String,可选分隔符作为字符串,可选唯一为布尔)
错误GoTo err:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim TableName As String
Dim StrResult As Variant
Dim strFile As String,strCon As String,strSQL As String

TableName = dataRange.Parent.Name&“$”&dataRange.Address(False,False)

strFile = ThisWorkbook.FullName
strCon =“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =”&strFile _
&“;扩展属性=”“Excel 12.0; HDR =是; IMEX = 1”“;”

设置cn = CreateObject(“ADODB.Connection”)
设置rs = CreateObject(“ADODB.Recordset”)

cn.打开strCon

如果不是唯一=真的
    strSQL =“SELECT”&FieldLoop&“FROM [”&TableName&“]”&CritA
其他
    strSQL =“SELECT DISTINCT”&FieldLoop&“FROM [”&TableName&“]”&CritA
万一
rs.打开strSQL,cn

用rs
        不做(.BOF或.EOF)
            If(InStr(1,FieldLoop,“,”,vbBinaryCompare)> 0或FieldLoop =“*”)和Delimiter =“”然后
                StrResult = Application.Transpose(.GetRows)
                转到下一步:
            其他
                IfFields(0).Value <>“”Then
                    StrResult = StrResult&.Fields(0).Value&Switch(Delimiter =“,”,“,”,True,Delimiter)
                万一
                .MoveNext
            万一
        循环
结束与
下一步:
如果不是IsArray(StrResult)而不是IsEmpty(StrResult)然后
    如果Len(StrResult)> 0那么
        SQL = Left $(StrResult,Len(StrResult)) - 1)
    其他
        SQL =“No Item code Found !!”
    万一
其他
    SQL = StrResult
万一

ExitF:
退出功能

呃:
Debug.Print err.Number&“ - ”&err.Description
恢复ExitF:
结束功能
时间: 2024-11-03 15:50:32

在其他应用程序vba中使用SQL的相关文章

SQL Server2012在程序开发中实用的一些新特性

SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好.官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性. 一.增加了Sequence对象. 这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在SQL Server中终于也看到了类似的对象,只是在使用的语法上有一点点不一样.创建语法也是CREATE

java-为什么我在Java类中执行SQL语句,程序没错,而数据库却没执行??

问题描述 为什么我在Java类中执行SQL语句,程序没错,而数据库却没执行?? 解决方案 不知道画了删除线是什么意思,你确认这些代码有效么 解决方案二: 你用的什么啊?Hibernate?还是别的框架啊?Hibernate的话,可能是事务没有提交,你执行flush方法就可以了 解决方案三: 代码可以贴全一点吗?看不到关键部分 解决方案四: 代码内容太少了,你的Sqlca是个什么,最起码给个声明. 解决方案五: 你的sqlca是什么啊? 解决方案六: executeSQL方法问题 这个方法只能是查

通过java程序抽取日志中的sql语句

今天在翻看以前的笔记时,发现自己在很早之前写过一个java程序,能够解析日志中的sql语句. 当时使用的环境是weblogic,日志目录下总是有几十上百个日志文件,有时候排查问题的时候只需要找到对应的DML语句即可. 使用linux命令固然也可以,但是解析的时候还是比较被动,不能够正确地解析出sql语句来.比如日志中出现insert的字样可能只是日志中的一段信息,不是insert语句. 这些通过linux命令来完成还是有一定的难度,记得当时问题比较多,自己也饱受这种困扰.于是写了一个java程序

手把手教你在ASP中使用SQL语句

sql|语句 五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了.但你要同时采用ASP和SQL的话就可能会头晕.MySQL.SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句.不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网页中加入SQL. 1. SELECT 语句 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用

MySQL中的SQL特征

  为了与MySQL服务器进行通信,必须熟练掌握SQL.例如,在使用诸如mysql客户机这样的程序时,其功能首先是作为一种发送SQL 语句给服务器执行的工具.而且,如果编写使用编程语言所提供的MySQL接口的程序时,也必须熟悉SQL 语言,因为需要发送SQL 语句与服务器沟通.    第1章"MySQL与SQL介绍"的教程介绍了许多MySQL功能.本章在该教程的基础上进一步对MySQL的SQL的几个方面进行研究.它讨论了怎样引用数据库的要素,包括命名规则以及区分大小写约束的适用性.它还

实例讲解ASP动态网页制作中使用SQL语句

sql|动态|网页|语句 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用SQL的时候很多人都. 在ASP中使用SQL语句之1:用Select查询 熟悉下面的操作: SELECT whatFROM whichTableWHERE cnwebjx 执行以上语句就会创建一个存放其结果的查询. 而在ASP页面文件上,你也可以采用以上的一般语法,不过情况稍微不同,ASP编程的时候,SELECT 语句的内容要作为字符串赋给一个变量: SQL = "SELECT what F

PHP中防止SQL注入实现代码

一. 注入式攻击的类型 可能存在许多不同类型的攻击动机,但是乍看上去,似乎存在更多的类型.这是非常真实的-如果恶意用户发现了一个能够执行多个查询的办法的话.本文后面,我们会对此作详细讨论. 如 果你的脚本正在执行一个SELECT指令,那么,攻击者可以强迫显示一个表格中的每一行记录-通过把一个例如"1=1"这样的条件注入到WHERE子句中,如下所示(其中,注入部分以粗体显示): SELECT * FROM wines WHERE variety = 'lagrein' OR 1=1;'

PL/SQL开发中动态SQL的使用方法

动态 内容摘要:在PL/SQL开发过程中,使用SQL,PL/SQL可以实现大部份的需求,但是在某些特殊的情况下,在PL/SQL中使用标准的SQL语句或DML语句不能实现自己的需求,比如需要动态建表或某个不确定的操作需要动态执行.这就需要使用动态SQL来实现.本文通过几个实例来详细的讲解动态SQL的使用. 本文适宜读者范围:Oracle初级,中级 系统环境: OS:windows 2000 Professional (英文版) Oracle:8.1.7.1.0 正文: 一般的PL/SQL程序设计中

在ASP中使用SQL语句

语句 SELECT 语句 五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了.但你要同时采用ASP和SQL的话就可能会头晕.MySQL.SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句.不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网页中加入SQL. 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用SQL的时候很