Синхронизация реплик или одновременный доступ?

Teppa
Дата: 16.01.2012 14:24:42
Здравствуйте!
Я блондинка! Этим все сказано, поэтому если кто-то ответит мне, то лучше как в анекдоте:
"Всплывает подлодка, видит рыбака:
- Где Россия?
- Зюйд-зюйд-ост.
- Мужик, ты не мудри, ты пальцем покажи" :-))

А теперь вопросы...

Точнее предисловие.

Access 2000 (9.0.3821 SP-1), база данных mdb (обычная таблица и пара форм для удобства заполнения).
Работаем в ней 3 человека (у всех WIN XP Professional SP2).
Выложила её на общий сетевой диск (NTFS, больше ничего о нём не знаю).
В параметрах базы: Общий доступ, Блокировка отсутствует, Пароля нет.
Чтобы народ лишнего чего не пооткрывал - база открывается сразу с формы для заполнения.

ПРОБЛЕМА:
Открываю БД на одном из трёх компов, одновременно на других компах БД на них не открывается, появляется файл о блокировке.
Вопрос 1: В чем косяк? В книжке написано, что должно работать на всех компьютерах одновременно.

Решила проблему путем репликации. На каждый комп поставила реплику и теперь народ синхронизирует кто когда вспомнит.
Вопрос 2: можно ли написать какой-то макрос (тут я вообще полный ноль), чтобы при открытии и закрытии реплики синхронизация с основной базой (или везде одновременно) происходила автоматически?

Если кто-то поможет решить проблему - глубокое Вам мерси!
studieren
Дата: 16.01.2012 14:29:25
Teppa
Здравствуйте!
Я блондинка! ...

Не мы так не играем! А где фото? :)
studieren
Дата: 16.01.2012 14:32:26
Teppa
ПРОБЛЕМА:
Открываю БД на одном из трёх компов, одновременно на других компах БД на них не открывается, появляется файл о блокировке.
Вопрос 1: В чем косяк? В книжке написано, что должно работать на всех компьютерах одновременно.

Вы имеете ввиду "ldb" файл? Ну так так и должно произойти. Вот хелп об этом пишет так:
+
При открытии файла базы данных Access (.mdb) в режиме общего доступа Microsoft Access также создает файл сведений о блокировке (.ldb) с тем же именем (например, Борей.ldb) и в той же папке, что и файл базы данных. В файле сведений о блокировке сохраняются имя компьютера (например, mypc) и имена всех совместно работающих пользователей базы данных в системе защиты (например, Admin). Microsoft Access использует эти сведения для управления совместной работой. В большинстве случаев Microsoft Access автоматически удаляет файл сведений о блокировке при закрытии файла базы данных последним пользователем.
Rivkin Dmitry
Дата: 16.01.2012 14:39:52
studieren
Teppa
Здравствуйте!
Я блондинка! ...

Не мы так не играем! А где фото? :)

+1

Не достаточно информации о том как это все организовано. Ну, база в сети, а программы где? Как линкуется база?
На какой стадии выскакивет (если выскакивает вообще) сообщение и его текст
studieren
Дата: 16.01.2012 14:41:51
Teppa
Вопрос 2: можно ли написать какой-то макрос (тут я вообще полный ноль), чтобы при открытии и закрытии реплики синхронизация с основной базой (или везде одновременно) происходила автоматически?


Ну на момент закрытия формы можно повесить вот такой код.
Private Sub Form_Close()
    If MsgBox("Синхронизовать базу данных?", _
            vbQuestion + vbYesNo + vbDefaultButton2) = VbNo Then
        Exit Sub
    End If
    CurrentDB.Synchronize "Здесь полное название и путь основной БД", dbRepImpExpChanges
End Sub
Teppa
Дата: 16.01.2012 15:03:32
Rivkin Dmitry
studieren
пропущено...

Не мы так не играем! А где фото? :)

+1

Не достаточно информации о том как это все организовано. Ну, база в сети, а программы где? Как линкуется база?
На какой стадии выскакивет (если выскакивает вообще) сообщение и его текст


Я рада, что все любят блондинок, но фотография моего блондинистого мозга пока отсутствует:-)))

Насчёт "как это всё организовано" - вопрос ставит меня в тупик.
Сам Access у нас на каждом компьютере. С каждого компа мы открываем БД, которая физически лежит на сетевом компе/сервере, который у нас подключен как диск.
Второй вариант с репликой - открывается реплика, котоаря физически находится на каждом компе, а основная реплика на сетевом компе/сервере.
Как всё это линкуется не знаю. Сообщений никаких не выскакивает, просто если база где-то котрыта, то больше нигде не открывается. На сервере появляется обычный информационный файл LDB, о котором писал studieren.
Teppa
Дата: 16.01.2012 15:07:28
studieren
Teppa
Вопрос 2: можно ли написать какой-то макрос (тут я вообще полный ноль), чтобы при открытии и закрытии реплики синхронизация с основной базой (или везде одновременно) происходила автоматически?


Ну на момент закрытия формы можно повесить вот такой код.
Private Sub Form_Close()
    If MsgBox("Синхронизовать базу данных?", _
            vbQuestion + vbYesNo + vbDefaultButton2) = VbNo Then
        Exit Sub
    End If
    CurrentDB.Synchronize "Здесь полное название и путь основной БД", dbRepImpExpChanges
End Sub


ОТЛИЧНО! Спасибо!
Куда всё это можно вписать? (Если можно "пальцем покажите" :-))))
Я ни разу SQL не пользовала!
Озверин
Дата: 16.01.2012 15:17:29
Teppa,

не открывается..это как? ошибку напишите
alvk
Дата: 16.01.2012 15:22:51
RVI
Дата: 16.01.2012 15:43:50
alvk
Teppa,

Изучайте http://www.accessoft.ru/Text/Text205.html

Да, нафига ей эти группы? Думается, лучше разделить базу на табличную и интерфейсную части.
Интерфейс у пользователей, таблица в сети.