Поиск телефона из двух таблиц

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Forlaw
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 12.08.2007 (Вс) 17:02

Поиск телефона из двух таблиц

Сообщение Forlaw » 14.08.2007 (Вт) 21:25

Ситуация такая:
1.Есть таблица1 в ней [номер телефона] и [название]
2.Есть таблица2 в ней [номер телефона] и [название]
3.Таблицы не связаны никак

111 | Атланта
222 | Атланта
333 | Ладога

4.Есть форма, допустим, с 10ю полями для ввода номера телефона

Нужно найти записи из двух таблиц таблиц:
Если номер из первого поля в форме есть в одной из таблиц, то рядом с полем пишем, допустим "ЗАНЯТ"
Если номер из второго поля в этой же форме есть в одной из таблиц, то рядом с полем пишем "ЗАНЯТ"
Если номера из третьего поля нет ни в одной из таблиц, то рядом пишем "СВОБОДЕН"

и так все 10 полей.. =(

либо, вместо "ЗАНЯТ", писать [название]
Да, вот все эти "ЗАНЯТ"\"СВОБОДЕН" должны нарисоваться напротив каждого из 10 полей после нажатия кнопки.
И все 10 полей не обязательно должны быть заполнены, некоторые могут быть пустыми

как быть, подскажите?
Самые сложные уголовные дела.

Forlaw
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 12.08.2007 (Вс) 17:02

Сообщение Forlaw » 14.08.2007 (Вт) 21:57

т.е. я не знаю как сделать запрос..

нужно просто выполнить этот запрос 10 раз с параметрами из этих 10ти полей в форме.
после каждого выполненного запроса проверять: если он что-то возвратил, то формс!форма!надпись1.value = "ЗАНЯТ"
если нет - "СВОБОДЕН"
и так 10 раз. этого вполне хватит
Самые сложные уголовные дела.

Forlaw
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 12.08.2007 (Вс) 17:02

Сообщение Forlaw » 14.08.2007 (Вт) 22:06

Тут подумал.. а если сделать два запроса, один для таблицы1, а второй для таблицы2.
сначала для первого поля в форме выполнять запрос1, если он ничего не вернул, то выполнять запрос2. Если и он ничего не вернул, тогда надпись1="СВОБОДЕН", else надпись1="ЗАНЯТ" и так 10 раз, для каждого из полей..
Самые сложные уголовные дела.

Forlaw
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 12.08.2007 (Вс) 17:02

Сообщение Forlaw » 14.08.2007 (Вт) 22:09

или так:
Private Sub Кнопка_Click()
Dim s$, i&
For i = 1 To 10
s = Nz(Me("Поле" & i), "")
If Not s = "" Then
If DCount("*", "таблица1", "[номерТелефона]='" + s + "'") > 0 Then
s = "ЗАНЯТ"
ElseIf DCount("*", "таблица2", "[номерТелефона]='" + s + "'") > 0 Then
s = "ЗАНЯТ"
Else
s = "СВОБОДЕН"
End If
Else
s = "ПУСТО"
End If
Me("Поле" & i).Controls(0).Caption = s
Next i
End Sub

Где Поле1,Поле2...Поле10 - поля в форме (типа TextBox с подписями - в эти подписи выводится диагноз). Предположено, что поле [номерТелефона] в таблицах - типа текст. Будет работать?
Самые сложные уголовные дела.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 14.08.2007 (Вт) 22:44

Forlaw, тебе ведь уже делали замечания. Неужели так сложно нажать кнопку "Правка" и отредактировать свое сообщение, если вдруг тебя осенило? Неприятно читать поток мысли на форуме, оформленный столь скверно, и тем более отвечать.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.08.2007 (Ср) 7:34

Forlaw, строгое замечание.
Прислушайся к советам и пользуйся кнопкой "Правка".
Lasciate ogni speranza, voi ch'entrate.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 15.08.2007 (Ср) 12:24

Копать в этом направлении
Код: Выделить всё
SELECT [название]
FROM таблица1
WHERE [номер телефона] = 111
UNION
SELECT [название]
FROM таблица2
WHERE [номер телефона] = 111
label:
cli
jmp label


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

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

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

    TopList