Помогите тупому программисту!!!

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
F_serg
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 04.08.2003 (Пн) 9:32
Откуда: г.Междуреченск

Помогите тупому программисту!!!

Сообщение F_serg » 06.08.2003 (Ср) 6:16

Всем надоел но прошу помощи!
Имею базу данных в Acces, она состоит из 2 таблиц.
В первой номер,фамилия,код улицы, и Т.Д.
Во второй код улицы,название улицы (справочник)
Таблицы связаны по коду улиц.
В Accesse база работает нормально.

В Visual Basic 6.3 (Русская) при помощи элемента Data хочу вывести
в TextBox из первой таблицы - фамилия и Т.Д., а из второй таблицы
наименование улицы.
Если элемент Data один, то не выводятся данные из второй таблицы (их просто нет в свойствах).
Если элементов Data два, то при просмотре полей базы данных наименование улицы не меняется, хотя таблицы связанные по коду улиц.
С Уважением
Сергей.

darkich
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 13.06.2003 (Пт) 13:10
Откуда: Великий Новгород

Сообщение darkich » 06.08.2003 (Ср) 8:29

тебе наверное стоит поискать в направлении SQL запрсов....

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 06.08.2003 (Ср) 22:48

Попробуй так:
на форме размести ADODC1 ComboBox и ListBox
Это в Form_Load
Код: Выделить всё
SQLSelect = "SELECT поле_с_идентификаторами_улиц, поле_с_названиями_улиц "
SQLFrom = "FROM название_таблицы_с_улицами "
SQLOrder = " ORDER BY поле_с_названиями_улиц "
SQLstr = SQLSelect & SQLFrom & SQLOrder
InitADO
Do Until Adodc1.Recordset.EOF
cboStreetName.AddItem Adodc1.Recordset.Fields("поле_с_названиями_улиц")
cboStreetName.ItemData(cboStreetName.NewIndex) = Adodc1.Recordset.Fields("поле_с_идентификаторами_улиц")
Adodc1.Recordset.MoveNext
Loop

cboStreetName-это комбобокс
на событие cboStreetName_Click() повесь вот это:

Код: Выделить всё

lstFlat.Clear
If cboStreetName.ListIndex = -1 Then Exit Sub
SQLSelect = "SELECT нужные, тебе, поля, из, второй, таблицы "
SQLFrom = "FROM таблица_с_полными_адресами "
SQLWhere = "WHERE =поле_с_идентификаторами_улиц " & cboStreetName.ItemData(cboStreetName.ListIndex)
SQLOrder = " ORDER BY например_в_алфавитном_порядке_улиц "
SQLstr = SQLSelect & SQLFrom & SQLWhere & SQLOrder

InitADO

Do Until Adodc1.Recordset.EOF
lstFlat.AddItem Adodc1.Recordset.Fields("поле_с_полным_адресом")
Adodc1.Recordset.MoveNext
Loop


lstFlat-это листбокс

и наконец InitAdo
Код: Выделить всё
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathBase & "StreetBase.mdb;Persist Security Info=False;"
.CommandType = adCmdText
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.RecordSource = SQLstr
.Refresh
End With


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


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 243

    TopList