当前位置: 首页 > 知识库问答 >
问题:

刷新BackgroundQuery VBA

轩辕炎彬
2023-03-14
Sub OPInport(month As Integer, year As Integer)
'
' Macro6 Macro
'F und G

'
    Dim selectedRange As Date
    Dim WrkBook As Workbook
    Dim WrkSheet As Worksheet
    Set WrkBook = ActiveWorkbook
    Set WrkSheet = ActiveSheet

selectedRange = DateSerial(year, month, 1)
MsgBox selectedRange

WrkBook.Sheets(1).Columns("G:H").NumberFormat = "dd.mm.yyyy"

Range("$A$1").Value = "Change"

Application.CutCopyMode = False
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
    "ODBC;DSN=OpsApps;UID=Alligatoah;Trusted_Connection=Yes;APP=Microsoft Office 2016;WSID=AT000616;DATABASE=OpsApps" _
    , Destination:=Range("$B$1")).QueryTable
    .CommandText = Array( _
    "SELECT IPM_V_TV_URB.Customer, IPM_V_TV_URB.KNUM, IPM_V_TV_URB.DMRF, IPM_V_TV_URB.HeaderBoM, IPM_V_TV_URB.ProgramReleasedCosts, IPM_V_TV_URB.PlnLaunch, IPM_V_TV_URB.SystemSDate, IPM_V_TV" _
    , _
    "_URB.ActualCosts" & Chr(13) & "" & Chr(10) & "FROM OpsApps.dbo.IPM_V_TV_URB IPM_V_TV_URB" & Chr(13) & "" & Chr(10) & "WHERE (IPM_V_TV_URB.SystemSDate>={ts selectedRange & 00:00:00'})" _ 
    )
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Table_Query_from_OpsApps"
    .Refresh BackgroundQuery:=False
End With

我想选择一个特定范围的数据,但当我尝试这样做时,它会显示“Runtime Error 1004 General ODBC Error”并指出最后一行,.refresh BackgroundQuery:=false。我对VBA还很陌生,真的找不到解决这个问题的方法。当我使用SelectedDate更改where问题中的日期时,它才开始显示错误消息。

共有1个答案

牛经赋
2023-03-14

您需要将选定的日期连接到字符串中-您当前所做的是使用变量的字面名称作为日期。

"_URB.ActualCosts" & Chr(13) & "" & Chr(10) & "FROM OpsApps.dbo.IPM_V_TV_URB IPM_V_TV_URB" & Chr(13) & "" & Chr(10) & "WHERE (IPM_V_TV_URB.SystemSDate>={ts '" & Format(selectedRange, "yyyy-mm-dd") & " 00:00:00'})"

您可能需要更改所使用的日期格式。

 类似资料:
  • 问题内容: 如果将新文档索引到Elasticsearch索引,则可在索引操作后1秒钟左右搜索新文档。但是,可以通过调用或对索引进行操作来强制使该文档可立即搜索。这两个操作之间有什么区别- 结果似乎对他们来说是相同的,可以立即搜索文档。 这些操作中的每一项到底是什么? ES文档似乎并未深入解决此问题。 问题答案: 您得到的答案是正确的,但我认为值得详细说明。 刷新有效地调用了Lucene索引读取器上

  • 2.12 刷新 2.12.1 描述 此接口用于增加内容刷新任务 2.12.2 请求地址 地址: https://api.bokecs.com/cont/add_refresh 2.12.3 请求方式 POST 2.12.4 请求参数 1) 请求入参 Urls 待刷新的链接 2)请求出参 { "code": "", "message": "" } code:接口响应代码。200表示成功。 mess

  • 问题内容: 我有一个文件,其中我在页面顶部显示外部页面(使用iframe),其他部分是写在文件中的html代码的输出。 HTML代码如下所示: 现在,我想以编程方式刷新页面而不刷新。 我的问题是我可以不刷新页面就刷新页面吗? 答案/提示将不胜感激。 问题答案: 该嵌在主HMTL页面(或在JSP)。因此,如果刷新页面,则肯定会再次加载iframe。 为了避免这种情况,我可以考虑以下两种选择: 使用A

  • 问题内容: 我有使用JPA的Web应用程序。这个实体经理保持一堆实体,突然间我从另一侧更新了数据库。我使用 MySQL, 并使用 PhpMyAdmin 并更改一些行。 如何告诉实体管理器重新同步,例如忘记缓存中的所有实体? 我知道有方法,但是有可能怎么做或导致什么结果? 可以肯定,这是昂贵的操作,但必须执行。 问题答案: 有所不同,因为它 修改了您的对象 。该行将是,因此,如果您在实体管理器外部获

  • 有没有办法使用下面的代码来刷新已经存在的div id,而不是刷新时间? 假设我要用我想刷新的id替换时间id,我会在. innerHTML=??? 这是我需要每秒刷新的div。 [addItemsHTML]不知何故从一个软件中提取数据,告诉你什么是到期的,什么不是,但是脚本并没有每秒钟拉一次时间,浏览器刷新时只是改变了到期状态列上的时间。 现在我用这个来刷新整个页面,我只需要刷新绘图目录。

  • 掌握刷新方法 iScroll需要知道包装器和滚动器确切的尺寸,在iScroll初始化的时候进行计算,如果元素大小发生了变化,需要告诉iScroll DOM发生了变化。 下面将提供调用refresh方法的正确时机。 每次触摸DOM,浏览器渲染器重绘页面。一旦发生了重画我们可以安全地读新的DOM属性。重新绘制阶段不是瞬时发生的只是范围结束时触发。这就是为什么我们需要给渲染器刷新iScroll之前一点时

  • 描述 (Description) 它是一个特殊的组件,用于通过拉取它来刷新(重新加载)页面内容。 以下代码显示了如何刷新页面内容 - <div class = "page"> <!-- Page content should have additional "pull-to-refresh-content" class --> <div class = "page-content pu

  • 问题内容: 我希望我知道此列表中每个项目的确切功能,工作原理,后果以及何时使用正确的时间。 刷新 驱逐 复制 冲洗 我什至不知道每个人的工作,但是我不确定,所以我要求您的帮助,因为我真的很想了解它。 我知道这是一个非常笼统的问题,但是我认为了解这一切真的很有用。 谢谢。 问题答案: 在 Hibernate文档提供了很好的例证。另外,此博客文章还将为您提供一些见识。我将从下面添加一些行。 使用该方法