Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 20:46   #1
ELE-COM
Пользователь
 
Регистрация: 08.05.2010
Сообщений: 48
По умолчанию Сохранение данных при совместном доступе

Помогите, пожалуйста, решить проблему:
При совместной работе с файлом происходит заполнение одного листа (добавление строк в конец списка). Если это происходит одновременно, данные налезают друг на друга - часть строк теряется. Автосохранение 5 мин помогает только при проведении операций реже 5 мин. Существует-ли возможность избежать такой неприятности кроме сохранения перед и после каждой операции? К концу дня файл увеличивается в 20 раз и сохранение около 60-70 Мб сильно раздражает и тормозит.
Заранее благодарен.
ELE-COM вне форума Ответить с цитированием
Старый 16.05.2010, 00:05   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Может, у вас и не совсем такой случай, но можно сделать при переходе на последнюю строку активацию события, что эта строка сейчас занята, и у всех остальных пользователей проверять каждые сколько-то секунд, какая сейчас последняя строка. И надо ее блокировать.
motorway вне форума Ответить с цитированием
Старый 16.05.2010, 00:17   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

ELE-COM, это называется "попытка с негодными средствами"...
Раз у вас сеть - поднимите сервер любой СУБД и собирайте данные в ней.
Например, любой бесплатный SQL. Собственно ввод очередной порции
можно оставить в EXCEL. Но не сохранять в файле а отправлять на сервер. Затем, при необходимости экспортируете данные из БД в EXCEL..
Aent вне форума Ответить с цитированием
Старый 16.05.2010, 00:24   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я такую проблему решал хранением даных а базе Access. Запросом можно не только получать данные из базы, но и складывать их туда.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.05.2010, 07:19   #5
ELE-COM
Пользователь
 
Регистрация: 08.05.2010
Сообщений: 48
По умолчанию

2 Aent:
Может посоветуете конкретный SQL Manager? Под мой случай: 3 юзера в корп. сети.
2 IgorGO:
А в Access такой проблемы не будет? И стоит-ли запускать еще одно приложение? Операция-то простенькая (добавление после последней заполненной строки 1 - n строк одинакового формата через макрос). Можно-ли обойтись дополнительным (для каждого юзера) листом для временного хранения данных?
При такой организации процесса у меня только одна проблема: как каждому юзеру при использовании одних и тех же кнопок и макросов назначить свой лист (в этой книге) для временного хранения строк данных? Подскажите, пожалуйста.
ELE-COM вне форума Ответить с цитированием
Старый 16.05.2010, 14:03   #6
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
Сообщение от ELE-COM
Может посоветуете конкретный SQL Manager? Под мой случай: 3 юзера в корп. сети.
Например,
Microsoft SQL Server 2008 R2 Express
Aent вне форума Ответить с цитированием
Старый 16.05.2010, 15:07   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Access при этом запускать не надо.
Пользователь получает быборки из базы в свой индивидуальный файл, правит что-то, записывает обратно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.05.2010, 20:45   #8
ELE-COM
Пользователь
 
Регистрация: 08.05.2010
Сообщений: 48
По умолчанию

Спасибо всем.
Я все-таки попытаюсь обойтись только Excel (доп. листом каждому юзеру)
Не выйдет, тогда уже Access & SQL...

P.S. Обошелся элементарным:
Код:
User = Application.UserName
If User = "User1" Then
    Sheets("Лист1").Select
End If
Второму юзеру так же. Третий юзер вносит данные как прежде. Потом по событию Workbook_BeforeSave все данные с листов 1 и 2 переносятся на общий лист.

Последний раз редактировалось ELE-COM; 16.05.2010 в 21:47.
ELE-COM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
блокировка таблицы при одновременном доступе dalien БД в Delphi 3 12.08.2009 16:44
Макрос не отрабатывает копирование при общем доступе к книге Chelentano Microsoft Office Excel 6 07.08.2009 20:17
Проблема при совместном использовании OSS 6.5 и ESS 4.0 Sazary Безопасность, Шифрование 1 07.03.2009 16:27
Сохранение имен столбцов при импорте данных из Delphi в Excel an4ik Общие вопросы Delphi 3 07.03.2009 15:23
Сертификат безопасности при доступе к web-узлу ss@sh Microsoft Office Excel 0 01.10.2008 15:49