小编Aar*_*ras的帖子

VBA IE Automation - 阅读iFrame

我们的业务使用基于浏览器的程序进行操作.我正在自动化解决方案以浏览此站点,并在最后检索一些数据.

该网站本身非常使用常规框架.但是,在我的过程的最后,它不会将我的数据填充到框架中,而是填充到iFrame中.整个网站上也有非常广泛的JavaScript,让事情变得混乱.

抓取iFrame的src URL并在新浏览器中打开错误页面(即页面显示错误文本而不是内容).

我的问题:

如何通过VBA从iFrame中获取文本?

到目前为止我尝试过的 (随意跳过):

定位特定帧中的特定iFrame,并获取innerHTML

With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
Run Code Online (Sandbox Code Playgroud)

在特定帧中按ID定位特定的iFrame,并获取innerHTML

Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
Run Code Online (Sandbox Code Playgroud)

找到iFrames的任何实例,并抓住它们(没有结果 - 也许是因为iframe被嵌入到框架中?)

Dim iFrm As HTMLIFrame
Dim doc As HTMLDocument
 For iterator = 0 To ie.document.all.Length - 1
  If TypeName(ie.document.all(iterator)) = "HTMLIFrame" Then
   Set iFrm = ie.document.all(iterator)
   Set doc = iFrm.document
   Debug.Print & doc.body.outerHTML
  End If
Next
Run Code Online (Sandbox Code Playgroud)

iframe internet-explorer automation vba

9
推荐指数
3
解决办法
3万
查看次数

刷新时出现Excel数据连接错误

解决了!请参阅下面的解决方案

我在Excel 2010中通过数据透视表数据连接从Excel 连接到多个独立的 Access 2010数据库.

刷新所有连接会导致最终刷新失败.顺序没关系,我手动刷新了不同的顺序,同样的错误.

但是,如果我在刷新几个后保存并关闭,然后返回并刷新最后一个,则完全没有问题.

让我相信我正在点击某种内存上限,当我保存并关闭时它会被重置.

我是否可以通过VBA重新创建该效果而无需实际保存/关闭?这个问题有更好的解决方案吗?

错误消息 - 这三个按此顺序弹出:

  • 查询未运行,或无法打开数据库表.
  • 获取数据的问题.
  • 使用连接的数据透视表,多维数据集函数或切片器无法刷新.

现行守则

Private Sub CommandButton1_Click()
On Error GoTo ErrHndlr

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.StatusBar = "Refreshing Data - Please Be Patient"

ActiveWorkbook.Connections("Connection_1").Refresh
ActiveWorkbook.Connections("Connection_2").Refresh
ActiveWorkbook.Connections("Connection_3").Refresh

Application.Calculation = xlCalculationAutomatic
Application.StatusBar = "Ready"
[LastUpdated].Value = FormatDateTime(Now, vbGeneralDate)
Application.ScreenUpdating = True
Exit Sub

ErrHndlr:
  Application.StatusBar = "Ready"
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = True
  [LastUpdated].Value = "Update Error"
  Exit Sub

End Sub
Run Code Online (Sandbox Code Playgroud)

连接字符串

Provider=Microsoft.ACE.OLEDB.12.0
;User …
Run Code Online (Sandbox Code Playgroud)

excel ms-access vba excel-vba excel-2010

9
推荐指数
1
解决办法
3万
查看次数

错误"指定的字段可以引用FROM子句中的多个表"

我正在使用Access 2010.

我的错误似乎是别名的结果.

我读过的解决方案指出应该在每个级别(我已经完成)使用不同的别名,并且Access喜欢大量的SELECT*(所以我也添加了这些)但是它没有解决我的问题.

我在ServiceZipSpec.Service_Product上收到错误.有什么指针吗?谢谢!

SELECT DISTINCT ServiceZipSpec.Service_Product, ServiceZipSpec.Specificity, Service_Availability.Available, Service_Availability.Zip_Code, Service_Availability.State
    FROM 
    ( SELECT * FROM 
       ( SELECT * FROM Service_Availability AS C_Avail1
         INNER JOIN 
            (
              SELECT C_Avail2.Service_Product, MAX(C_Avail2.Specificity) AS Spec
              FROM Service_Availability AS C_Avail2
              WHERE (C_Avail2.State = "TX" OR C_Avail2.State = "CW")
              GROUP BY C_Avail2.Service_Product 
            ) MaxSpec
         ON C_Avail1.Service_Product = MaxSpec.Service_Product
             AND C_Avail1.Specificity = MaxSpec.Spec
       ) Service_Spec
    LEFT JOIN TABLE_ZipCodes ON Service_Spec.State = TABLE_ZipCodes.State
    ) ServiceZipSpec

    WHERE ServiceZipSpec.Available = TRUE AND (ServiceZipSpec.State = "TX" OR ServiceZipSpec.State = "CW") …
Run Code Online (Sandbox Code Playgroud)

sql alias ms-access-2010

6
推荐指数
1
解决办法
1万
查看次数

Excel数据连接锁定访问数据库,防止第二次连接刷新

我在同一个Access DB中有两个与不同查询的数据连接.第二个总是失败(无论我先跑哪个).

当我查看数据库时,我注意到它有一个锁定文件,我认为这会导致问题.在我关闭Excel文件之前它一直处于锁定状态.导入完成后,任何人都可以帮我解锁数据库吗?


附加信息:

我正在使用Excel和Access 2010.

错误:

"文本文件规范' MyQuery Link Specification'不存在.您无法使用规范导入,导出或链接."

连接字符串(注意:我正在使用命令类型:表):

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin
;Data Source=A:\folder\folder\My Database.accdb
;Mode=Share Deny None
;Extended Properties=""
;Jet OLEDB:System database=""
;Jet OLEDB:Registry Path=""
;Jet OLEDB:Engine Type=6
;Jet OLEDB:Database Locking Mode=0
;Jet OLEDB:Global Partial Bulk Ops=2
;Jet OLEDB:Global Bulk Transactions=1
;Jet OLEDB:New Database Password=""
;Jet OLEDB:Create System Database=False
;Jet OLEDB:Encrypt Database=False
;Jet OLEDB:Don't Copy Locale on Compact=False
;Jet OLEDB:Compact Without Replica Repair=False
;Jet OLEDB:SFP=False
;Jet OLEDB:Support Complex Data=False
;Jet OLEDB:Bypass UserInfo Validation=False
Run Code Online (Sandbox Code Playgroud)

最后,根据 …

import excel ms-access connection-string

6
推荐指数
1
解决办法
1万
查看次数

InfoPath随机忽略规则和XPath中的控件

概观

我在几个视图中有几个Check Box控件.这些复选框用作切换以隐藏/取消隐藏同一视图中的各个部分.

相关规则设置为该部分,条件为chkbx1!="True",格式设置为隐藏此控件.它工作正常.

此外,在视图的基础上,我有一个文本框,其默认值利用XPath公式.

XPath用于根据是否选中某些框来创建消息.以下示例,它也可以正常工作.

 substring("Box was checked.", 1, (../@chkbx1 = "True")*16)
Run Code Online (Sandbox Code Playgroud)

问题

但是,在开发这一系列观点的过程中,我会定期回去重新测试.在这些测试中,我注意到看似随机,其中一些盒子停止触发他们的规则.他们停止触发XPath.

当我进入XPath的字段列表时,它们仍在显示.但就像IP失去了对它们的追踪,而忽略了它们.

这发生在此项目之前,我找到的唯一解决方案是完全删除复选框,然后重新创建它.

然而,除了单调乏味之外,我对于不知道原因和频率感到紧张.

有没有人有这种古怪的经历?

我正在使用InfoPath 2010,它与Access 2010建立了数据库连接.

xpath infopath

5
推荐指数
1
解决办法
125
查看次数