Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access2003 выборка по тексту из другой таблицы
 
 автор: PAF   (18.11.2011 в 15:04)   личное сообщение
 
 

Есть таблица с текстовым полем Адрес. Среди записей встречаются с пропущенным названием улиц. Есть другая таблица с текстовым полем Улицы (наименования улиц). Задача. Выбрать из первой таблицы все записи с существующими наименованиями улиц по записям из второй таблицы. А я давненько не брал в руки шашек (Access)

  Ответить  
 
 автор: kot_k_k   (18.11.2011 в 15:11)   личное сообщение
 
 

Instr()

подумав - а что значит "Пропущеные" - если пустые поля? - то просто Nz(Адрес, "") даст все пустые адреса или не пустые (че нам нужно), желательно структуру поля Адресс, бо переулок 2 Интернационала и ул. 2 Интернационала - как записаны??? (ул. .... и пер. .... или просто название?)

  Ответить  
 
 автор: PAF   (18.11.2011 в 15:24)   личное сообщение
 
 

К примеру: поле Адрес. иваново, ленина ул., 4, 3. (это все в одном поле) след. запись. иваново, , ,4. след запись. иваново,,, след запись. иваново, гагарина, 4,, . И есть табл. улиц. Записи: ленина, след запись гагарина. Необходимый результат. Отсеять записи: иваново,,,, т.е. не содержащие в тексте наименование улицы.
ФНС - это диагноз...

  Ответить  
 
 автор: kot_k_k   (18.11.2011 в 15:44)   личное сообщение
 
 

судя по всему - да (я про диагноз)

ну inStr (поле_адрес, поле_улица_из_табл) - даст нужный результат
можно так
select * from табла_1 Where Функция (поле_Адрес) =True

функция (ParamArray Ar())

set rst=currentdb.openrecordset ("select * from улица where InStr(" & Ar(0) & ", поле_название_улицы)>0")
функция=Not rst.Eof

т.е. если rst.Eof - True - совпадений нет, и наоборот

  Ответить  
 
 автор: PAF   (18.11.2011 в 15:51)   личное сообщение
 
 

Спасибо, буду "икспирементировать"

  Ответить  
 
 автор: snipe   (18.11.2011 в 16:22)   личное сообщение
 
 

SELECT Таблица1.Поле1
FROM Таблица1
WHERE (((Replace(Mid([поле1],InStr(1,[поле1],",")+1,InStr(InStr(1,[поле1],",")+1,[поле1],",")-InStr(1,[поле1],",")-1)," ",""))=""));

  Ответить  
 
 автор: kot_k_k   (18.11.2011 в 16:27)   личное сообщение
 
 

снайп - ты наивный человек, это же лупасили ручками судя по всему или откеля-то собирали - так что вариант наличия нужного кол-ва запятых я отмел сразу как фантастический

  Ответить  
 
 автор: PAF   (18.11.2011 в 18:11)   личное сообщение
 
 

Однако, это мой помидор! Каша конечно, еще та! Но, запятые действительно наличествуют. Виноват, друзья!
Спасибо вам!

  Ответить  
 
 автор: Дядя Федор   (18.11.2011 в 23:23)   личное сообщение
 
 

Надо нечеткий поиск

  Ответить  
 
 автор: PAF   (19.11.2011 в 11:10)   личное сообщение
 
 

Не упомянул... Там не только пустые строки, но и не существующие названия.

  Ответить  
 
 автор: PAF   (19.11.2011 в 11:04)   личное сообщение
 
 

Когда-то делал с другом прогу для подчистки и нормализации записей... но это было в древности, и поскольку каждый делал свою часть, то в замечательный код на VBA я не вник.
Там то же была процедурина. редактирования записи по совпадающим критериям из другой таблицы. Где теперь те байты?

  Ответить  
 
 автор: snipe   (19.11.2011 в 11:46)   личное сообщение
11 Кб.
 
 

Вот =>

  Ответить  
 
 автор: PAF   (19.11.2011 в 15:21)   личное сообщение
0 Кб.
 
 

Да... Они самые...
Дружище Snipe, а как Вы... где Вы их нашли??? И таблицы один в один...
"До чего техника дошла!!!" (мульт "Простоквашино") Просто и изящно.
Напоминает этот код =>

Премного Вам благодарен!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList