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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 17:21   #1
Klim Bassenger
Форумчанин
 
Аватар для Klim Bassenger
 
Регистрация: 20.01.2009
Сообщений: 138
По умолчанию Проверка открыт ли файл в сети

Есть функция, которая проверяет открыта нужная книга или нет:

Option Compare Text
Private Function WorkbookIsOpen(iName$) As Boolean
Dim iBook As Workbook
For Each iBook In Workbooks
If iBook.Name = iName$ Then
WorkbookIsOpen = True
Exit Function
End If
Next
WorkbookIsOpen = False
End Function

Но проблема в том, что она работает только на том компе, с которого открыта... Если файл находится в сети, то файл (если он открыт уже кем-то с другого компа) открывается с аттрибутом "для чтения"..
Подскажите как мне проверить открыт ли файл другим пользователем, если файл находится в сети!!!
Спасибо!
Чтобы правильно задать вопрос, надо знать большую часть ответа.
Klim Bassenger вне форума Ответить с цитированием
Старый 29.09.2010, 18:26   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

может попробовать его перекинуть в др. папку, сдается мне, если он открыт кем-то - не дастся
Код:
Public Sub OLD_NEW()
   Dim OldName, NewName
   On Error Resume Next
   OldName = "C:\Код.xls"
   NewName = "C:\Testing\Код.xls"
   Name OldName As NewName
   If Err <> 0 Then ...
End Sub
аналитика вне форума Ответить с цитированием
Старый 29.09.2010, 19:48   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Нет,копировать можно.А переименовать или удалить открытый файл не получится

Прошу прощения Александр.невнимательность.Мне показалось .что копируешь.
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 29.09.2010 в 19:51.
doober вне форума Ответить с цитированием
Старый 29.09.2010, 20:11   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а еще попытаться удалить!!!
если не удалось - значит был занят, а удалось - был свободен)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.09.2010, 20:50   #5
Klim Bassenger
Форумчанин
 
Аватар для Klim Bassenger
 
Регистрация: 20.01.2009
Сообщений: 138
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а еще попытаться удалить!!!
если не удалось - значит был занят, а удалось - был свободен)))
А потом, если удалось восстановить из карзины....
Только вот проблема: на сервере файлы сносятся напрочь миную карзину...
Так что может есть другой способ..
Единственное, что пришло мне в голову - это открывать нужные файл черещз другой...
То есть в auto_open прописываем проверку ячейки. скажем А1... если там стоит 1, то ничего не делаем и закрываем файл без изменений, ну а если 0, то записываем в А1 единичку, сохраняем, закрываем его, а открываем уже нужный...
немнго сложновато, но вроде должно сработать....
Может есть более элегантный способ???
Чтобы правильно задать вопрос, надо знать большую часть ответа.
Klim Bassenger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка сети GX_h10 Работа с сетью в Delphi 4 31.08.2010 10:48
Как определить закрыт или открыт текстовый файл ZvEr_HaCkEr Общие вопросы Delphi 3 28.07.2010 17:33
Узнать, где открыт файл (Delphi) Quadro_O Помощь студентам 11 06.05.2010 12:39
Как узнать, открыт ли файл? #32 Microsoft Office Excel 5 30.10.2009 12:04
Проверка наличия подключения к локальной сети nixstill Работа с сетью в Delphi 2 31.07.2009 23:49