MS ACCESS - otwarcie jednego pliku na dysku sieciowym z dwóch różnych lokacji.

Odpowiedz Nowy wątek
2019-04-30 13:08
0

Cześć. Mam pewną bazę danych. Chciałbym tę bazę udostępnić kilku użytkownikom - baza ta znajdowała by się w pewnym miejscu sieciowych, do którego wszystkie z tych osób mają dostęp (konkretnie jest to zmapowana struktura folderów utworzonych na sharepoincie). Rozpatrzmy sytuację:

  1. Użytkownik A otwiera bazę danych o godzinie 9:00 i uzupełnia sobie dajmy na to formularz "Zadanie", które tworzy swój UNIKALNY identyfikator (autonumeracja) np. 1.
  2. Użytkownik B otwiera bazę danych o godzinie 9:15 i zaczyna wypełniać formularz "Zadanie".
  3. Użytkownik A o godzinie 9:16 kończy wypełniać swój formularz, wysyła rekord do bazy.
  4. Użytkownik B po utworzeniu swojego rekordu nie widzi zadania utworzonego przez użytkownika A, dlatego jest zadanie też będzie miało ID 1.

Jak zrobić, aby użytkownik B po dodaniu przez użytkownika A zadania od razu widział, że autonumeracja powinna wynosić 2, a nie 1? Lub ewentualnie jak inaczej można rozwiązać taki przypadek?

Pozostało 580 znaków

2019-04-30 14:20
2

Jeśli faktycznie identyfikator jest tak istotny to możesz zrobić dwa "kroki" przy zakładaniu zdania:

  1. rezerwacja id zadania - czyli dodanie do bazy zadania z podstawowymi danymi tj. id, identyfikacja użytkownika, czas utworzenia i status rezerwacji
  2. zapisanie zadania - czyli aktualizacja zarezerwowanego zadania o wszystkie dane plus status zadania.
    Jeśli nie to po zapisaniu zadania użytkownik otrzyma id tego zadania.

Pozostało 580 znaków

2019-04-30 15:10

Skoro oboje pracuja na tym samym pliku z danymi to w tabeli ustaw, że ID jest unikalne, albo kluczem głównym, w czym jest problem?

Użyłem rozdzielacza baz danych. - Tomasz Papryka 2019-05-02 07:59

Pozostało 580 znaków

2019-05-02 08:33
cw
1

Na ten problem nie ma uniwersalnego rozwiązania. Podjeścia mogą być różne. Ja często stosuję taki system

ostatnia pozycja w rejestrze to np. 5
A rozpoczyna pracę i wstepnie dostaje nr 6 (bez wpisu do bazy tylko na formularzu)
B rozpoczyna pracę i wstępnie dostaje numer 6 (bez wpisu do bazy tylko na formularzu)
B zapisuje swój rekord - program przed zapisaniem sprawdza, że 6 jest wolna więc z B ma numer 6
A zapisuje swój rekord - program sprawdza, że 6 jest już wpisana więc zmienia nr A na 7

Program sygnalizuję zmianę numeru by użytkownik miał tego śwaidomość

Z wstępną rezerwacją numerów w bazie jest problem, bo użytkownik może w trakcie wypełniania formularza zrezygnować z jego zapisu i powstają "dziury" w numeracji

Stosowanie ID systemowego jako numeracji w rejestrze w większości przypadków też nie sprawdza się w rzeczywistym modelu biznesowym

edytowany 2x, ostatnio: cw, 2019-05-02 10:33

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0