【问题标题】:How to retrieve data from multiple selected rows in a table?如何从表中的多个选定行中检索数据?
【发布时间】:2013-06-12 20:27:37
【问题描述】:

我使用的是 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 选定行中检索值。上面的代码只检索第一条记录的值。

【问题讨论】:

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


    【解决方案1】:

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

    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
    

    【讨论】:

    • >> 您是否在该子表单上使用数据网格?
    • 如果您只有文本框,我不清楚如何选择多个“行”。您必须将表单设置为显示为数据网格,否则您可能无法选择多条记录。
    • 如果子表单的“默认格式”属性设置为“数据表”,它将在主表单中显示为具有行和列的网格。
    • 好的,你说的是文本框。无论如何,你不能用数据表来做,你必须使用一个列表框。无法遍历数据表中的记录。
    • 当然,子表单是作为常规表单创建的。在该常规表单上,如果您直接打开它(而不是作为子表单插入),则会看到该表单上包含文本框,链接到表中的字段。
    猜你喜欢
    • 2011-07-11
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多