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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 20:46   #1
raytek
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 67
По умолчанию Оператор Like

Доброго времени суток! Есть форма и в ней два поля со списком [Тип] и [Производитель], подскажите пожайлуста, как заполнить свойство поля "Источник строк"-[Производитель] чтобы список производителей зависел от выбранного поля [Тип] оборудования:

почему это работает:

SELECT [Заводы-изготовители].Производитель, [Заводы-изготовители].ВидОборудования FROM [Заводы-изготовители] WHERE ((([Заводы-изготовители].ВидОборудования) Like "*Насос*"));

а это не работает, выдает пустой список

SELECT [Заводы-изготовители].Производитель, [Заводы-изготовители].ВидОборудования FROM [Заводы-изготовители] WHERE ((([Заводы-изготовители].ВидОборудования) Like "*[Тип]*"));
raytek вне форума Ответить с цитированием
Старый 23.04.2012, 20:53   #2
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Потому что в таблице [Заводы-изготовители] нет записей в которых бы в поле ВидОборудования встречалось "*[Тип]*".
=master= вне форума Ответить с цитированием
Старый 23.04.2012, 20:57   #3
raytek
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 67
По умолчанию

в том то и дело что есть, тупо копирую из списка Тип в поле ВидОборудования и ничего, пустой список, а если вместо [Тип] - конкретно тип то работает
raytek вне форума Ответить с цитированием
Старый 23.04.2012, 21:00   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Нету.
Вы понимаете что такое строковый литерал (строка)?
=master= вне форума Ответить с цитированием
Старый 23.04.2012, 21:13   #5
raytek
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 67
По умолчанию

Думаю что ДА, в поле со списком Тип есть строка "насос", и в таблице "Заводы-изготовители" в Поле "ВидОборудования" есть строка "насос"

при таком работает

SELECT [Заводы-изготовители].Производитель, [Заводы-изготовители].ВидОборудования FROM [Заводы-изготовители] WHERE ((([Заводы-изготовители].ВидОборудования) Like "*насос*"));

а при таком не работает, пустой список

SELECT [Заводы-изготовители].Производитель, [Заводы-изготовители].ВидОборудования FROM [Заводы-изготовители] WHERE ((([Заводы-изготовители].ВидОборудования) Like "*[Тип]*"));
raytek вне форума Ответить с цитированием
Старый 23.04.2012, 21:19   #6
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Опять 25.
Это мы уже видели и вам написали что нету таких записей.
У вас в поле есть строки с "насос" и т.п. а вот строки, в которой бы присутствовал строковый литерал [Тип] нету. Т.е чтобы он был, то в поле были бы примерно такие строки "на[Тип]сос", а по факту их нет.
Сейчас понятно?
=master= вне форума Ответить с цитированием
Старый 23.04.2012, 21:25   #7
raytek
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 67
По умолчанию

так фишка должна быть как раз в том чтобы подстовлять слово насос из поле со списком Тип, а как я понимаю поле со списком обозначается так [Тип]
raytek вне форума Ответить с цитированием
Старый 23.04.2012, 22:31   #8
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от raytek Посмотреть сообщение
так фишка должна быть как раз в том чтобы подстовлять слово насос из поле со списком Тип, а как я понимаю поле со списком обозначается так [Тип]
попробуйте так
Код:
Like "*" & [Тип] & "*"
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 23.04.2012 в 22:48.
R Dmitry вне форума Ответить с цитированием
Старый 24.04.2012, 10:36   #9
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Доброе утро.
Может конечно заезженно, но моё любиое решение данных задач как раз рекордсет.
Просто для примера вдруг пригодится:

sub ttttt()
dim db as database
set db = currentDb

Set d = db.OpenRecordset("запрос на выборку всех значений ТИП (TIP)")


d.MoveFirst
Do Until d.EOF

t1 = d![TIP]

db.execute("SELECT [Заводы-изготовители].Производитель, [Заводы-изготовители].ВидОборудования FROM [Заводы-изготовители] " & _
"WHERE ((([Заводы-изготовители].ВидОборудования) Like "*" & t1 & "*")); ")

d.movenext
loop

end sub


Ну как-то так..... Пробовал аналогичный перебор на массиве в 12-15 млн. записей работает - 3 часа - Но зато надёжно.....
gluk_fm вне форума Ответить с цитированием
Старый 24.04.2012, 21:21   #10
raytek
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 67
По умолчанию

Огромное всем спасибо! Код работает а рекордсет для меня слишком сложно
raytek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24