在其他应用程序vba中使用SQL
2017-08-16 14:19
288 查看
阅读原文请点击
摘要: 有时您想在Excel中使用SQL? 我创建这个模块直接得到结果作为字符串(所有项目从fieldloop像这样a / b / c / d用“/”分隔符), 或者你可以调用这个函数到sub并返回一个数组来指定范围在表在Access中查询) 或者甚至直接应用使用ctrl + Shift + Enter的
有时您想在Excel中使用SQL?
我创建这个模块直接得到结果作为字符串(所有项目从fieldloop像这样a / b / c / d用“/”分隔符),
或者你可以调用这个函数到sub并返回一个数组来指定范围在表在Access中查询)
或者甚至直接应用使用ctrl + Shift + Enter的数组格式(记住首先选择多个单元格 - > write = SQL()在左上角conner)
String ,可选分隔符作为字符串,可选唯一作为布尔值)
DataRange =包含标题的范围
FieldLoop =要循环的字段的名称,可以使用通配符,如“*”
或任何字符串如正常查询选择语句CritA =查询条件(应该像这样“Where”和某些条件)
Delimiter =“,”或“/”或任何字符,如果不留下此可选空格,SQL函数将返回字符串如下:“一个分隔符b分隔符c delimiter d”
Unique = True / False,default = false,使您能够从TableRange
Tada中“SELECT DISTINCT” 您已经在Excel中完成了查询数据。
阅读原文请点击
摘要: 有时您想在Excel中使用SQL? 我创建这个模块直接得到结果作为字符串(所有项目从fieldloop像这样a / b / c / d用“/”分隔符), 或者你可以调用这个函数到sub并返回一个数组来指定范围在表在Access中查询) 或者甚至直接应用使用ctrl + Shift + Enter的
有时您想在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: 结束功能
阅读原文请点击
相关文章推荐
- Android-使用ContentProvide(内容提供者)向其他应用程序共享数据
- VBA:Excel使用SQL进行查询
- 使用 SQL Server Compact Edition 创建移动应用程序
- Windows 8开发 WinRT APP使用其他关联应用程序打开文件
- 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序
- mybatis 使用String 与其他基本类型时 动态sql 注意的地方
- Windows 8开发 WinRT APP使用其他关联应用程序打开文件
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
- vs2005下使用sql 2000或其他数据库作为membership的默认提供程序
- 使用PL/SQL developer 工具编译包或者其他objects时候出现错误
- 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序
- 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序
- 在Qt中使用WindowsAPI来控制其他应用程序
- 应用程序角色使用示例.sql
- EXECL使用VBA执行SQL
- vs2005下使用sql 2000或其他数据库作为membership的默认提供程序
- Android使用Intent启动其他非系统应用程序的方法
- 使用 .NET 远程处理访问其他应用程序域中的对象
- sql语句 查询表中 每门课都大于80分的学生名称 根据以下三种 学习sql 中其他函数的使用
- 使用osql来处理一些sql脚本以及做一些其他操作