Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
Excel

Конкурентная запись в книгу

17.06.2025, 17:22. Показов 2414. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Есть расшаренная книга. Работа с ней ведется с помощью Microsoft Excel 15.0 Object Library. И имеются рабочие процессы, которые могут записывать в книгу данные параллельно. Последние однозначно пишут данные в разные ячейки, т. е. конфликты исключены. Скажем, имеется 4 процесса. При параллельном запуске ожидается 4 следующие друг за другом записи. Но в результате работы потоков выходит непредсказуемое поведение, столкнулся со следующими:
1) штатное поведение (редко)
2) "Файл заблокирован другим пользователем"
3) то же, что и выше, но с добавлением "повторите попытку позже."
4) выходит окно с сохранением копии книги...
5) заполняется лишь некоторые строки и в произвольном порядке
Возможно сейчас скажут, что надо работать с помощью Open-/Closed Xml, но на рабочем месте ограничен библиотекой, поставляющейся в комплекте с линейкой программ.
Уточню, что в своем коде после записи данных пытался сочетать вызовы из workbook.Close, workbook.Save, workbook.AcceptAllChanges и в разной последовательности. Но к результату это не привело. Вообще уже сомневаюсь, что Xl допускает работу подобным образом, но вдруг все же существует решение подобной задачи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.06.2025, 17:22
Ответы с готовыми решениями:

Сколькими способами можно обменять одну книгу одного на одну книгу другого
У одного человека есть 7 книг по математике, а у другого - 9 книг. Сколькими способами можно...

Запись данных в закрытую книгу из другой открытой по кнопке
Всем дорого времени суток. Помогите сделать красиво. Есть открытая книга с которой работает...

Запись данных в активную книгу
Подскажите как правильно записать данные в xl при двух активных открытых книгах? я пытаюсь сделать...

25
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
19.06.2025, 08:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от I can Посмотреть сообщение
Никакого безопасного параллельного доступа через Excel COM
Почему, я пробовал раньше, если К Экселю подключиться из другого процесса (тоже Эксель) то третий, при попытке подключиться будет просто получать ошибку, которую можно обрабатывать, т.е., как бы немножко безопасно )
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
19.06.2025, 09:54  [ТС]
Цитата Сообщение от INexteR Посмотреть сообщение
Access, он этот вопрос регулирует?
Короче да, проверил; запустил параллельно 50 процессов на вставку записей и все они появились в таблице
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
19.06.2025, 16:21  [ТС]
Уважаемые, у меня возникло другое затруднение. В Excel есть диапазон, куда тянутся данные из Access (это не сводная таблица). И мне нужно, чтобы весь этот диапазон был только для чтения. Я блокирую указанный диапазон, но в таком случае функция обновления данных в нем становится недоступной. Думал над тем, чтобы подписаться на события, которые возбуждаются до и после подтягивания данных, чтобы в их обработчиках соответственно разблокировать и заблокировать диапазон обратно. Но не нашел таковых. Как можно организовать задуманное поведение?
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
19.06.2025, 16:37
Цитата Сообщение от INexteR Посмотреть сообщение
Как можно организовать задуманное поведение?
Обычно это как-то так делается, сначала разблокировка (программно) -- обновление/изменение -- бокировка. Точно не подскажу, но информацию можно найти по этому.
0
малоболт
1328 / 510 / 213
Регистрация: 30.01.2020
Сообщений: 1,244
19.06.2025, 16:41
INexteR, Лет 27-28 назад решал аналогичную задачу с файлом Excel, в который пытались писать 8 пользователей и возникла необходимость автоматически добавлять ещё данные, выгружаемые из моей бухгалтерской базы данных, "ну и хорошо бы как-то разграничить доступ, а то задолбали открыть и не закрывать файл". Тогда я добавил несколько таблиц к базе и перевёл пользователей на работу с базой, а Excel-файл просто удалялся и пересоздавался каждый раз локально для того пользователя, который захотел его посмотреть в Excel-воплощении. Может и вам уже имеет смысл посмотреть в эту сторону, раз уж вплотную подошли к использованию Access?
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
19.06.2025, 20:33  [ТС]
Цитата Сообщение от Punkt5 Посмотреть сообщение
Лет 27-28 назад
Хорошее начало слога, меня ещё тогда в помине не было
Цитата Сообщение от Punkt5 Посмотреть сообщение
Может и вам уже имеет смысл посмотреть в эту сторону
Ну вообще если простых решений для подобного сюжета нет, то я просто оставлю всё как есть, ибо даже если не блокировать диапазон и пользователь запишет в него что-то свое (а он этого делать не станет), то его записи все равно перебьют те данные, которые поступят из базы. В общем это уже личные предпочтения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2025, 20:33

Книга 1 Книга 2 Книга 3 count = 1
Кто нибудь сталкивался с таким? Открыто несколько книг с пуска, т.е. созданые вновь но еще не...

Найти итоги из всех листов другой книги и записать в факт для всех выделенных значений рабочей книги
Написал макрос для проверки итогов с фактом. Как запустить всё это по циклу? Чтоб отрабатывался для...

Сравнить столбцы таблицы одной книги со столбцами таблицы другой книги
Здравствуйте! такая проблемка... недавно только работаю с Basic, необходимо решить задачу, а...

Дом книги в течение 5 месяцев продавал книги 5 различных жанров ...
помогите, пожалуйста, решить задачу.. дом книгги в течение 5 месяцев продавал книги 5 различных...

Как организовать поиск в другой книге или в этой же книге, поиск по слову на определенных листах
Всем привет!) Как организовать поиск в другой книге или в этой же книге, поиск по слову на...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru