|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
Организация склада, макрос регистрации поступления пробы12.01.2017, 03:46. Показов 2838. Ответов 31
Метки нет (Все метки)
Всем доброго времени суток!
Создаю файл для учета поступивших проб на склад, многое уже сделал, но не дает покоя одна задача. Есть карточка регистрации и хранения пробы (вкладка "Карточка") после заполнения необходимых полей сохраняем информацию о ней в базе (на что есть специальный макрос и кнопка сохранить). Все вроде бы ничего, да вот есть идея следующего плана: 1. При нажатии кнопки сохранения, проба вносится в базу, где ей присваивается личный номер который из столбца "А" вкладки "База" переносится в ячейку G5 вкладки "Карточка". 2. При изменении статуса пробы, информация в базе, согласно ее номеру должна измениться. 3. Также есть макрос на очистку карточки (в примере не представлен) после выполнения которого в карточку можно вносить данные о новой пробе и сохраняя информацию она переносится в "Базу" на новую строку (ну, данный макрос уже есть). Так вот, Дамы и Господа, учитывая ваш опыт и свежий взгляд на поставленную задачу, прошу помочь мне в написании макроса для следующего: 1. При изменении статуса пробы (при неизменном регистрационном номере) информация о ней обновляется в уже созданной строке, не создавая новую. 2. После очистки бланка и сохранении данных о новой пробе создается новый регистрационный номер, по которому можно отследить и отредактировать (пункт 1 выше) данную пробу. Пример прилагаю. Он урезан в рамках конкретной задачи. Заранее очень благодарен! (а то у самого уже голова пухнет )
0
|
|
| 12.01.2017, 03:46 | |
|
Ответы с готовыми решениями:
31
|
|
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,769
|
|||
| 13.01.2017, 20:39 | |||
|
З.Ы. Файл не смотрел.
0
|
|||
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 16.01.2017, 09:09 [ТС] | |
|
Спасибо Kubuntovod, правильные идеи пишете. Да вот только с файлом этим будут работать много людей, при этом необходимо чтобы они не имели доступ во вкладку «База», чтобы не удалили по случайности сформированные данные.
Идея в том, чтобы дописать уже имеющийся макрос, для исключения человеческого фактора при регистрации пробы. Просто зашли в карточку, занесли данные по пробе, нажали «сохранить» - она автоматом добавилась в базу и ей присвоился номер (Макросом который есть. Присваивать номер макросом или формулой пока не ясно, будет видно, как решится основная идея). Далее если сотрудник хочет изменить статус пробы в уже созданной карточке (с уже присвоенным номером) он допустим меняет статус с «В работе» на «Отработана-на хранении» нажимает кнопку «сохранить» (запускается второй макрос, который ищет номер пробы и меняет данные в выбранной строке) и данные по этой пробе меняются. В дальнейшем когда проба утилизируется, нажимаем кнопку «очистить» (запускается макрос очистки листа. Данный макрос потом напишу.) и данные с листа удаляются. Регистрируя новую пробу в чистом бланке и нажимая сохранить, информация добавляется в новую строку и ей присваивается свой номер.
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 16.01.2017, 09:35 | |
|
Мне кажется лучше было бы в Access это все реализовать! Вы пытаетесь сделать в Excel Access. Все что вы хотите сделать это можно сделать! Нужно время!
Добавлено через 9 минут И тут у вас неувязочка будет в базе! Если вы будете искать ваши данные в базе по номеру пробы и удалять данные в той строке где нашли номер, то как вы потом пронумеровывать будете базу, если у вас там формула нумерации стоит с сылкой на предыдущую ячейку +1!? Или вы будете строку полностью удалять?
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 16.01.2017, 09:47 [ТС] | |
|
Виктор Михалыч, решение задачи в другом программном продукте конечно хорошая, да вот надо в Excel сделать, я почему и прошу помощи.
А насчет строк, ну я думал так, находим номер пробы (столбец А), ну допустим №3 и не меняя этого номера, меняем все значения этой строки начиная со столбца B.
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 16.01.2017, 09:58 | |
|
Я попробую вам набросать немного то, как я вижу это. В базе должны удалятся данные полностью строкой! Никаких формул там не должно быть. Записываться новые данные должны в последнюю пустую строку! Поиск существующей записи по ее номеру и изменение ее реализуем. Но если с этим файлом планируется работать одновременно, не одному человеку, то я бы посоветовал сделать клиент серверную базу в Access!!! Там вы сможете отслеживать и делать выборку по любому критерию! И с данными могут работать одновременно не ограниченное число клиентов!
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 16.01.2017, 11:28 [ТС] | |
|
Виктор Михалыч, из «Базы» данные удалятся не должны, последние изменения по пробе (согласно Порядковому номеру) можно внести перед очисткой «Карточки», например, в ячейке статус (в «Базе») запись изменится на Утилизирована, все остальное остается, так сказать данные для архива.
Заполняя карточку данными о новой пробе и нажимая сохранить заносим информацию о ней в «База», да верно в последнюю пустую строку и тем самым присваиваем ей новый порядковый номер, по которому можно будет ее найти. Сервер настроим, пользоваться файлом будут по очереди.
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 16.01.2017, 11:29 | |
|
Вот что получилось. Не реализовано удаление данных! При двойном клике в ячейке с номером пробы, запускается поиск последнего номера пробы + 1( это если изменяли номер для замены статуса), эта же команда запускается при нажатии на кнопку Записать! Что бы не ввели в ячейку, все равно при новой записи, будет добавлен нужный порядковый номер! Если при поиске для замены статуса, нет номера в базе, будет сообщение.
1
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 16.01.2017, 11:36 | |
|
Можно реализовать выбор данных из базы по его номеру пробы (то есть, при выборе номера пробы, в поля буду вставлены те данные которые относятся к выбранной пробе)
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 16.01.2017, 12:05 [ТС] | |
|
Виктор Михалыч, Благодарю, посмотрю Ваши решения, отпишусь.
0
|
|
|
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,769
|
||
| 16.01.2017, 14:40 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 17.01.2017, 11:12 [ТС] | |
|
Здравствуйте, Виктор Михалыч!
Отличные идеи, прям пнули меня вперед по созданию хорошего, конечного продукта. Поработал с Вашими макросами, немного поправил под себя, а именно: 1. Обезличил в макросах карточки, чтобы можно было создавать их неограниченное количество, без привязки к имени. Ну, например, на складе один стеллаж, на нем одна проба, но есть место для еще одной. Можно создать дубликат карточки, с тем же адресом (склад 2, место 1А), но проба другая. 2. Макрос внесения новых данных в базу, заменил на свой (с вашими доработками), т.к. в «Базе» решил вставить расширенный фильтр для поиска проб (необходимо для ответственных по складу), а Ваш макрос конфликтовал. 3. Объединил все макросы в одну кнопку. Остались не решенные вопросы: 1. Внесение номера новой пробы в карточку. 2. Если добавляем номер в ячейку G5 (любая из карточек) и нажимаем сохранить, через диалоговое окно «Сохранить изменения?», если нажимаем «Ок» запускается макрос на внесение изменений в листе «База», однако при нажатии «Отмена», выдает сообщение «Такого номера пробы нет!» - необходимо, чтобы данное сообщение выводилось только в случае, если реально ее нет в базе при этом мы оставались на этом активном листе (какой-либо из карточек, сейчас перебрасывает в «Базу»). 3. Если добавляем номер в ячейку G5 (любая из карточек) и нажимаем сохранить, через диалоговое окно «Сохранить изменения?», если нажимаем «Ок» запускается макрос на внесение изменений в листе «База». Необходимо, чтобы мы оставались на активном листе (какой-либо из карточек, сейчас перебрасывает в «Базу»). 4. Необходимо, чтобы при внесении изменений через карточку по уже имеющемуся номеру, замене подлежали не только данные окна «Статус», но и все остальные значения, так сказать обновлялись. (просто предвосхищаю возникновение будущих задач, в которых подбиться менять и эти значения). Вот, так. Буду рад если Вы найдете время осмыслить новые задачи и предложить свои решения!
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|||
| 17.01.2017, 13:20 | |||
|
Для замены всех значений, вам нужно сделать, что бы при выборе номера пробы все данные связанные с ней вносились в ячейки вашей карточки и прописать адресацию в коде. Для этого можно вставить ActiveX объект (раскрывающийся список),отключить в нем вывод на печать и при выборе в нем существующих номеров проб записывалось все в карточку!) Можно сделать все на одном листе и через поле ActiveX добавлять номер карточки, а в базе добавить столбец с номерами карточек.
0
|
|||
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 19.01.2017, 03:47 [ТС] | |
|
Здравствуйте, Виктор Михалыч!
Сообщение выдает когда выделяем ячейку пустого поля, не G5 с номером пробы. Добавление имени листа в переменную, убивает всю универсальность макроса, так, допустим будет 120 проб и как следствие 120 карточек, а это значит и 120 макросов, верно или я чего не понимаю. Что касается адресации в коде на замену данных по номеру пробы, вот тут проблема, собственно с этого и родилась данная тема форума. Если не трудно, прошу помочь.
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 19.01.2017, 13:15 | |
|
Объясните зачем вам 4 Карточки(листа)?
Добавлено через 1 час 20 минут Какой у вас Офис 2003, 2007 или 2010?
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 19.01.2017, 20:00 | |
|
Вот вам пример простой базы на основе того, что вы дали. Все что вы хотите сделать в Excel, реализовано в Access ! Здесь десятая часть того, что можно сделать по тому материалу, что у вас в файле. Можно редактировать данные, как в полях формы, так и в самой таблице. Можно использовать встроенные фильтры по выбранному критерию при правом клике, в каком либо поле. Можно сделать фильтрацию данных по любому критерию и по любому полю из базы, через форму(так как это реализовано на кнопке «Выбор по статусу». Можно делать выборку за периоды дат и многое другое. Вы пытаетесь сделать в Excel – Access. Это можно, но это будет громоздко и зачем? Дело в том, что при применении макросов, восстановить замененные данные не возможно(если их не зарезервировали макросом) и много других нюансов. Для безошибочной работы вашей базы в Excel, нужна проверка на ввод данных, где гарантия, что вместо цифры в ячейке с номером пробы, вставят букву или знак какой-то прилепят случайно. По мере заполнения вашей базы, скорость выполнения макросов будет уменьшаться и в конечном итоге могут быть ошибки и потом….. В Access все сводится к тому, что бы все было через клиентский интерфейс и с «защитой от дурака». Максимально облегчить и упростить ввод и извлечение данных. Тут не реализован только отчет по выбранным данным(если вас это заинтересует, я покажу и продолжим дальше).
1
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
||
| 19.01.2017, 21:41 | ||
|
Зачем дубликаты листа Карточка1??????? Поясните!!!! Вот ваш файл. Если в ячейке с номером пробы ничего нет, то будет сделана новая запись. При выборе из ComboBox1 номера пробы, данные запишутся в активный лист.
0
|
||
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 19.01.2017, 23:20 | |
|
Упс. Не тот файлик скинул.
1
|
|
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 19
|
|
| 20.01.2017, 08:35 [ТС] | |
|
Виктор Михалыч, здравствуйте!
Спасибо за пример! Смотрю, разбираюсь. Офис у меня стоит 2013. После Ваших замечаний и предложений, уже начинаю сомневаться по поводу нескольких карточек, но а идея была в том, что в планах было немного визуализировать склад, прям нарисовать полки, на которой видно, допустим, название пробы нажимая на нее, у нас открывается относящаяся к ней карточка. Что относительно продвижения в увлекательный и удобный мир Access, так я всеми руками за, но вот только существует большая трудность административного характера - на многих "машинах" у нас нет Access и покупать его вряд-ли будут, а еще многие "мамонты" просто не разу его не видели в глаза и негативно воспримут идею о его использовании. А файл это сделать надо. Вот такая печалька.
0
|
|
|
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
|
|
| 20.01.2017, 08:45 | |
|
Ясно. Access идет в стандартном наборе офиса. Удобен тем, что делается клиент-серверная база и доступ к ней может иметь одновременно несколько человек. На счет визуализации, то можно через форму визуализировать вашу базу, только я не знаю что вам и как нужно.
Добавлено через 1 минуту Можно сделать что все будет через формы делаться.
0
|
|
| 20.01.2017, 08:45 | |
|
Помогаю со студенческими работами здесь
20
Как получить название склада по ID склада? Модифицированный метод наилучшей пробы Нужно для пробы 5 статей по 700 знаков! Пробы пера: матюки и советы: что криво, на сколько и как лучше? Найти точку минимума функции методом случайного поиска с возвратом и наилучшей пробы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений в EXE. Здесь описаны базовые шаги для старта программирования с помощью CMake. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|