|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
||||||
Функция dlookup в ленточной форме15.07.2014, 07:31. Показов 4802. Ответов 38
Метки нет (Все метки)
всем привет!
подскажите как реализовать функцию DLookup в ленточной форме? вешаю на событие после обновления поля со списком эту функцию, значения меняются во всех строках, а нужно чтобы менялось только в текущей(!) возможно есть какой-то альтернативный способ, рассмотрю любой... заранее всем спасибо! Добавлено через 14 минут вот сам код:
0
|
||||||
| 15.07.2014, 07:31 | |
|
Ответы с готовыми решениями:
38
Функция Count на поле в ленточной форме
Автоподстановка в форме (ф-ция DLookup) |
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 22.07.2014, 12:57 | |
|
Вы не вставили NZ в условия в Поле1. Там была ошибка. Сделал его видимым для проверки. Все нормально считается.
1
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 22.07.2014, 13:17 | |
|
Форма перенасыщена вычисляемыми полями с достаточно тяжелыми формулами. Это и медленно, и чревато возможной дестабизизацией формы. Гораздо эффективней и безопасней перетащить все расчеты в исходный запрос и вместо расчетных полей в форме сделать поля на основе полей запроса. Форма станет значительно легче и удобней в работе.
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 22.07.2014, 13:22 [ТС] | |
|
mobile, здравствуйте
вы имеете в виду: создать отдельно запрос, или модифицировать запрос - источник формы?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 22.07.2014, 13:26 | |
|
Хороший вариант это вставить в запрос-источник формы все вычисления. Полям формы, вместо вычислений задать источником эти поля запроса с нужными расчетами.
Добрый день, sekonya
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 22.07.2014, 14:45 [ТС] | |
|
mobile, ок, сейчас сделаю)
еще маленький вопрос, почему когда я в примечании формы ставлю поле с формулой "=sum([поле6])", в режиме формы возвращает #ошибка? Добавлено через 20 минут mobile, вот такая конструкция =Nz(DLookUp("[сумколНорм]";"сумматпоз";"идпозиции=" & Nz([Формы]![смета]![ИдПозиция];0))*DLookUp("[сумЦенаЗаЕдМатСмет]";"сумматпоз";"идпозиции=" & Nz([Формы]![смета]![ИдПозиция];0));0) в запросе возвращает ноль, понятно что ссылка идет на форму, как это обойти? пробовал в запрос - источник формы вставить следующее NNN: Nz(DLookUp("[сумколНорм]";"сумматпоз")*DLookUp("[сумЦенаЗаЕдМатСмет]";"сумматпоз");0), запрос возвращает одинаковые значения для всех строк Добавлено через 55 минут mobile, подскажите пожалуйста, как мне в запросе сделать вычисляемые поля?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 22.07.2014, 15:29 | |||||||
Сообщение было отмечено sekonya как решение
Решение
1
|
|||||||
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 22.07.2014, 15:43 | ||||||
|
А решение с джойнами вместо лукапов будет побыстрее
0
|
||||||
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 22.07.2014, 16:20 [ТС] | |
|
подскажите почему при сложении в SQL я использую знак "+", результат выдает как строковое сложение?
т.е. если я складываю поля ЗатратыНаМатериалы и ЗатратыНаМашМех выходит такое: 0,12+3,00=0,123,00 как от этого избавиться? заранее всем спасибо!
0
|
|
|
Модератор
|
|
| 22.07.2014, 16:28 | |
|
значит по крайней мере одно из полей --символьное
или проблема с разделителем(точка-запятая)
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 22.07.2014, 16:30 [ТС] | |
|
shanemac51, у складываемых полей формат "фиксированный" при помощи функции format()
0
|
|
|
Модератор
|
|
| 22.07.2014, 16:58 | |
|
ЕСТЕСТВЕННО,
FORMAT переводит число в строку
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 22.07.2014, 17:51 [ТС] | |
|
shanemac51, подскажите пожалуйста, как мне отформатировать числа, а то много знаков после запятой получается, а при отображении этих данных в форме, в свойствах этих полей, выпадает пустой список форматов?
Добавлено через 50 минут и все же, кто мне ответит на вопрос? почему в примечании ленточной формы в поле прописываю формулу =sum(поле6) а мне акс возвращает #ошибка?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 22.07.2014, 18:59 | |||||||
Сообщение было отмечено sekonya как решение
Решение
1
|
|||||||
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 23.07.2014, 14:09 [ТС] | |
|
mobile, здравтсвуйте!
можете подсказать у меня в форме 2 каскадных поля со списком, при выборе значения в первом поле со списком нужно чтобы во втором поле появилась первая запись из источника строк второго поля со списком... т.е. если я выбираю страну "Россия" в первом списке, то во втором автоматически появляется "Москва" заранее спасибо!
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 23.07.2014, 15:12 | ||||||
|
Вообще говоря, связанные списки создать легко. В коде на событии AfterUpdate первого кобобокса пишете (с поправкой на правильные имена)
Сложность в том, что для любых форм, в том числе многозаписных, контрол на форме ОДИН. И когда Вы меняете ему источник, то он меняется для всех записей в форме. А ведь для каждой записи в связанных комбо он должен быть разный, зависящий от значения первого комбо. Вот поэтому в простой форме все идет, а в многозаписных нет - получаются конфликты в записях.
1
|
||||||
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 23.07.2014, 15:17 [ТС] | |
|
mobile, это вы задаете источник строк для второго комбобокса, а он у меня есть!
вопрос в том, чтобы во втором комбобоксе появилась первая запись источника строк, после обновления первого комбобокса...
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 23.07.2014, 15:22 | ||||||
|
Не уверен, что правильно понял.
Установить комбо на первую запись:
1
|
||||||
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 23.07.2014, 15:59 [ТС] | |
|
mobile, спасибо огромное!
Добавлено через 33 минуты mobile, еще маленький вопросик по организации БД есть таблица "смета", смета делится на разделы (таблица "разделы"), а разделы в свою очередь делятся на позиции (таблица "позиции")... но иногда смета не делится на разделы, а сразу делится на позиции... как в таком случае организовать схему данных?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||||||||
| 23.07.2014, 16:59 | ||||||||||||
|
Но иногда можно прибегнуть к достаточно простому варианту, причем без какого-либо серьезного увеличения кода. В таблице Разделы образуем запись с "виртуальным" кодом не относящимся ни к одному фактическому разделу. И если Смета делится сразу на позиции без разделов, то пишем этот код. Все матобеспечение сохраняется, ничего добавлять не надо. Единственно, могут быть трудности, если в справочнике Разделы код раздела типа Счетчик. Хотелось бы это "виртуальный" номер несуществующего раздела сделать выделяющимся из общей массы. Но это тоже нетрудно сделать. Например хотим присвоить "виртуальному" разделу номер 0. Счетчик начинается с 1, так что 0 это удобно 1. Пишем запрос
Вот такой вариант. Если он приемлем.
1
|
||||||||||||
| 23.07.2014, 16:59 | |
|
Функция DLookup Функция Dlookup
Функция DLookUp не работает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|