Страницы: 1
RSS
Сохранение целостности данных исходного файла расположенного на сетевом диске при многопользовательском доступе
 
В приложении нет файла с примером, вопрос, если кто-то знает и сталкивался.
По умолчанию, если Excel файл располагается на сетевом диске и открыт у одного из пользователей, следующий кто открывает этот файл может также внести изменения и пересохранить файл в директорию.
Можно ли использую настройки Excel приложения или настройки операционной системы оповещать, что файл используется другим пользователем и не позволять его открывать вовсе, до тех пор, пока первый пользователь не закроет файл.
 
Цитата
sunnyb написал:
следующий кто открывает этот файл может также внести изменения и пересохранить файл в директорию.
но не под тем же именем, пока открыт файл другим.
Цитата
sunnyb написал:
Можно ли использую настройки Excel приложения или настройки операционной системы оповещать, что файл используется другим пользователем
можно и это по умолчанию так.
Цитата
sunnyb написал:
и не позволять его открывать вовсе, до тех пор
а вот тут -нет, хотя можно написать макрос который будет закрывать файл принудительно., если кто-то его уже открыл ранее.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
но не под тем же именем, пока открыт файл другим.
да, сохраняется только с новым именем, но будет нарушена целостность ввода данных для оригинала

Цитата
БМВ написал:
sunnyb  написал:Можно ли использую настройки Excel приложения или настройки операционной системы оповещать, что файл используется другим пользователем
Цитата
БМВ написал:
можно и это по умолчанию так.
Смущает, и это основной барьер, что проигнорировав предупреждение о уже открытом файле, новый пользователь внесет изменения которые не отразяться в оригинале, не будет ждать пока первый пользователь закроет файл.
Макрос для принудительного закрытия звучит как фантастика и магия, как такое возможно? Но, также, не совсем то, поскольку первый пользователь, возможно не закончил ввод данных и основной файл у него закроется?
Поэтому, может быть, Excel может просто информировать о том, что файл используется и не будет открываться? В том случае если к нему обращается более чем один пользователь?
 
Цитата
sunnyb написал:
Excel может просто информировать о том, что файл используется и не будет открываться?
Может я чего-то не понимаю или не заметил, но.
Файл в общем доступе? Т.е. для него через вкладку Рецензирование -Доступ к книге проставлен Многопользовательский режим? Если да - снимите и тогда при открытии такого файла вторым пользователем он получит сообщение, что файл уже открыт и может быть открыть сейчас только на чтение. Что само по себе запретит вносить изменения в оригинал и сохранить можно будет только его копию. По крайней мере до тех пор, пока первый пользователь не закроет файл(тогда при открытии файла второй пользователь должен нажать Уведомить, чтобы видеть, когда файл освободится).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, шаловливые рученки могут записать под другим именем, при этом выбрав то что было , и если файл уже свободен, то …..
По вопросам из тем форума, личку не читаю.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
тогда при открытии такого файла вторым пользователем он получит сообщение, что файл уже открыт и может быть открыть сейчас только на чтение. Что само по себе запретит вносить изменения в оригинал и сохранить можно будет только его копию.
Все действительно так, просто опережая события, понимаю, что второй пользователь увидит что файл открыт, досупен для чтения, но может проигнорировать это событие, введет данные, пересохранит или не сохранит данные в копии и оригинал останется нетронутым, потеряв часть вводимых данных и приобретет ненужный клон.
 
Цитата
sunnyb написал:
может проигнорировать это событие
ну в случае таких подвигов, думаю, ничто не спасет. Как вариант - оставить в таком же виде(без общего доступа), но макрос делать другой: перед закрытием книги проверять не сохраняется ли файл под другим именем(Сохранить как) и в этом случае отказывать в сохранении.
Существенный минус: работать будет только при разрешенных макросах.
P.S. Если такой вариант устроит, то вот код. Поместить в модуль ЭтаКнига(ThisWorkbook)
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = SaveAsUI
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 26.02.2020 15:21:38
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Если облачные варианты рассматриваются, то можно разместить файл в OneDrive и редактировать всем гуртом совместно, тогда изменения будут писаться в онлайн режиме. При этом Эксель (2016 и новее) будет знать кто в какой ячейке в данный момент чего чудит и остальных в заблокированные ячейки не пускает.
Вот горшок пустой, он предмет простой...
 
Дмитрий(The_Prist) Щербаков, спасибо! Буду эксперементировать с максросом!

PooHkrd, спасибо! Попробую как вариант!
Страницы: 1
Наверх