在excel vba中使用数组或字典作为sql中的from子句

2023-11-30

是否可以使用数组或字典作为 SQL 语句中的表。

例如 strSQL = "SELECT * FROM " & myArray & ""

提前致谢。


扩展@Nathan_Sav 提供的想法,以下代码应该:

Dim a(3) As String

a(0) = "1 as C1"
a(1) = 2
a(2) = 3
a(3) = 4

Debug.Print "select * from (SELECT " & Join(a, " UNION ALL SELECT ") & ") as tmp"

Update:

这是手动连接/构造必要字符串的简短子命令:

Option Explicit

Sub tmpTest()

Dim strSQL As String
Dim varArray As Variant
Dim lngRow As Long, lngColumn As Long

varArray = ThisWorkbook.Worksheets(1).Range("A1:G12")

strSQL = "select * from "
strSQL = strSQL & "(select "
For lngRow = LBound(varArray, 1) + 1 To UBound(varArray, 1)
    For lngColumn = LBound(varArray, 2) To UBound(varArray, 2)
        'First row must contain column names
        If lngRow = LBound(varArray, 1) + 1 Then
            strSQL = strSQL & varArray(lngRow, lngColumn) & _
                " as [" & varArray(lngRow - 1, lngColumn) & "], "
        Else
            strSQL = strSQL & varArray(lngRow, lngColumn) & ", "
        End If
        'Beyond the last column a UNION ALL SELECT must be added
        '  except for the last row
        If lngColumn = UBound(varArray, 2) And _
            lngRow < UBound(varArray, 1) Then
                strSQL = Mid(strSQL, 1, Len(strSQL) - 2) & _
                    " union all select "
        End If
    Next lngColumn
Next lngRow
strSQL = Mid(strSQL, 1, Len(strSQL) - 2) & ") as tmp"
Debug.Print strSQL

End Sub

上面的代码假设数据位于sheet1上的范围内A1:G12其中第一行包含列标题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在excel vba中使用数组或字典作为sql中的from子句 的相关文章

  • 如果总和为 0,则查找并删除带标题的最后一列

    我想创建一个宏 查找带有标题的最后一列 并仅当该列的总和等于零时才将其删除 到目前为止 这是我尝试过的 Dim LastCol As Long Dim i As Long With ThisWorkbook Sheets Sheet1 Fo
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • 使用自定义功能区时是否可以阻止 MS Access 自动更改选定的功能区选项卡?

    当使用自定义 UI XML 文件在 Access 中添加多个自定义功能区选项卡时 每当关闭窗体时 选定的功能区选项卡都会变回第一个自定义选项卡 我们从 VBA 以编程方式加载自定义功能区 我已经创建了重现问题的 accdb http sdr
  • Ruby ActiveRecord 和 sql 元组支持

    ActiveRecord 是否支持 where 子句中的元组 假设底层数据库支持 结果 where 子句看起来像这样 where name address in John 123 Main St I tried Person where n
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 使用 ClosedXML 创建数据透视表

    我正在尝试使用 ClosedXML V0 91 1 创建数据透视表 但我不断遇到问题 因为我的 Excel 文件包含不可读的内容 然后 Excel 工作簿在单击时删除了我的数据透视表Yes below 下面是我击中时的显示Yes 它正在删除
  • mysql 不带空字符串和 NULL 的不同值

    如何检索没有空字符串值和NULL值的mysql不同值 SELECT DISTINCT CON EMAILADDRESS AS E MAIL FROM STUDENT INNER JOIN CONTACT CON ON STUDENT CON
  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • 是否存在用于开放 xml Excel 编辑的良好包装类和/或库?

    我正在寻找一个不错的库 用于在我们的 Windows 服务器上编辑和 或生成 Excel 文档 我觉得 open xml sdk 可能是可行的方法 但对我来说 学习曲线似乎很陡峭 而且我们的开发时间有限 我认为编辑 Excel 文档不应该那
  • 跳过行:将数据从 SSIS 导出到 Excel 文件

    我正在尝试使用 SSIS 将数据从 SQL Server 数据库导出到 Excel 文件中 我希望从第 6 行插入数据 第 5 行有标题 我可以映射标题名称Excel 目标编辑器 通过编写 SQL 命令到 SQL 表头 SELECT FRO
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • 基本的多对多sql选择查询

    我认为这应该很容易 但它却在逃避我 我的帐户和帐户组之间存在多对多关系 一个帐户可以位于零个或多个组中 因此我使用标准连接表 Accounts ID BankName AcctNumber Balance AccountGroups ID
  • 默认情况下在sql日期时间列中插入null/空值

    如何在 SQL Server 中创建一个表 默认日期时间为空 而不是1900 01 01 00 00 00 000我得到了 我的意思是 如果没有插入值 则默认值应该为 null 空等 如果没有插入值 默认值应该是null empty 在表定
  • Oracle SQL PLS-00049:错误的绑定变量

    我收到此错误 这似乎是列拼写问题 然而 我 99 确信我拼写的所有内容都是正确的 但我看不出有任何理由会出现我所犯的错误 这是来源 CREATE OR REPLACE TRIGGER update qoh trigger AFTER INS
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu
  • Excel 2010 在 IF 函数中搜索文本 - 单独的单元格数据

    Program Excel 2010 Require 一种将名字 姓氏 电子邮件提取到各个单元格的方法 Data 我的数据有一个包含原始 脏数据 的表 它是原始的并且一团糟 我用一个简单的方法整理它 IF A7 Order 1 然后其余单元
  • 如何修复日期过滤器 VBA,因为它没有拾取我范围内的所有日期

    我正在尝试创建一个过滤器来过滤掉我选择的日期内的所有日期 我选择的日期将始终反映整个月 例如 如果我需要 2019 年 5 月的数据 我将输入开始日期为 01 05 2019 结束日期为 31 05 2019 我的数据过滤器将需要选取经过我

随机推荐

  • JavaScript/ jQuery 用于关闭浏览器 FireFox / Chrome / IE

    因为我需要 JavaScript jQuery 代码来关闭浏览器 FireFox Chrome 和 IE 正如我尝试过的那样window close 但它只适用于 IE 还有别的办法吗 这适用于 IE 和 Chrome window clo
  • Iphone 3G 和 Iphone 3

    我希望我的应用程序仅安装在运行 iOS 4 0 的 iPhone 3G 和 iPhone 4 上 但不能安装在 iPhone 3 上 我通过在 info plist 文件中的 UIRequiredDeviceCapability 中添加一个
  • Python:防止模块导入时混合制表符/空格

    我知道你可以通过调用Python来确保纯制表符 空格代码 tt 但是 当我无法控制顶级调用时 我仍然可以在脚本加载的模块上强制执行此行为吗 如果您可以控制初始脚本 那么您可以自己添加检查 例如 您可以使用一个函数来首先检查模块是否存在缩进错
  • 如何从 Apple iPhone 拍摄的图像中读取 EXIF 数据

    如何从使用相机拍摄的图像中读取 EXIF 数据苹果手机使用 C 我需要GPS相关数据 PS 我知道如何读取 EXIF 除了用苹果手机 我建议你看一下书外图书馆Google Code 项目及其相关项目 NET 的 Exif 库关于代码项目的文
  • 使用 pip 和 virtualenv 逐步设置 python?

    有没有关于设置 Mac 使用 python pip 和 virtualenv 设置的好的分步教程 下载并安装Python 2 7 1 Mac OS X 64 位 32 位 x86 64 i386 安装程序 适用于 Mac OS X 10 6
  • 安装 SQL Server 2014 Express 作为引导程序的先决条件

    我正在尝试使用 boostrapper Wix 3 11 来设置安装 并以 SQL Server 2014 Express 作为先决条件 我安装的时候效果很好setup exe or SQLEXPR x64 ENU exe用命令行 命令行如
  • 闪亮 - 如何禁用仪表板标题

    我是闪亮的新手 当我制作项目时 我需要在服务器端隐藏仪表板标题 在shinydashboard网站上 我找到了代码dashboardHeader disable TRUE 我尝试过这个 但没有用 不过 我尝试使用shinyjs来解决这个问题
  • C# MediaPlayer.MediaEnded 事件未触发

    我有一小段 C 代码 Creates a MediaPlayer with the sound you want to play public static void PlaySound Stream wavStream string wa
  • 查找 id 以公共字符串开头的所有元素

    我有一个 XSL 它创建了多个 id 为 createdOn 的元素加上 unique id Example createdOnid0xfff5db30 我想使用 JavaScript 查找这些内容并将其存储在变量中 我试过了 var da
  • 有没有办法在不创建类实例的情况下获取类实例属性?

    这是我的第一个问题的链接 从字典创建类实例 所以我试图从字典创建类实例 该实例包含类没有的键 例如 class MyClass object def init self value1 value2 self attr1 value1 sel
  • excel:比较日期的vba类型不匹配

    我试图对两个日期 在不同列中 的年份和当前年份日期进行比较 如果年份相同 则应在相应行的第 13 列写入单词 ATUAL 如果年份不同 则不应写入任何内容 这是我到目前为止所尝试过的 Sub CopyColumn2 Dim i As Lon
  • dexguard 的实现

    我已将 com saikoa dexguard eclipse adt jar 文件放入 eclipse 的 dropin 文件夹中 并修改了 android 项目中的 Proguard Project 和 Project Properti
  • docker extra_host 参数需要主机名的字典值,如何使用变量?

    在 ansible playbook 中 docker 参数 extra host 包含两部分 主机 ip address 我试图将主机和 IP 地址作为变量传递 它们来自提示变量 我的主机文件中的最终结果是 1 2 3 4 server
  • 解析数据库授权 - 用户对象的安全性

    我有一个 ASP NET MVC 4 Web 应用程序 我在后端使用 Parse 作为数据库 https www parse com 和 C 作为编程语言 我使用 ParseUser 类来登录注册用户 https www parse com
  • 逆透视 Excel 矩阵/数据透视表?

    有没有一种快速的方法来 取消透视 Excel 矩阵 数据透视表 在 Excel 或其他地方 无需编写宏或其他代码 同样 我可以自己编写代码 C 或 VBA 或其他 来执行此操作 我想知道是否可以做到without代码 快点 例如 我需要转换
  • fopen 用于写入但不独占

    我想用fopen file w 打开文件进行写入但不独占 IE 我想让另一个进程在文件仍然打开时读取该文件 请注意 我在每行之后都会进行同花 这样我就不会错过任何内容 当其他进程从文件读取时 写入将处于空闲状态 该文档没有提到排他性 但实验
  • 检测到 CallbackOnCollectedDelegate

    当我的代码运行 5 10 分钟后 我不断收到此错误 检测到 CallbackOnCollectedDelegate 消息 对 CashRecyclerTestapp MessageMonitor NativeMethods WndProc
  • 尝试对自定义 JavaScript 对象进行排序

    我不太擅长 JS 但到目前为止还幸存下来 我正在创建一个复杂的 JS 对象并想要对其进行排序 该对象的结构如下所示 cart attributes Attribute Value 我正在创建一个独特的属性 它告诉我由冒号任意分隔的 3 件事
  • Ubuntu Python“没有名为 paramiko 的模块”

    所以我尝试在 Ubuntu 上使用 Python 2 7 使用 Paramiko 但是 import paramiko 会导致此错误 Traceback most recent call last File
  • 在excel vba中使用数组或字典作为sql中的from子句

    是否可以使用数组或字典作为 SQL 语句中的表 例如 strSQL SELECT FROM myArray 提前致谢 扩展 Nathan Sav 提供的想法 以下代码应该 Dim a 3 As String a 0 1 as C1 a 1