xmlnode代码不起作用 - 访问vba

时间:2014-10-23 14:31:41

标签: xml vba ms-access access-vba geocoding

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

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粘贴到浏览器中,我会得到合法的结果。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

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

Me.lstNew.AddItem Item = "foo"

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

要将识别为选项名称,请使用:=代替=

Me.lstNew.AddItem Item:="foo"