0

我正在使用 MS Access 2007。我有一个插入子表单的表单。子表单本质上表现为数据行和列的网格,每一行代表表中的一条记录。

我在主窗体上有一个按钮,单击该按钮会从子窗体中当前选定的行中获取数据。子表单中的表格本质上是纬度和经度值的列表,以度、分、秒为单位。这是单击主窗体按钮时运行的代码:

Dim LatLong As String
Screen.PreviousControl.SetFocus
LatLong = Me.Results.Form.LatitudeDegrees.Value & "+" & _
        Me.Results.Form.LatitudeMinutes.Value & "+" & _
        Me.Results.Form.LatitudeSeconds.Value & "+N,+" & _
        Me.Results.Form.LongitudeDegrees.Value & "+" & _
        Me.Results.Form.LongitudeMinutes.Value & "+" & _
        Me.Results.Form.LongitudeSeconds.Value & "+W"

Launch ("http://maps.google.com/maps?q=" & LatLong & "&hl=en&t=h")

这将在谷歌地图上的 LatLong 坐标处显示一个图钉。这工作正常。

我现在要做的是显示子表单表中存在的多个选定行的图钉。我不知道该怎么做。我可以处理将数据传递到谷歌地图,这不是问题。我不知道如何从子表单表中的 MULTIPLE 选定行中检索值。上面的代码只检索第一条记录的值。

4

1 回答 1

0

您是否在该子表单上使用数据网格?如果是这样,请考虑改用多选列表框。然后你可以使用这样的东西(你需要改变所有的变量,显然......):

Private Sub testmultiselect_Click()
    Dim oItem As Variant
    Dim sTemp As String
    Dim iCount As Integer

    iCount = 0

    If Me!NamesList.ItemsSelected.Count <> 0 Then
        For Each oItem In Me!NamesList.ItemsSelected
            If iCount = 0 Then
                sTemp = sTemp & Me!NamesList.ItemData(oItem)
                iCount = iCount + 1
            Else
                sTemp = sTemp & "," & Me!NamesList.ItemData(oItem)
                iCount = iCount + 1
            End If
        Next oItem
    Else
        MsgBox "Nothing was selected from the list", vbInformation
        Exit Sub  'Nothing was selected
    End If

    Me!mySelections.Value = sTemp
End Sub
于 2013-06-12T12:27:37.647 回答