С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
1

Dlookup две таблицы

16.02.2014, 03:07. Показов 4013. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Я не далёк в access только на него перехожу из Excel. Гуглил сколько мог не нашел ответа. Буду очень признателен за помощь!
Вопрос у меня следующий, есть две таблицы:
Supplier_List
name

Supplier_Product
name | Code | Product

мне нужно слукапить Code в таблицу Supplier_List по критерию name

Я знаю, что есть возможность сделать Inner join

Но всё таки хотел спросить, как нужно написать правильно запрос, т.к. у меня все время выскакивает окно с ошибкой.

Expr1 = dlookup("[Code]","Supplier_Product","Supplier_List.[name]= " & [name])
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2014, 03:07
Ответы с готовыми решениями:

DlookUP две таблицы и форма
Всем, привет. Подскажите нубу, что делаю не так. Есть две таблицы и одна форма. В одной таблице...

DLookup? как обратиться к тексту определенной записи таблицы
Уважаемые программмеры подскажите пожалуйста, для того чтобы получить текст поля из таблицы...

FIREBIRD, две базы, две таблицы, скопировать данные из одной в другую
В наличии имеются две базы данных Firebird. Часть информации из одной нужно скопировать в другую....

Слейте две линейные таблицы A и B в новую таблицу C, поставив элементы таблицы A на нечетные места, а элементы таблицы B – на четные
Помогите пожалуйста с решением. Слейте две линейные таблицы A и B в новую таблицу C, поставив...

27
Эксперт MS Access
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
16.02.2014, 07:17 2
Проще было сделать пример, чем объяснить. Посмотрите - то что надо?
Вложения
Тип файла: rar Database31.rar (11.0 Кб, 36 просмотров)
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 16:35  [ТС] 3
Вячеслав,

спасибо за пример. Только я не совсем понял, что вы сделали?

Вот допустим в таблице Supplier_Products поле name соответствует полю name в таблице Supplier_List, т.е. Банан и Банан.
А кода поставщика в таблице Supplier_Products нет. И мне нужно из Supplier_List подтянуть код в Supplier_product.

Но только сделать я это хочу с Dlookup через запрос из цели посмотреть, как это работает.

Вы можете подсказать синтаксис Dlookup в этом случае?

Спасибо!
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 17:05 4
Цитата Сообщение от Vlad01 Посмотреть сообщение
Вот допустим в таблице Supplier_Products поле name соответствует полю name в таблице Supplier_List, т.е. Банан и Банан.
А кода поставщика в таблице Supplier_Products нет. И мне нужно из Supplier_List подтянуть код в Supplier_product.
Создайте запрос в котором будут обе таблицы, соединенные по связующему полю. Типа такого
SQL
1
2
SELECT Supplier_List.Code, Supplier_Product.[name]
FROM Supplier_Product INNER JOIN Supplier_List ON Supplier_Product.[name]=Supplier_List.[name]
В этом запросе уже будут интересующие вас значения.

Для того, чтобы найти Code для определенного [name], которое задается, например из формы MyForm, можно применить длукап к показанному запросу, сохраненному скажем под именем "qCode"
Visual Basic
1
Expr1 = dlookup("[Code]","qCode","[name]= '" & MyForm.[name]) & "'"
Рекомендация: не используйте для имен полей, таблиц зарезервированные слова, типа name. Могут быть трудноуловимые ошибки
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 20:20  [ТС] 5
mobile,

а можно ли сделать это как, скажем, с фнкцией vlookup в Excel, я знаю, что это совсем не то же самое, но мне из любопытства это не дает спать ночью )

вот если я использую не "inner join on", а функуию dlookup для того, чтобы свести данные имя, код по имени через запрос.

я просто не совсем понимаю, почему у меня ошибка в синтаксисе все время вываливается.

Expr1: DLookUp("code","supplier_list","name"= " & "supplier_product.[supplier]""" )

я уже с кавычками по разному пробовал, но.. как то ничего не получается. Либо напротив name заполняется Error

Добавлено через 2 часа 43 минуты
что то я с синтаксисом не могу разобраться, то ли дело в кавычках, то ли еще в чем. Я уже попробовал кучу комбинаций ничего не получается.
Ребята, может кто нибудь помочь разобраться?

Спасибо!
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
16.02.2014, 20:48 6
Vlad01, чего то кавычек многовато... а критерий надо обрамлять в одинарные 'кавычки'
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 20:50  [ТС] 7
что то не получается:

Expr1: DLookUp("[field3]","supplier_list","[supplier]=" & 'supplier_list.[supplier]')
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
16.02.2014, 21:00 8
Выложи БД, посмотрим.
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 21:11  [ТС] 9
Прикрепил в аттач.
Querry4

я ищу field3 в таблице Supplier_List по критерию Supplier name 1 в таблице Supplier_List должен соответствовать Supplier в таблице Supplier Product
Вложения
Тип файла: rar Database2.rar (60.3 Кб, 11 просмотров)
0
Эксперт MS Access
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
16.02.2014, 21:25 10
Vlad01, Посмотрите, я что-то слепил. Правда без DlookUp, но может быть подойдет? Или это опять не то, что надо?
Вложения
Тип файла: rar Database22.rar (60.9 Кб, 18 просмотров)
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 21:28  [ТС] 11
Вячеслав, Вы использовали IIF.

А можно тоже самое сделать, но только с dlookup?
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 21:33 12
Vlad01, реляционные БД это почти целиком SQL. И чем раньше вы уйдете от екселя в скл, тем дальше продвинетесь.

Вот запрос, который, я думаю вас устроит. И без всяких длукапов
SQL
1
2
SELECT DISTINCT Supplier_Products.Supplier, Supplier_List.Field3
FROM Supplier_List INNER JOIN Supplier_Products ON Supplier_List.[Supplier name1] = Supplier_Products.Supplier;
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 21:52  [ТС] 13
да mobile Вы правы. К inner join я пришел вчера на этом же форуме нашел.

Просто интересно было как работает Dlookup и можно ли это сделать или нет.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
16.02.2014, 22:13 14
От Dlookup лучше отказаться если будете его использовать в циклах. Как одноразовый запрос, то можно применять.
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 22:27  [ТС] 15
Rude,

так я и не собирался его использовать в циклах, я в синтаксисе разобраться не могу

у меня сообщение об ошибке всегда появляется. syntax error
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
16.02.2014, 22:38 16
Цитата Сообщение от Vlad01 Посмотреть сообщение
у меня сообщение об ошибке всегда появляется. syntax error
Не удивительно, вы ищете [code] в таблице Supplier_Product, где Supplier_List.[name]= [name]
Уже видно 2 ошибки.
Также критерий надо обрамлять одинарными 'кавычками', а поле Name в таблицах использовать вроде бы нельзя.
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 9
16.02.2014, 23:02  [ТС] 17
а если я ссылаюсь на другую таблицу?

Dlookup("ищу код", "в таблице№1", "где имя =" & таблица№2.[имя])

вот так?
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 23:21 18
Цитата Сообщение от Vlad01 Посмотреть сообщение
а если я ссылаюсь на другую таблицу?
Dlookup("ищу код", "в таблице№1", "где имя =" & таблица№2.[имя])
Тут 2 момента, которые надо учитывать:
1. таблица№2 должна быть доступна. Если в запросе, то должна быть во From запроса. Если в коде ВБА, то должен быть создан рекордсет по этой таблице, если ссылка на форму, то источник формы должен содержать искомую таблицу.
2. Если сравниваемое поле текстовое, то и подавать ему надо значение, которое компилятор поймет как текст. Для этого ссылочное значение должно быть в апострофах (или кавычках). Иначе символьное значение будет понято как неизвестный объект и выдана ошибка.

Предположим, что ваше выражение находится в запросе, где таблица№2 указана во From запроса. Тогда, с учетом требования 2
Visual Basic
1
Dlookup("ищу код", "в таблице№1", "где имя ='" & таблица№2.[имя] & "'")
0
21 / 4 / 0
Регистрация: 03.01.2017
Сообщений: 127
24.02.2017, 16:26 19
Коллеги, привет!

Как думаете, почему длукап выдает #Error?

Прописываю в поле Field В конструкторе запроса на выборку.
SQL
1
Storage: DLookUp("[Dealer Code]";"Storage";"[Storage].[ID]=" & [TEMP_ID].[ID])
Цель - подтянуть значение Dealer Code из таблицы Storage для каждого ID

Спасибо!
 Комментарий модератора 
между сообщениями 3 года
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
24.02.2017, 16:50 20
Цитата Сообщение от Dmitry_Morozov Посмотреть сообщение
из таблицы Storage для каждого ID
может в ТЕМР нет такого кода
0
24.02.2017, 16:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2017, 16:50
Помогаю со студенческими работами здесь

Добавление записей в две таблицы с id вставленных значений от первой таблицы
Всем привет! Подскажите, пожалуйста, такой момент. Php PDO. На сервер приходит json. Разбираю...

Объединить две таблицы по двум одинаковым полям. Не показываются данные со второй таблицы
set safety off select tbl1 Index ON pole1 TAG pole1 OF C:\tbl1.dbf.cdx select tbl1 Index...

В две таблицы на оисте добавление строки внизу таблицы
Добрый день! Надеюсь не ошибся с темой! Тема эта изъезженная до нельзя, но решения не смог...

даны две таблицы, создать третею где каждый элемент равен сумме соответсвующих элементов 1-ой и 2-ой таблицы?
даны две таблицы, создать третею где каждый элемент равен сумме соответсвующих элементов 1-ой и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru