Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148

Dlookup для новичка

17.10.2016, 21:59. Показов 2015. Ответов 25
Метки нет (Все метки)

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

Подскажите, пожалуйста, как использовать Dlookup в ситуации когда в одной форме используются данные с двух таблиц (вернее две связанные таблицы).

При выборе в списке9 в полях17,19,21 должны отображаться соответствующие параметры.
У меня получилось сделать
Visual Basic
1
2
3
Me.Поле17 = DLookup("MODELNAME", "MODELS", "[IDMODEL]=" & Me.Список9.Column(1))
Me.Поле19 = DLookup("[IDMODELTYPE]", "MODELS", "[IDMODEL]=" & Me.Список9.Column(1))
Me.Поле21 = DLookup("IDPRODUCER", "MODELS", "[IDMODEL]=" & Me.Список9.Column(1))
но в данном случае MODELNAME - отображается хорошо, а IDMODELTYPE и IDPRODUCER - цифрами. но то то и понятно - это же ID, но если я поставлю NAMEMODELTYPE и NAMEPRODUCER, то у меня вообще в полях ничего не меняется. какой то связи не хватает. А какой? Вразумите
Вложения
Тип файла: rar DB.rar (33.7 Кб, 6 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2016, 21:59
Ответы с готовыми решениями:

DLookUp для поля с несколькими значениями
Есть поле в форме, содержимое выведено в поле через DLookUp, в настройках поля в таблице указанно Несколько значений для поля - Да....

Не работает функция DLookUp для автозаполнения данных
Доброго времени суток. Есть Таблица, 3 поля, форматы заданы согласно данным. По таблице создана форма, в источнике данных нескольких полей...

Структура бд для новичка
Есть, например, несколько таблиц: статьи, товары, категории. К этим трем нужно добавить несколько доп-параметров, например рейтинг и еще...

25
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
17.10.2016, 22:35
Я не гуру, но вот так мне больше нравиться. Выполняется 1 запрос, а не 3.
Вложения
Тип файла: rar DB.rar (34.8 Кб, 19 просмотров)
1
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
17.10.2016, 22:54  [ТС]
Спасибо!...как здорово с одним запросом.
А если при двойном нажатии на элемент списка нужно открыть форму для редактирования именно этой конкретной записи, то просто через макрос открыть ее или нужно как то указывать конкретную запись, как это организовать?

Спасибо заранее)
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
17.10.2016, 23:37
В вашем списке используется 2 поля из таблицы. Первое с ID скрыто.
При событии "двойное нажатие кнопки" открывайте нужную форму и передавайте в неё Me.Список9.ItemData(Me.Список9.SelectInd ex) (вроде так)
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
17.10.2016, 23:49
Переделал немного алгоритм. Не нравиться мне смена источника для формы.
Вложения
Тип файла: rar DB.rar (39.1 Кб, 13 просмотров)
1
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
17.10.2016, 23:57  [ТС]
Спасибо!

Уже завтра попробую..

Очень классный форум и спецы тут...а то на начальном этапе всю голову с запросами сломать можно)))

Добавлено через 2 минуты
Но по сути и первое и второе верно? А по скорости обработки при значительном количестве данных какой способ легче?
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
18.10.2016, 02:14
Что имеется ввиду под значительным количеством?
0
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
18.10.2016, 05:20  [ТС]
Я имею ввиду, что когда база будет расти (когда то же этот момент настанет))), то данных будет в таблице побольше. Собственно и запросам потребуется больше времени для обработки. Исходя из этого я и задал вопрос: какой вариант целесообразней (более оптимизирован) первый или второй. или по сути одно и тоже?
0
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
18.10.2016, 07:00
ShikuS, вообще без кода всё прекрасно работает
Вложения
Тип файла: zip DB_01.zip (41.2 Кб, 12 просмотров)
1
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
18.10.2016, 07:08
corbis, вот это
Visual Basic
1
Me.Список9.ItemData(Me.Список9.ListIndex)
вполне себе равно вот этому
Visual Basic
1
Me.Список9
. Свойство Value является свойством по-умолчанию и обычно опускается.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
18.10.2016, 07:22
Цитата Сообщение от ShikuS Посмотреть сообщение
то данных будет в таблице побольше.
насколько больше
100-1000-10000-100000 записей
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
18.10.2016, 11:36
Всегда можно совсем старые записи сохранить в отдельной БД.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.10.2016, 11:48
За 9 лет пока ни разу не пришлось сохранять старые данные в другую БД.
0
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
18.10.2016, 16:45  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
насколько больше
100-1000-10000-100000 записей
Планируется пока не более 10000 записей в подобных таблицах с выводом в списках с фильтрами.
Поэтому просто уточнил. Если есть 2 кода, которые выполняют одну задачу, то быть может быть какой то работает лучше или быстрее (т.е. кабриолет - машина, но под дождем лучше авто с крышей)

Добавлено через 2 минуты
Цитата Сообщение от Панург Посмотреть сообщение
ShikuS, вообще без кода всё прекрасно работает
Ваш код (запрос) работает, но притормаживает, а код Корбиса (corbis) - летает, ИМХО
Но спасибо...идеи - это наше все.))
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
18.10.2016, 16:48
Цитата Сообщение от alvk Посмотреть сообщение
За 9 лет пока ни разу не пришлось сохранять старые данные в другую БД.
Повезло. Я в свое время ежегодно скидывала данные старше года в архив, пересчитывала начальные остатки и чистила базу от подробностей операций (оставляла только уже подбитые итоги в таблицах для отчетов).
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.10.2016, 16:56
Цитата Сообщение от texnik-san Посмотреть сообщение
Я в свое время ежегодно скидывала данные старше года в архив,
Одна из моих БД с ole полями достигла 32 гигабайт, сейчас всё в файлах. Никаких архивов.
Вообще не представляю ситуацию. Большой объём? SQL сервер есть, бесплатный до 16 гиг вроде или уже больше.
Выводится много данных? Так в запросах или вьюшках ограничения выставляем. Что ещё может быть? Кардинально изменились справочники? Ну старые сохраняем рядом, зачем удалять
0
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
18.10.2016, 17:00
Цитата Сообщение от ShikuS Посмотреть сообщение
Ваш код (запрос) работает, но притормаживает, а код Корбиса (corbis) - летает, ИМХО
торопишься? Там кода нет.
0
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
18.10.2016, 17:09  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
торопишься? Там кода нет.
Пишу одно и тоже))...но повторюсь. не то что бы тороплюсь (кода нет - запросы есть), но хочу встать на сторону пользователя и посмотреть: мне как пользователю будет приятнее не только правильное исполнение программой своих функций, но и скорость выполнения операций - это как Глянеш на Анроид - система меня устраивает, свободный код - лепи не хочу, но можно встретить такие тормоза порой, что мощностей топовых смартфонов не хватает. Жизнеспособно все, но какой вариант более оптимален.
Вложения
Тип файла: rar DB var1.rar (34.8 Кб, 2 просмотров)
Тип файла: rar DB var2.rar (39.1 Кб, 3 просмотров)
0
6 / 6 / 0
Регистрация: 14.10.2016
Сообщений: 148
18.10.2016, 23:48  [ТС]
Цитата Сообщение от corbis Посмотреть сообщение
Что имеется ввиду под значительным количеством?
Уважаемый Corbis, для меня значительным количеством будет являться таблица (данные будут использоваться списком как в примере по теме) до 10000.

Я тут обнаружил, что первый ваш вариант, все-таки лучше получается, т.к. при загрузке формы все поля уже изначально заполнены в соответствии со списком. Во втором варианте при загрузке данные в полях отсутствуют до тех пор, пока не выберешь запись в списке. Это же наблюдается и в примере, который прислал Панург.

Спасибо
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
19.10.2016, 00:52
у вас есть глобальная переменная. Она получает значение при нажатии на запись в списке. До нажатия значения нет и соответственно форма пуста. Если записать в переменную значение при открытии формы, то всё будет работать.

Visual Basic
1
2
3
Private Sub Form_Load()
    SetIdMod Me.Список9.ItemData(0)
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2016, 00:52
Помогаю со студенческими работами здесь

Книги с примерами для новичка по БД
Посоветуйте книгу с которой можно нормально начатиь изучение баз данных. Желательно чтобы в книге присутствовали примеры и она не была...

Источник строк для Новичка!
Доброго времени суток! Дайте ссылку, направление, куда копать, по работе с источником строк-список значений... не получается у меня...

Помощь в построении БД для новичка
Всем доброго времени суток. В общем имеется файл в формате Excel в котором реализуются заявки для клиентов. Прикладываю его для...

Посоветуйте какую-нибудь СУБД попроще, для полного новичка
Всем здравствовать. Знаю, что тема уже поднималась на форуме, но в архивах ответа на свой вопрос так и не нашел. Изучаю сейчас SQL....

Dlookup
Вот такой код: dim a as integer a = dlookup("", "T1", " = " & forms!Forma1!Список1.Column(1)) Не хочет работать. При...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru