Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 12:24   #1
justas1507
Пользователь
 
Регистрация: 26.04.2011
Сообщений: 19
По умолчанию ListView + VBA

Добрый день!
Есть listView (6.0) (список продуктов), необходимо с помощью вба сделать так, чтобы когда кликаеш на какую-либо строку, открывалась форма, где представлены более подробные сведения о данном продукте. listView и форма сформированы на базе одной таблицы.

Буду признателен если кто поможет с этой проблемой...
justas1507 вне форума Ответить с цитированием
Старый 16.12.2011, 23:12   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте justas1507.
у контрола ListView есть событие "клик по значению" его можно использовать в Вашем случае:
Код:
Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    DoCmd.OpenForm "Form1", , , "поле1 = " + Item.Key 
    ...
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 17.12.2011, 11:06   #3
justas1507
Пользователь
 
Регистрация: 26.04.2011
Сообщений: 19
По умолчанию

Спасибо за совет, но такое решение выдает ошибку. .. Я приложил файл, посмотрите?
База конечно корявая, но сейчас это не имеет особого значения. У меня не получилось главное - чтобы открывалась форма frmItem с данными продукта по которому я кликнул в ListView
Вложения
Тип файла: rar Database.rar (58.9 Кб, 45 просмотров)
justas1507 вне форума Ответить с цитированием
Старый 17.12.2011, 18:34   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

justas1507, Ваша конструкция при построении списка (заполнении ListView) не устанавливает строкам идентификатор (Key)
для исправления необходимо:
1. в запросе Query1 добавить поле tblItem.ItemID
2. строку кода создающую элемент списка сделайте такой:
Код:
            Set objItem = .ListItems.Add(, "K" & rstItems("ItemID"), rstItems("Title"))
'"K" & rstItems("ItemID") - ключ, ключом может быть только текстовое значение, "K" & - сделает его таковым
3. открывать форму с необходимой записью будет код:
Код:
Private Sub ListView3_ItemClick(ByVal Item As Object)
On Error Resume Next
DoCmd.OpenForm "frmItem", , , "ItemID=" + Mid(Item.Key, 2)
...
Евгений.

Последний раз редактировалось Teslenko_EA; 17.12.2011 в 18:36.
Teslenko_EA вне форума Ответить с цитированием
Старый 18.12.2011, 10:12   #5
justas1507
Пользователь
 
Регистрация: 26.04.2011
Сообщений: 19
По умолчанию

Спасибо большое! Вы мне очень помогли! Все получилось!
justas1507 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
VBA. ListView in UserForm. Запрет изменения первого столбца Di.Tailor Microsoft Office Excel 1 19.05.2011 14:40
сумма в столбце listview vba pooli Microsoft Office Excel 5 05.09.2010 18:59
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04