Страницы: 1
RSS
Автоматизация заполнения накладных
 
Доброго времени суток.

Подскажите, пожалуйста, как  решить проблему автоматизации заполнения накладных. В упрощенном варианте - это книга из двух листов:
1 лист - База данных, содержащая информацию о накладных (номер накладной, дата, наименование товара, цена, количество, сумма)
2 лист - бланк накладной.
С помощью каких функций организовать вывод нескольких записей по номеру одной накладной?
Упрощенный каркас - в прилагающемся файле.
Если  это реализовывалось в Access, то решение было бы гораздо проще. Как в Excel правильно организовать соотношение типа "один ко многим" когда одному номеру накладной соответствует насколько наименований товара?
 
Цитата
Koriolan написал: Если  это реализовывалось в Access, то решение было бы гораздо проще.  Как в Excel правильно организовать соотношение типа "один ко многим"
точно также (файл в папку c:\1)
через Данные - Подключения
запрос с Параметром
Код
SELECT t.`Наименование товара`, t.Цена, t.Количество, (t.Цена*t.Количество) AS Сумма
FROM `C:\1\Пример.xlsx`.`Лист1$` t
WHERE (t.`№ накладной`=?)
ORDER BY t.`Наименование товара`
p.s. к сожалению, не знаю, как побороть №№ (счёт строк с нуля)...
если выборка для инфо - то см. файл, чтобы см. накладные!...
если нужно красиво - то я так красиво ещё не делала  :)
(можно ПКМ по таблице->Свойства внеш. данных-> снять птицу на Номера строк->Обновить таблицу;
а номера вывести слева от таблицы формулой)
Код
=ЕСЛИОШИБКА(СТРОКА(Таблица_Запрос_из_Excel_Files[@[Наименование товара]])-3;"")
НО поясните, как вы хотите и что заполнять (раз тему называете "... заполнение...", а вопрос "...вывод...")
Цитата
Koriolan написал: С помощью каких функций организовать вывод нескольких записей по номеру одной накладной?..
- вопрос: так вам вывод нужен или ввод?
Изменено: JeyCi - 05.10.2015 14:15:34
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Скрытый текст

1. На листе с базой данных вводим информацию вручную.
2. На листе с бланком накладной в ячейку вводим номер накладной
3. В "Табличную часть" накладной автоматически выводятся необходимые данные, соответствующие ее номеру.
 
Готовое решение для заполнения накладных по вашей таблице:
http://excelvba.ru/programmes/FillDocuments

инструкция, как настроить подстановку нескольких строк в шаблон накладной:
http://excelvba.ru/programmes/FillDocuments/MultiRow/Group
 
Доброе время суток
Цитата
Koriolan написал:
2. На листе с бланком накладной в ячейку вводим номер накладной
Так вы на Листе2 попробовали вводить в ячейку C1 номера накладных? Обновление же идёт автоматически.
Цитата
JeyCi написал:
p.s. к сожалению, не знаю, как побороть №№ (счёт строк с нуля)...
Можно воспользоваться когда то подсмотренным приёмом на sql.ru для вывода порядкового номера строки запроса Access. Правда, на большом объёме выводимых строк будет нещадно "тормозить".

Файл стандартно сохранить в папку c:\1
Изменено: Андрей VG - 06.10.2015 05:23:56
 
А просто формулами?
Или сводной таблицей...
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
JeyCi написал:
p.s. к сожалению, не знаю, как побороть №№ (счёт строк с нуля)...
JeyCi, добрый день, можно вот так побороть :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
... а если зайти в "Свойства внешних данных" "Умной таблицы" и там нажать значок справа от поля "Имя:", а в открывшемся окне перейти на вкладку "Определение", то можно подкорректировать поле "Текст команды" вот в этом месте ► "...FROM `Лист1$` t...". Т.е. убрать ссылку на диск и имя файла. Тогда можно менять название и местоположение файла произвольно :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
"...FROM `Лист1$` t...". Т.е. убрать ссылку на диск и имя файла. Тогда можно менять название и местоположение файла произвольно
Увы, не получится. Путь к файлу задаётся в строке подключения после DBQ=
У JeyCi после From так выглядит по тому, что она для построения запроса использовала MS Query, который прописывает путь.
Если же после DBQ= поставить фиктивный путь и имя файла, а после From он будет не указан, то получите сообщение об ошибке "... Объект Лист1$ не найден ядром СУБД Microsoft Access..." - поэксперементируйте ;)
 
всем Доброе утро, тут столько нового ...  
Цитата
Андрей VG написал: а после From он будет не указан, то получите сообщение об ошибке "... Объект Лист1$ не найден ядром СУБД Microsoft Access..." - поэксперементируйте
именно так у меня и происходило, пока подключалась - так и не поняла бы откуда выскакивало предупреждение, если бы не Андрей VG
=========
Цитата
Андрей VG написал: воспользоваться когда то подсмотренным приёмом на sql.ru для вывода порядкового номера строки
обязательно добавлю в свой "арсенал новых знаний" и этот трюк (очень интересный способ счёта по порядку  :oops: )...
Скрытый текст

всем Спасибо за интерес к теме и к моему несовершенству... поскольку совершенству нет предела - замечательно, когда есть люди, не бросающие во тьме незнания  8)
Изменено: JeyCi - 06.10.2015 10:53:05
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
трюк (очень интересный способ счёта по порядку   )...
Я извиняюсь, просто не хотелось бы, чтобы Вы "прошли мимо". Вы обратили внимание, как нумерованы строки в моем примере?
Цитата
Андрей VG написал:
Увы, не получится. Путь к файлу задаётся в строке подключения после DBQ=
Увы, я был неправ :(  (жжжаль :) )
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:  просто не хотелось бы, чтобы Вы "прошли мимо".
да, действительно, и мне не хотелось бы... просто не обновлялось (теперь вижу, если в вашем #8 подправить строку подключения по имени файла/или имя самого файла - то всё работает с нумерацией строк)... только ещё непонятно, как вам доп. столбец с формулой удалось вклинить слева от таблицы (но внутри неё)?  
P/S/ КАЖЕТСЯ ПОНЯЛА:
Встать на таблицу->Конструктор->(Свойства) Размер таблицы->включить левый столбец в таблицу--->поместить туда формулу...
 :) я же говорила, что утро доброе, - как начали день, так его и проводим...
thanks (тоже очень интересный способ счёта по порядку)...
Изменено: JeyCi - 06.10.2015 21:21:42
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
P/S/ КАЖЕТСЯ ПОНЯЛА:
Да, точно, можно и так :)
Я - просто справа в столбец внес формулу, он автоматически был включен в таблицу Query. А потом - перетащил его направо.
Фишка с формулами в доп. столбцах - очень удобна. Особенно если требуется вычислить какие-то значения на основании данных самой таблицы (=РАНГ(), =ПОИСКПОЗ(), сумма или счет нарастающим итогом, №п.п...) запросы такие вещи эээ... "делают неохотно" :). Кстати, если не ошибаюсь, можно такие столбцы с функциями и внутрь вставлять, а не только с краев
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Да без сомнения, вычисляемые столбцы удобная штука, особенно учитывая, что формулы автоматически добавляются при увеличении числа строк возвращаемых запросом. Но вот функция СТРОКА() зависит только позиции записи в таблице на листе Excel, а не от исходного положения в запросе. Иногда это может быть важно.
Цитата
запросы такие вещи эээ... "делают неохотно"
Для Access - да, для MS SQL Server, Oracle и некоторых прочих - легко с их аналитическими/оконными функциями. Их имитация в Access имеет большие накладные расходы. Так нумерация строк имеет стоимость N^2
Изменено: Андрей VG - 08.10.2015 11:30:36
Страницы: 1
Наверх