xmlnode 代码不起作用 - 访问 vba

Posted

技术标签:

【中文标题】xmlnode 代码不起作用 - 访问 vba【英文标题】:xmlnode code is not working - access vba 【发布时间】:2014-10-23 14:31:40 【问题描述】:

我正在使用 Access 2010 并尝试反转地理编码。我想指定一个 lat\long 位置,然后将结果显示在列表框中。我有一个带有列表框和命令按钮的表单。命令按钮具有以下 onclick 事件:(我有 X 出我的 lat\long 地址:-))

Dim XMLDoc As New DOMDocument
Dim XMLNode As IXMLDOMNode
Dim i As Long
Dim lat As Double, lng As Double


XMLDoc.Load "http://maps.googleapis.com/maps/api/geocode/xml?latlng=XX.XX,-X.XX&sensor=false"


Do Until XMLDoc.ReadyState = 4
DoEvents
Loop

If Len(XMLDoc.Text) = 0 Then
    Call MsgBox("No data!")
    Exit Sub
End If

Set XMLNode = XMLDoc.selectSingleNode("/GeocodeResponse/result/formatted_address")

For i = 0 To XMLNode.childNodes.length - 1

Me.List1.AddItem Item = XMLNode.childNodes(i).baseName & ": " & XMLNode.childNodes(i).Text

Next i

但是,当我单击命令按钮时,列表框仅填充了单词“False”。如果我将http://maps.googleapis.com/maps/api/geocode/xml?latlng=XX.XX,-X.XX&sensor=false 粘贴到浏览器中,我会得到合法的结果。

我错过了什么?

【问题讨论】:

错字? .AddItem Item = XMLNode....这是一个相等测试然后是一个赋值,删除Item 【参考方案1】:

此代码评估名为 Item 的变量是否等于字符串 "foo",并将该表达式的值分配为新的列表框项。

Me.lstNew.AddItem Item = "foo"

如果您的表单代码模块在其声明部分中包含Option Explicit,Access 会提醒您未定义变量Item。这将是问题所在的早期线索。始终在所有代码模块中包含 Option Explicit

要将 Item 识别为选项名称,请使用 := 而不是 =

Me.lstNew.AddItem Item:="foo"

【讨论】:

您要求 Access 在此部分的列值中包含一个冒号...& ": " & 为什么这是个问题?

以上是关于xmlnode 代码不起作用 - 访问 vba的主要内容,如果未能解决你的问题,请参考以下文章

Form_Open VBA 代码不起作用

以编程方式访问 VBA 设置字体/大小不起作用

访问 2007 VBA DoCmd.Close 不起作用

VBA 代码更改为 64 位。宏观因素销售不起作用

代码不起作用:使用 vba 将文件从一个目录复制到另一个目录

同步数据透视表 - VBA 代码不起作用