vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

plik *.xls tylko do odczytu


otwartyotwarty rozpoczął: adamzet postów: 4



napisał: adamzet
postów: 2


umieszczony:
10 marca 2006
21:00

  
Bardzo dzękuję jottad za funkcje jest super, dokładnie o to chodziło dzięki jeszcze raz pozdrawiam adamzet
napisał: jottad
postów: 118


umieszczony:
10 marca 2006
15:00

  
Poprawka!
[quote]
Private Sub Workbook_Open()
If PlikUzywany("\\SciezkaUNC\NazwaPliku.xls") Then
   MsgBox "Sorry, ale inny użytkownik korzysta z pliku bazy !!"
   Me.Close False
End Sub


/quote]

Zabrakło jednej linii :) Powinno byc:

Private Sub Workbook_Open()
If PlikUzywany("\\SciezkaUNC\NazwaPliku.xls") Then
   MsgBox "Sorry, ale inny użytkownik korzysta z pliku bazy !!"
   Me.Close False
End If
End Sub


Administracja serwisu prosi o poprawienie znaczników [qoute]
napisał: jottad
postów: 118


umieszczony:
10 marca 2006
14:57

  
Można spróbować otworzyć plik w trybie binarnym z ustawieniem blokady odczytu i
zapisu dla innych procesów. Jeżeli się to nie uda, oznacza to, że plik został
otwarty przez innego uzytkownika.

Przykładowa funkcja:

Function PlikUzywany(FullFileName As String) As Boolean
' zwraca True jeżeli plik został otwarty przez innego użytkownika
Dim f As Integer
f = FreeFile
On Error Resume Next
Open FullFileName For Binary Access Read Write _
                         Lock Read Write As #f
PlikUzywany = (Err.Number <> 0)
Close #f
Err.Clear
On Error GoTo 0
End Function



Jeżeli umieścisz go w procedurze zdarzenia Workbook_Open, w module ThisWorkbook, to możesz ją wykorzystać np. w taki sposób:
Private Sub Workbook_Open()
If PlikUzywany("\\SciezkaUNC\NazwaPliku.xls") Then
   MsgBox "Sorry, ale inny użytkownik korzysta z pliku bazy !!"
   Me.Close False
End Sub



Pozdrawiam
napisał: adamzet
postów: 2


umieszczony:
10 marca 2006
14:44

  
Mam bazę danych w excelu, która jest utworzona z dwóch plików w jednym są dane a w drugi służy do obsługi pliku z danymi. Plik obsługi bazy jest otwierany na wielu komputerach będących w sieci. Jak napisać makro, które sprawdzałoby czy plik z danymi jest w danym momencie otwarty na innym komputerze i zapobiegało dalszemu otwieraniu się pliku z obsługą bazy?


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z