在其他应用程序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:
结束功能
目录
相关文章
|
5天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
13 0
|
1月前
|
SQL 安全 测试技术
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
15 0
|
9月前
|
SQL 存储 关系型数据库
WEB应用程序数据库防守篇之预防SQL漏洞注入
主要介绍SQL注入的危害会引发的后果以及如何预防等
413 1
WEB应用程序数据库防守篇之预防SQL漏洞注入
|
11月前
|
SQL JSON 安全
基于JSON的SQL注入攻击触发需要更新Web应用程序防火墙
基于JSON的SQL注入攻击触发需要更新Web应用程序防火墙
|
SQL JSON 分布式计算
Spark Sql系统入门4:spark应用程序中使用spark sql
Spark Sql系统入门4:spark应用程序中使用spark sql
113 0