【问题标题】:Use long Access SQL query in Excel VBA在 Excel VBA 中使用长 Access SQL 查询
【发布时间】:2015-06-09 23:10:07
【问题描述】:

我有一个很长的 Access SQL 查询:

SELECT Avg(Data_transmission.Forward_app_throughput) AS AvgOfForward_app_throughput

FROM (Data_transmission LEFT JOIN Data_task_statistics ON Data_transmission.Record_index = Data_task_statistics.Record_index) LEFT JOIN Bin_data ON Data_transmission.Record_index = Bin_data.Record_index

WHERE (((Data_task_statistics.Task_type_ID)=4) AND ((Data_task_statistics.Received_Application_byte)>50000) AND ((([Data_transmission].[Forward_app_throughput]))>-1) AND ((Bin_data.Protocol_id)=61));

我正在尝试在 Excel VBA 中使用它,但我设法做到这一点的唯一方法是使用 Excel 中的“从 Microsoft Query 获取数据”功能,该功能会生成此字符串

CommandText = Array( _
        "SELECT Avg(Data_transmission.Forward_app_throughput) AS AvgOfForward_app_throughput" & Chr(13) & "" & Chr(10) & "FROM (Data_transmission LEFT JOIN Data_task_statistics ON Data_transmission.Record_index = Data_task_statistics.Rec" _
        , _
        "ord_index) LEFT JOIN Bin_data ON Data_transmission.Record_index = Bin_data.Record_index" & Chr(13) & "" & Chr(10) & "WHERE (((Data_task_statistics.Task_type_ID)=4) AND ((Data_task_statistics.Received_Application_byte)>50000) AND" _
        , _
        " ((([Data_transmission].[Forward_app_throughput]))>-1) AND ((Bin_data.Protocol_id)=61));" & Chr(13) & "" & Chr(10) & "" _
        )

如何在不使用“从 Microsoft Query 获取数据”功能的情况下获取此字符串,因为它需要很长时间并且我有多个查询

【问题讨论】:

  • 您是在问如何使用 VBA 中的 sql 查询数据库,还是有其他问题?
  • 我知道该怎么做,我在问如何划分上面的长 SQL 查询以用作 CommandText 的数组
  • 为什么需要它作为数组?不应该只是一串SQL吗?
  • 我删除了数组,现在可以使用了,谢谢。

标签: sql excel vba ms-access


【解决方案1】:

根据我的评论添加答案。不要尝试将数组与 CommandText 一起使用,只需传递一个 SQL 字符串即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2015-02-07
    相关资源
    最近更新 更多