Главное меню
Главная
О проекте
Для разработчиков ПО и оборудования
Прислать пошаговую инструкцию
Ссылки
Контакты
Печать

Извлечение выбранных элементов из списка, разрешающего несвязный выбор нескольких строк, с сохранение в виде строки с разделителями-запятыми в Microsoft Access

Извлечение выбранных элементов из списка, разрешающего несвязный выбор нескольких строк, с сохранение в виде строки с разделителями-запятыми в Microsoft Access

В статье описывается, как извлечь выбранные элементы из списка, разрешающего несвязный выбор нескольких строк, а затем сохранить их как строку с разделителями-запятыми в Microsoft Access.

В Microsoft Access значение свойства списка MultiSelect в форме или в отчете определяет, является ли этот список простым списком или списком, разрешающим несвязный выбор нескольких строк. В списках, разрешающих несвязный выбор нескольких строк, можно выделять несколько элементов одновременно.

Свойство списка Значение можно использовать для извлечения выбранного элемента из списка. Однако если используется список, разрешающий несвязный выбор нескольких строк, при попытке извлечь выбранные элементы с помощью свойства Значение свойство Значение возвращает значение NULL.

Извлечь выбранные элементы из такого списка и затем сохранить их как строку с разделителями-запятыми можно программными средствами. Для этого выполните указанные ниже действия.

  1. Запустите Microsoft Access.
  2. Откройте образец базы данных "Борей".
  3. В разделе Объекты окна базы данных выберите пункт Формы.

Примечание. В Access 2007 нажмите кнопку Конструктор форм в группе Формы на вкладке Создание.

  1. В правой области дважды щелкните пункт Создание формы в режиме конструктора.

Примечание. В Access 2007 пропустите это действие.

  1. Добавьте в форму указанные ниже элементы управления, а затем задайте их свойства, как показано ниже.

           

List Box
----------------------------------------------------
Name             :  NamesList
Row Source Type  :  Table/Query
Row Source       :  SELECT FirstName FROM Employees
Multi Select     :  Extended
Width            :  3.5"
Height           :  0.75"

 

      Text Box
-----------------------
Name    :  mySelections
Width   :  3.5"
Height  :  0.25"

      Command Button
----------------------------------
Name     :  testmultiselect
Caption  :  Display Selected Items
Width    :  1.375"
Height   :  0.3"

Command Button
----------------------
Name     :  ClrList
Caption  :  Clear List
Width    :  1.375"
Height   :  0.3"

  1. В меню Вид выберите пункт Код.

Примечание. В Access 2007 нажмите кнопку Просмотреть код в группе Элементы на вкладке Конструктор.

  1. Вставьте следующий код в редактор Visual Basic:

Option Compare Database
Option Explicit

Private Sub Form_Current()
Dim oItem As Variant
Dim bFound As Boolean
Dim sTemp As String
Dim sValue As String
Dim sChar As String
Dim iCount As Integer
Dim iListItemsCount As Integer

sTemp = Nz(Me!mySelections.Value, " ")
iListItemsCount = 0
bFound = False
iCount = 0

    Call clearListBox

For iCount = 1 To Len(sTemp) + 1
sChar = Mid(sTemp, iCount, 1)
If StrComp(sChar, ",") = 0 Or iCount = Len(sTemp) + 1 Then
bFound = False
Do
If StrComp(Trim(Me!NamesList.ItemData(iListItemsCount)), Trim(sValue)) = 0 Then
Me!NamesList.Selected(iListItemsCount) = True
bFound = True
End If
iListItemsCount = iListItemsCount + 1
Loop Until bFound = True Or iListItemsCount = Me!NamesList.ListCount
sValue = ""
Else
sValue = sValue & sChar
End If
Next iCount
End Sub

Private Sub clearListBox()
Dim iCount As Integer

For iCount = 0 To Me!NamesList.ListCount
Me!NamesList.Selected(iCount) = False
Next iCount
End Sub

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 "Ничего не выбрано из списка", vbInformation
Exit Sub  'Nothing was selected
End If

Me!mySelections.Value = sTemp
End Sub

Private Sub clrList_Click()
Call clearListBox
Me!mySelections.Value = Null
End Sub

  1. Закройте редактор Visual Basic.
  2. Сохраните форму с именем Форма1.
  3. Закройте форму.
  4. Откройте форму Форма1 в представлении формы.

a. В разделе Объекты окна База данных выберите пункт Формы.

Примечание. В Access 2007 в области переходов выберите группу Формы.

b. В правой области щелкните правой кнопкой мыши форму Форма1 и выберите команду Открыть.

Примечание. В Access 2007 щелкните правой кнопкой мыши форму Форма1 и выберите команду Открыть.

  1. Выберите несколько элементов из списка. Для этого щелкните элемент списка, удерживая нажатой клавишу CTRL, затем выберите еще несколько элементов списка.
  2. Нажмите кнопку Показать выбранные элементы.

Все элементы, выбранные из списка, разрешающего несвязный выбор нескольких строк, отображаются в виде строки с разделителями-запятыми в текстовом поле.

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для продажи или применения в тех или иных целях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Специалисты служб технической поддержки Майкрософт могут пояснить назначение тех или иных процедур, но они не предлагают услуги изменения примеров для добавления функций или создания процедур для определенных требований.


Пошаговая инструкция. Источник: http://support.microsoft.com/kb/827423/ru
 
« Пред.   След. »
Технология пошива свадебных и вечерних платьев. . Удобный выбор котлов: котлы acv.

 

  Rambler's Top100
© 2012 Пошаговые инструкции
Step-by-Step Instructions. Сделано в России. Разработка 2008 г. Реклама на сайте
Go to top