Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 сопоставление полей  [new]
BAHO
Member

Откуда:
Сообщений: 4
Помогите составить запрос. Есть три таблицы: Прайс, Склад1 и склад2. Прайс имеет каталожный№, название, цена. В складе 1,2 есть название и количество.
В складе столбец название присутствует каталожный№. Поиск запчасти производиться по каталожному номеру. Надо составить запрос таким образом, чтоб сопоставление было не по принципу равенства ячеек, а по совподению с любой частью поля. Просто текст удалить можно, но ето не выход из положения, в складе в названии могут быть старые номера и новые номера записанные в такой форме 2345545>>567567, или 34534545<<34565421. Пробовал удалять текст и все что равно *>> и <<* работает, но не совсем в складе есть номера старые или новые которые не правильно записанные, проконтролировать их не возможно. Хочу, чтоб запрос искал похожие слюбой частью поля. Заранее спасибо.
20 май 06, 18:01    [2687554]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
Ashton
Member

Откуда: Moscow
Сообщений: 1178
Приведи, для наглядности, примеры исходных данных и соответсвенно, то, что ты хочешь получить.
20 май 06, 20:37    [2687908]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Помимо невнятного описания вопроса сразу можно сказать, что иметь две одиаковые таблицы Склад вместо одой общей (с дополнительным полем номер склада 1 или 2) чрезвычайно неполезно.
20 май 06, 21:00    [2687946]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
NG
Member

Откуда: Екатеринбург
Сообщений: 1492
В догонку к Программисту-любителю, добавлю, что если завтра вы вдруг разбогатеете и прикупите еще пару складов, то это будет приговором структуре данных вашей программы. Понятно, что добавить новые склады к их списку гораздо проще, чем добавлять новые таблицы и переписывать все запросы.
Наверное у вас и формы разные для разных складов? Вот форма для склада1, а вот для склада2.
-- Неприменно переделайте структуру базы, как советует Программист-любитель, с добавлением таблицы Склады с нужными для их описания полями.
Успехов!
20 май 06, 21:51    [2688016]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
Vlad_Krsk
Member

Откуда:
Сообщений: 135
задача понятна (в силу близости предмета)
о Складе1 и Складе2 не уточнено, поэтому считаем что склад в единственном числе - СкладГлавный.
Тем более, что если их структура одинакова или похожа, то их можно объединить вручную
из VBA:
Dim rst As Recorset
   set rst = db.OpenRecordset("select * from СкладГлавный " & _
                  "where (СкладГлавный.НомерПоКаталогу Like '*" & CStr([НомерПоКаталогуОбразец]) & "*'")
rst можно использовать по вашему усмотрению:
- передать форме (set Форма.Recordset=rst, при этом позаботиться чтобы поля формы имели правильные ControlSource-ы ),
- дальше анализировать в коде
- записать в таблицу
21 май 06, 10:14    [2688383]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
Vlad_Krsk
Member

Откуда:
Сообщений: 135
ага ... не правильно понял задачу
надо сделать ВЫБОРКУ ИЗ ДВУХ Складов по частичному совпадению полей Наименование ?
если да, то можно так
SELECT Склад1.НомерПоКаталогу, Склад2.НомерПоКаталогу
FROM Склад1, Склад2
WHERE (((ПроверкаНаЧастичноеСовпадение(Склад1.НомерПоКаталогу, Склад2.НомерПоКаталогу))=Yes));


в VBA создаете
Public Function ПроверкаНаЧастичноеСовпадение(Номер1, Номер2) as Boolean
   ' здесь сравниваете Номер1 и Номер2
   ' можно так
   if Nz(InStr(Номер1, Номер2),0)>0 Or Nz(InStr(Номер2, Номер1),0)>0 Then
     ПроверкаНаЧастичноеСовпадение = True
   Else
     ПроверкаНаЧастичноеСовпадение = False
   End If
   ' если требуется другая проверка вхождения - придумайте - это решается
End Function

или опять неправильно понял ? %)
21 май 06, 10:50    [2688406]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
BAHO
Member

Откуда:
Сообщений: 4
Спасибо Vlad_Krsk. Все супер работает.
21 май 06, 12:53    [2688499]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
BAHO
Member

Откуда:
Сообщений: 4
Возвращаюсь опять к этой же теме. Запрос который написал Vlad_Krsk работает, но чем дальше в лес тем жирнее партизаны. Есть у меня еще один вопрос. Как сделать так, чтобы при ненахожнении ни одного совпадения вставлялась пустая строка.
25 май 06, 21:58    [2707832]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
bubucha
Member

Откуда:
Сообщений: 5633
автор
вставлялась пустая строка

Куда?
25 май 06, 22:03    [2707846]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
BAHO
Member

Откуда:
Сообщений: 4
bubucha
автор
вставлялась пустая строка

Куда?

В том же самом запросе
25 май 06, 22:24    [2707895]     Ответить | Цитировать Сообщить модератору
 Re: сопоставление полей  [new]
bubucha
Member

Откуда:
Сообщений: 5633
автор
В том же самом запросе

В одном запросе, на чистом sql? Ссори, что отвлек, при таких условиях я пас.
25 май 06, 22:57    [2707961]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить