如何从表中的多个选定行检索数据?

时间:2013-06-12 12:19:44

标签: ms-access ms-access-2007 access-vba

我正在使用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选定行的推针。我不知道该怎么做。我可以处理传递数据到谷歌地图,这不是一个问题。我不知道该怎么做是从子窗体表中的MULTIPLE选定行中检索值。上面的代码只检索FIRST记录的值。

1 个答案:

答案 0 :(得分: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