napisał: Rusek postów: 6
umieszczony: 6 listopada 2006 18:12
|
|
Sprawdziłem, na moim kompie plik "baza.ldb" pojawia się zawsze, niezależnie od trybu, w jakim otwieram "baza.mdb" |
|
napisał: Rusek postów: 6
umieszczony: 6 listopada 2006 17:42
|
|
Dzięki jalamas, ale chyba nie o to mi biega.
Spróbuję rozjaśnić problem bardziej precyzyjnie.
Zwykła baza danych, plik "baza.mdb" jest umieszczony na komputerze sieciowym.
Kilku niezbyt doświadczonych użytkowników z swoich komputerów mozolnie uzupełnia tam dane w wcześniej utworzonych rekordach.
Chodzi mi o to, by zmusić userów, by otwierali bazę w trybie na wyłączność.
Wtedy edytowane rekordy są od razu zablokowane do edycji dla innych userów.
W tym celu chcę wyczaić, ( najlepiej chyba w "Form_Load") w jakim trybie user otwarł bazę, i jeśli otwarł w innym trybie, niż na wyłączność, poinformować go o tym stosownym komunikatem i ewentualnie zablokować rekordy do edycji.
Nie chodzi tu wcale, czy ktoś inny korzysta z bazy, bo to nikomu nie przeszkadza(no chyba że edytuje rekordy , ale temu ma zapobiec otwieranie do edycji w trybie na wyłączność).
PS. W Access'ie programuję trochę "na czuja", bo to nie moja dziedzina ( stąd pytania na Forum), o recordsetach i innych obiektach bazy danych mam oczywiście pojęcie, ale raczej blade i naprawdę nie wiem co to "back-end". Gdyby tak trochę jaśniej, to chętnie się czegoś nauczę. |
|
napisał: jalamas postów: 316
umieszczony: 6 listopada 2006 13:15
|
|
Przepraszam za te znaczki w tekście, ale naprawdę nie wiem
jak się poprawia własne posty..... |
|
napisał: jalamas postów: 316
umieszczony: 6 listopada 2006 13:12
|
|
Pytanie zdane nieprecyzyjnie…..co znaczy Accessa ???????????????
Nie wiem czy chodzi Ci o to czy jakiś inny user otworzył back-end w trybie wyłączności?
Gdy brak pliku ldb może to oznaczać, że baza nie jest otwarta lub otwarta na wyłączność….
Istnienie pliku ldb, nie zawsze też świadczy o tym, że baza jest otwarta,
Może być wynikiem jakiejś „katastrofy”..
Pisze o tym, aby wytłumaczyć dlaczego nie sprawdzam tego pliku….
Proponuję tak (to toporna metoda, lecz chyba skuteczna): Private Sub kontrola()
On Error GoTo kontrola_Error
Dim db As DAO.Database
Set db = DAO.OpenDatabase(scbaza, , False)
kontrola_Exit:
On Error Resume Next
db.Close
Set db = Nothing
Exit Sub
kontrola_Error:
If Err.Number = 3045 Then
MsgBox "Baza w użyciu"
End If
Resume kontrola_Exit
End Sub
Gdzie scbaza położenie back-end.
Lecz zazwyczaj we froncie „na wejściu” otwiera się na stałe malutki Recordset,
(OpenRecordSet) z back-endu z niczym najczęściej niezwiązany by sprawdzić
połączenie, a także ewentualnie czy back jest tam gdzie powinien być itp…
Ewentualnie poprosić usera o wskazanie nowego położenia, a także relinkować tabele.
I tu jest odpowiedź…..też.
Nie wiem jak jest u Ciebie…. |
|
napisał: Rusek postów: 6
umieszczony: 5 listopada 2006 15:51
|
|
ACCESS 2000 i nowsze.
Jak programowo można odczytać tryb otwarcia Access'a ?
Czy jest otwarty z wyłącznością? (baza jest na sewerze.)
Dla innych trybów chciałbym zablokować możliwość edycji. |
|
wstecz 1 dalej wszystkich stron: 1
|