Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аналог функции ВПР... / 19 сообщений из 19, страница 1 из 1
05.11.2011, 04:43
    #37512418
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Имеем две не связанных между собой таблицы. Ну например таблица с именами и фамилиями, где каждому сочетанию имени и фамилии соответствует уникальный код (принимаем что повторений сочетания быть не может) и вторую таблицу в которой сочетания имен и фамилий могут повторяться какое угодно число раз. Необходимо во второй таблице напротив каждого сочетания имени и фамилии расставить уникальный код из первой таблицы.
В экселе я бы это делал через функцию ВПР, предварительно создав в обоих таблицах дополнительный столбец с конкатенацией имен и фамилий.
...
Рейтинг: 0 / 0
05.11.2011, 05:05
    #37512419
alvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Изерлонер,

Dlookup
...
Рейтинг: 0 / 0
05.11.2011, 08:56
    #37512431
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Так побыстрее будет
Код: plaintext
1.
update Таблица2 inner join Таблица1 on (Таблица2.Фам & "|" & Таблица2.Имя)=(Таблица1.Фам & "|" & Таблица1.Имя)
set Таблица2.id=Таблица1.id
...
Рейтинг: 0 / 0
05.11.2011, 10:12
    #37512456
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
mds_world,

Боюсь, что Jet вот такое выражение превратит в необновляемый запрос:
Код: plaintext
(Таблица2.Фам & "|" & Таблица2.Имя)=(Таблица1.Фам & "|" & Таблица1.Имя)

По моему проще так:
Код: plaintext
1.
2.
3.
update Таблица2 inner join Таблица1 on
     (Таблица2.Фам = Таблица1.Фам) AND
     (Таблица2.Имя = Таблица1.Имя)
set Таблица2.id=Таблица1.id

В любом случае надо попробовать в реальных данных.

А может действительно и первый вариант проскочит. Но у меня, как правило, Jet не терпит формулы при связках таблиц. Ругается типа "запрос если что необновляемый".
...
Рейтинг: 0 / 0
05.11.2011, 10:36
    #37512461
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
studieren,

да, есть такое опасение. Но в том варианте, который требуется ТС, где в мастер-таблице уникальное сочетание, скорее всего пройдет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.03.2015, 07:43
    #38903280
Azer Xalilov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
studieren,

Добро утро. где должна писат это чтобы один таблица код материала и группа писал, как надо другом таблице код материал писат чтобы группа автоматические заполнить первый таблице. Прошу помоч
...
Рейтинг: 0 / 0
13.03.2015, 12:01
    #38903605
Аналог функции ВПР...
Если в обеих таблицах есть "код материала", то в таблице2 группу хранить не нужно и даже вредно. Группу всегда можно получить в запросе/форме/отчете.
...
Рейтинг: 0 / 0
11.06.2015, 14:45
    #38982322
Влад и мир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Доброго дня! :)

У меня такой вопрос.

Я использую функцию DLookUp для подстановки значения в поле по критерию:

Код: vbnet
1.
=DLookUp("[ОГРН]";"[Клиенты]";"[Заёмщик]='" & [Формы]![Форма заполнения]![Заёмщик] & "'")



Если я вставляю эту формулу в поле (свойства поля - данные) то всё работает.

А как сделать, чтобы прикрепить эту формулу к кнопке?
Т.е. при нажатии на кнопку значение (по условию формулы) вставлялось бы в нужное поле (назовём его "Pole").

Я пробовал в свойстве Кнопки ярлык События / Нажатие кнопки прописать:

Код: vbnet
1.
[Pole]=DLookUp("[ОГРН]";"[Клиенты]";"[Заёмщик]='" & [Формы]![Форма заполнения]![Заёмщик] & "'")


Ну... не работает :)
Кто знает, как тут правильно сделать?
Благодарю!
...
Рейтинг: 0 / 0
11.06.2015, 14:55
    #38982340
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Pole.ControlSource = "=DLookUp(""[ОГРН]"";""[Клиенты]"";""[Заёмщик]='"" & [Формы]![Форма заполнения]![Заёмщик] & ""'"")"
...
Рейтинг: 0 / 0
11.06.2015, 15:12
    #38982373
Аналог функции ВПР...
Влад и мир
Код: vbnet
1.
[Pole]=DLookUp("[ОГРН]";"[Клиенты]";"[Заёмщик]='" & [Формы]![Форма заполнения]![Заёмщик] & "'")


Ну... не работает :) Очень популярные грабли. В конструкторе запроса/формы/отчета разделитель аргументов выглядит как " ; ", а в коде VBA нужно указывать " , ", а также " ' " нужно заменить на " "" ", т.е.:
Me![Pole]=DLookUp("[ОГРН]" , "[Клиенты]" , "[Заёмщик]= "" " & [Формы]![Форма заполнения]![Заёмщик] & " "" ")
...
Рейтинг: 0 / 0
11.06.2015, 15:37
    #38982412
Влад и мир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Благодарю! :)
...
Рейтинг: 0 / 0
15.06.2015, 08:18
    #38983663
Влад и мир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Пробовал два способа. Не работает...

По последнему предложенному варианту выводит ошибку 2465 .

Приложению "Название базы" не удаётся найти поле "|", указанное в выражении.

Вот сама формула:
Код: vbnet
1.
Me![Pole] = DLookup("[ОГРН]", "[Клиенты]", "[Заёмщик]=""" & [Формы]![Форма заполнения]![Заёмщик] & """")



Вроде всё верно..?
...
Рейтинг: 0 / 0
15.06.2015, 08:34
    #38983676
Влад и мир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Вроде нашёл затык... :)

Вот так работает:

Код: vbnet
1.
Me![Pole] = DLookup("[ОГРН]", "[Клиенты]", "[Заёмщик]='" & Forms("Форма заполнения").Заёмщик & "'")


Благодарю за подсказки!
Добра всем!
...
Рейтинг: 0 / 0
15.06.2015, 09:04
    #38983694
П-Л
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Мне очень не нравится сам подход - лукапить нужные поля из справочника. Добавить справочник джоином в источник строк формы - и все поля будут всегда под рукой. Ничего кодировать не надо.
...
Рейтинг: 0 / 0
15.06.2015, 09:42
    #38983718
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
П-ЛМне очень не нравится сам подход - лукапить нужные поля из справочника. Добавить справочник джоином в источник строк формы - и все поля будут всегда под рукой. Ничего кодировать не надо.
Дык ониж новый мир строят !!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.11.2019, 14:47
    #39887495
C1rcleYNWA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
mds_world,

Сообщение 156, уровень 15, состояние 1, строка 9
Неправильный синтаксис около ключевого слова "inner".
...
Рейтинг: 0 / 0
11.11.2019, 15:07
    #39887505
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
C1rcleYNWA , читайте по буквам: Microsoft Access
...
Рейтинг: 0 / 0
11.11.2019, 16:32
    #39887563
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
Изерлонер
Имеем две не связанных между собой таблицы. Ну например таблица с именами и фамилиями, где каждому сочетанию имени и фамилии соответствует уникальный код (принимаем что повторений сочетания быть не может) и вторую таблицу в которой сочетания имен и фамилий (так делать нельзя-в двух таблицах писать имя и фамилию-ошибки неизбежны.Между этими таблицами должна,обязана быть связь 1:М. Не связывать эти таблицы есть грубое нарушение правил "базостроения". Заведите во второй таблице поле связи,ручками,т.к. операция разовая запросом на изменение, заполните его, а на форме разместите полеСоСписком данные-поле связи.И больше так не делайте) для него могут повторяться какое угодно число раз. Необходимо во второй таблице напротив каждого сочетания имени и фамилии расставить уникальный код из первой таблицы.
В экселе я бы это делал через функцию ВПР, предварительно создав в обоих таблицах дополнительный столбец с конкатенацией имен и фамилий.
...
Рейтинг: 0 / 0
11.11.2019, 17:42
    #39887631
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог функции ВПР...
sdku,
не посмотрел что сообщению более 8 лет-совсем плохой стал-сдуру ответил
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аналог функции ВПР... / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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