Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связывание двух таблиц, С помощью DataList и DataCombo 
:(
    Опции темы
korob2001
Дата 26.5.2005, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!!!
Это опять я, с ламерскими вопросами. ;))) Проблема в следующем:

Есть некая база rest.mbd, в которой находится 2 таблицы:

Таблицица: Menu
--Resize_Images_Alt_Text--

Таблица: MenuGroups
--Resize_Images_Alt_Text--

Мне необходимо связать эти две таблицы по GroupId, с помощью DataList и DataCombo. Другими словами, в DataCombo должны отображаться группы из таблицы MenuGroups, когда пользователь выбирает одну из групп, то в DataList заносятся все меню, из таблицы Menu, которые относятся к выбранной группе.

Т.е. примерно так выглядит программа:
--Resize_Images_Alt_Text--
Только как видно из примера, там отображён весь список меню, а мне необходимо, что бы при выборе Warm food, в DataList отображались только те меню, где GroupId = 2

Как настроить элементы, DataList и DataCombo, что бы они правильно отображали данные??? smile

Спасибо.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gannibal
Дата 26.5.2005, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



может хоть как нибудь поможет smile
http://www.microsoft.com/Rus/Msdn/Activ/MS...rolsVB60-2.mspx

Это сообщение отредактировал(а) M.E.G.U.S - 26.5.2005, 07:33


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 26.5.2005, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



M.E.G.U.S - за ссылку спасибо, но у меня есть точно такой же пример в книге. Честно говоря, я нифига из него не понял, точнее сказать, понял но не совсем. Вот например как связать DataGrid с DataCombo я понял, а вот как сделать сязку DataCombo и DataList нет. smile Я уже всю ночь пытаюсь реализовать по данному прмеру, интересующую меня связку. Прихожу постоянно к одному и тому же результату:
В DataCombo, всё как и задумывалось, а вот в DataList так и получаю весь список, независимо от того, какая группа выбрана в DataCombo =((


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gannibal
Дата 26.5.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Я вот счас попробывал написать .. получилось типа такого

Код

Option Explicit

Dim Db As Database
Dim Rst As Recordset
Dim Rst2 As Recordset

Private Sub cmbMenu_Click()

On Error GoTo oshibka
Rst.MoveLast
nachalo:

If Rst.Fields("Index") = cmbMenu.ItemData(cmbMenu.ListIndex) Then
lstRaz.AddItem (Rst.Fields("Name"))
End If
Rst.MovePrevious
GoTo nachalo

oshibka:
End Sub

Private Sub Form_Load()
    Set Db = OpenDatabase(App.Path & "\proba.mdb")
    Set Rst = Db.OpenRecordset("SELECT * FROM Menu ORDER BY Index")
    Set Rst2 = Db.OpenRecordset("SELECT * FROM MenuGroups ORDER BY GroupId")
    
On Error GoTo oshibka

Rst2.MoveLast
nachalo:
cmbMenu.AddItem (Rst2.Fields("MenuGroup"))
cmbMenu.ItemData(cmbMenu.NewIndex) = Rst2.Fields("GroupId")
Rst2.MovePrevious
GoTo nachalo

Exit Sub
oshibka:
End Sub


короче работает на принципе что из одной базы данных берёт две таблицы с разными именами, потом програмно добавляем в КомбоБокс значения из МенуГроуп и пишем код при нажатии на Комбобокс если его значение ровно 1 или 2 то проидёт всей базой и выпишится в листбокс smile

ты так хотел?

вот и сам весь пример

Это сообщение отредактировал(а) M.E.G.U.S - 26.5.2005, 17:17

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  svyaz_data_s_data2.zip


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 26.5.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



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

Это сообщение отредактировал(а) M.E.G.U.S - 26.5.2005, 18:03


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 26.5.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



M.E.G.U.S smile - спасибо тебе за желание помочь, просто с помощью DataCombo и DataList можно реализовать всю эту байду не написав ниодной строки кода. Я даже как-то делал это, я теперь всё напрочь забыл. smile Но я уже кстати решил воспользоваться обычными елементами ComboBox и ListBox. Просто времени у меня мало, в воскресение должен закончить, но закладочку в книге я сделал на данной теме, что бы потом вернуться к ней.

Собственно есть ещё один маленький вопрос, но он настолько мал, что я не вижу смысла создавать для него отдельный топик. Потому задам его здесь.
Подскажите, можно ли при добавлении елемта списка в ListBox или ComboBox сохранять какое нить число, что бы потом можно было обращаться к нему по выделенному элементу??? Что то типа Tag, но не для всего списка один, а для каждого элемента списка.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gannibal
Дата 26.5.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Код

cmbMenu.AddItem (Rst2.Fields("MenuGroup"))   'так ты задаешь имя которое показываеться
cmbMenu.ItemData(cmbMenu.NewIndex) = Rst2.Fields("GroupId") 'а так можешь задать число.. я в примере так сделал


работает и на листбокс и на комбобокс одинаково помойму

Цитата(korob2001 @ 26.5.2005, 19:37)
DataCombo и DataList можно реализовать всю эту байду не написав ниодной строки кода. Я даже как-то делал это, я теперь всё напрочь забыл.


интерестно надо будет посмотреть меня это тоже интересует...

Это сообщение отредактировал(а) M.E.G.U.S - 26.5.2005, 22:33


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 26.5.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Спасибо, сейчас буду пробовать.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0642 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.