Страницы: 1
RSS
Многопользовательская работа
 
В общем ситуация такая, есть файл на сервера куда забиваются данные, необходимо сделать что бы в него могли забивать данные несколько человек одновременно. Вся загвоздка в том, что файл использует формулы массива из другого файла, соответственно ексель на это ругается и говорит нельзя использовать многопользовательский режим, так как есть эти формулы массива. Как это можно обойти?  
 
никак, базу данных делать. или массивы убирать, строить таблицу по другому.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Использовать Access :)
 
У меня похожая ситуация, только  перевел файл на макросы, поэтому нет возможности использовать режим совместной работы. По поводу Access слышал что он очень похож на Excel но что то у меня не получается с ним, а в своей таблице я уже такого наворотил, что программисты 1С насчитали 300 тыс. для перехода на их базу данных.  
Пользуясь случаем хочу сказать большое спасибо этому форуму -  без него бы я свою работу давно возненавидел
Сейчас у нас три мастера работают в трех файлах (в таблице 40тыс.строк написано за несколько лет, в день от 50 до 150 строк), данные из которых сравниваются по времени редактирования и объединяются специальной обработкой в один. Процедура занимает от 5 до 10 мин., но чувствуется приближение потолка возможностей такой работы.
Так вот - хочу продолжить тему и и попытаюсь сделать так, чтобы можно было работать без затрат времени пятью компьютерами добавляя по 200 строк в день. (этим отодвинув переход на 1С еще на пару лет)


Данные хранятся в файле «Данные» который обычно закрыт и открывается макросом  из файлов Копия1, Копия2 …в которых работают пользователи.
Данные в пользовательских файлах Копия1, 2 и т.д. изменяются только через форму, при вызове которой открываем файл «Данные», копируем из него все данные в файл пользователя, закрываем «Данные» и заполняем форму актуальными данными.
При записи данных формой в Копию, открываем «Данные», проверяем идентичность редактируемой строки файла Данные и Копии (никто ничего не изменил, пока мы думали?) и записываем наши данные в оба файла. Файл Данные закрываем.

Что скажете про такой алгоритм? Какие подводные камни стоит иметь в виду?
Если "Данные" открыт другим пользователем для записи, как это определить средствами VBA, не подскажете?
 
Цитата
AndRus написал:
перевел файл на макросы, поэтому нет возможности использовать режим совместной работы
Почему? Разве макросы в файле с общим доступом не работают?
 
Цитата
AndRus написал:
Если "Данные" открыт другим пользователем для записи, как это определить средствами VBA, не подскажете?
Код
Sub Test()
Dim MyFile As String
MyFile = "D:\katalog\Данные.xls"
MsgBox "IsFileOpen = " & IsFileOpen(MyFile), , MyFile
End Sub

Function IsFileOpen(FilePathName As String) As Boolean
Dim FN%
FN = FreeFile
On Error Resume Next
Open FilePathName For Random Access Read Write Lock Read Write As FN
Close FN
IsFileOpen = Err <> 0
End Function

Ну и может быть если смысл делать файл данных для каждого года свой?
Изменено: Hugo - 06.11.2016 19:01:01
 
Юрий М, не так давно (в начале года) копал тему по совместному доступу к файлу и отложилось в памяти, что макросы не поддерживаются (запрещены). Тогда ничего не получилось. Сейчас вижу что заново надо поковырять эту тему и включить в файле "Данные"  "Совместный доступ", но при этом  буду закрывать его после записи в него.

Hugo, спасибо за отклик, предчувствие, что  будет глючить совместная работа в файле "Данные" и Ваш код выручит.
С размером вроде проблем не было (хотя и весит только один лист с данными (без формул) в формате xlsb около 4Мб ), т.к. формулы в файле анализа данных (выписка счета и акта выполненных работ и т.д.)  пересчитываю только той строки, где прошли изменения. Поэтому не тормозит.
Насчет годов согласен, надо будет обрезать потихоньку, все хранить не получится.
 
Цитата
AndRus написал:
копал тему по совместному доступу к файлу и отложилось в памяти, что макросы не поддерживаются (запрещены).
Есть подозрение, что отложилось немного не то)) Макросы не запрещены и будут работать. А вот доступ к ним (просмотр и редактирование) - это запрещено  ;)
Страницы: 1
Наверх