Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос / 12 сообщений из 12, страница 1 из 1
31.10.2003, 09:16
    #32311232
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
как сделать запрос из двух таблиц?
...
Рейтинг: 0 / 0
31.10.2003, 09:26
    #32311242
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
Элементарно... Надо бы поконкретней вопрос задать - какие поля есть, какие надо, как связать таблицы и тд и тп...
...
Рейтинг: 0 / 0
31.10.2003, 10:28
    #32311340
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
допустим в базе test есть 2 табл: street (с полями: id_st и st_name) и dom (с полями: id_dom, nom_dom и id_st (связанное с id_st из табл street))

на форме есть датакомбо отображающий из первой таблици название улиц , при клике на улицу все номера домов отображиются в датагриде,

так вот как сделать чтоб при клике на улицу отображались только те дома, которые к ней относятся.
...
Рейтинг: 0 / 0
31.10.2003, 10:52
    #32311382
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
На обработчик клика вешаете запрос типа
Код: plaintext
1.
select nom_dom  from dom where id_st=combo1.value order by nom_dom

и результат кладете в датагрид.
в зависимости от БД combo1.value надо будет заключить в кавычки или апостроф.

...
Рейтинг: 0 / 0
31.10.2003, 10:57
    #32311396
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
слегка ступил
никогда не работал с datacombo в общем надо из него по индексу, тагу или key вытащить id_st
если названия улиц уникальны то можно так
Код: plaintext
1.
select nom_dom  from dom where id_st=(select id_st from street where st_name= combo1.value) order by nom_dom

...
Рейтинг: 0 / 0
31.10.2003, 11:34
    #32311491
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
Вот так примерно?

но он говорит что не хватает одного или нескольких требуемых параметров

sql = "select nom_dom from dom where id_st = (select id_st from street where st_name =" & Trim$(CStr(Dc_str.Text)) & ")" & " order by nom_dom"
...
Рейтинг: 0 / 0
31.10.2003, 11:38
    #32311500
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
а вот как надо:

sql = "select nom_dom from dom where id_st = (select id_st from street where st_name = " & "'" & CStr(Dc_str.Text) & "'" & ")" & " order by nom_dom"

Больное спасибо!!!!!!!!!!
...
Рейтинг: 0 / 0
31.10.2003, 12:32
    #32311604
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
ага для подобных случаев я даже написал простенькую функцию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
' --- для SQL Server
Public Function Sufix(pItem As String) As String
   Sufix = Chr(39) & pItem & Chr(39)
End Function
'  --- для Access
 
Public Function Sufix1(pItem As String) As String
   Sufix1 = Chr( 34 ) & pItem & Chr( 34 )
End Function


...
Рейтинг: 0 / 0
31.10.2003, 16:53
    #32312163
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
а вот еще, он мне говорит, что данный подчиненый запрос должен возврящать не более одной записи,

подскажите что это такое

вот запрос:

sql = "select name from man where id_kv = (select id_kv from kv where nom_kv = " & CStr(dc_kv.Text) & ")" & " order by name"
...
Рейтинг: 0 / 0
31.10.2003, 17:27
    #32312226
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
это значит что у вас несколько улиц с одиноковым названием
проверьте сколько записей возвращает запрос
Код: plaintext
1.
select id_kv from kv where nom_kv = " & CStr(dc_kv.Text)

должна быть одна запись
...
Рейтинг: 0 / 0
01.11.2003, 08:50
    #32312455
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
а какже тогда быть, что надо сделать?
...
Рейтинг: 0 / 0
03.11.2003, 04:27
    #32312940
DionX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос
автор писал:sql = "select name from man where id_kv = (select id_kv from kv where nom_kv = " & CStr(dc_kv.Text) & ")" & " order by name"
а что за таблицы man и kv? если я правильно предполагаю, что ты пытаешся выбрать человеков проживающих там-то, то таблицы man и kv должны быть связаны по ключевому полю, которое в kv будет однозначно индифицировать каждую запись, и в подзапросе в интрукции where отбирать именно по ентому полю. Причём обе таблицы могут быть и связаны и через другую, промежуточную таблицу, но тада запрос, конечно, будет совсем другим. А вообще, всё-таки нужно точнее описывать ситуацию.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]