2013-06-12 5 views
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") 

Это покажет нажимной штифт на карте Google в LatLong координат. Это прекрасно работает.

Что я хочу сделать сейчас, это отображать push-контакты для MULTIPLE выбранных строк, которые существуют в таблице подформы. Я не знаю, как это сделать. Я могу обрабатывать передачу данных на карты Google, это не проблема. То, что я не знаю, как это сделать, - это получить значения из MULTIPLE выбранных строк в таблице подформы. Вышеприведенный код извлекает только значения FIRST.

ответ

0

Вы используете datagrid для этой подформы? Если это так, подумайте о том, чтобы вместо этого использовать список с несколькими выборами. Тогда вы можете использовать что-то вроде этого (вам нужно будет изменить все переменные, очевидно ...):

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 
+0

>> Используете ли вы данные из этой подформы? << №. Подформация - это еще одна форма, на которой расположены текстовые поля, связанные с таблицей. В результате, когда эта форма вставляется как подчиненная форма, она будет отображаться как сетка с строками и столбцами. – user2478210

+0

Непонятно, как вы можете выбрать несколько «строк», если у вас есть текстовые поля. Вы ДОЛЖНЫ иметь форму, созданную для отображения в виде набора данных, или вы не можете выбрать несколько записей. –

+0

Если для свойства «Формат по умолчанию» для подформы установлено значение «Datasheet», оно будет отображаться в основной форме как сетка с строками и столбцами. – user2478210

Смежные вопросы