Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: переделать БД, которая изначально писалась как однопользовательская в базу для нескольких пользователей
 
 автор: Stas22   (18.10.2007 в 19:22)   личное сообщение
 
 

Access 2002
неожиданно встала проблема: надо переделать БД, которая изначально писалась как однопользовательская в базу для нескольких пользователей с возможностью одновременного доступа к базе. Что можно почитать, чтобы понять, с какой стороны к задаче подойти?

  Ответить  
 
 автор: osmor   (18.10.2007 в 21:50)   личное сообщение
 
 

разделить базу на два файла:
-таблицы
- все остальное

файл с таблицами - в общедоступную папку
файлы с формами и прочим - пользователям, предварительно создав связанные таблицы которые бутут ссылаться на общий файл с данными (таблицами)
это для начала... возможно этого хватит, а возможно придется колдовать с блокировками и оптимизацией.

  Ответить  
 
 автор: Stas22   (19.10.2007 в 10:51)   личное сообщение
 
 

Спасибо,
я попрбовал выполнить команду Database splitter но у меня выдается сообщение об ошибке, что одну из таблиц не удается заблокировать, поскольку она используется другим пользователем или процессом, хотя в БД я нахожусь один и едиственное открытое окно - окно БД.
Можно ли как-то позволить двум пользователям, вводящим данные, одновременно использовать БД, лежащую на сетеовм диске без того чтобы разбить БД?
Можно ли как-то избежать глюков, связанных с многопользовательским режимом в следующей ситуации. Пользователь, заводя данные о договоре, вносит данные в две таблицы: POLICY (табл. содержит список договоров) и POLICY_PAYMENT (график платежей по договору, т.к. по одному договору платежей может быть несколько)


'Добавляем запись в таблицу POLICY
      SQLstm = "INSERT  INTO POLICY (......
'Проставляем ссылку на ID полиса в таблице в POLICY_PAYMENT
        POL_ID = DMax("ID", "POLICY")
                    
         DoCmd.RunSQL ("UPDATE POLICY_PAYMENT SET POLICY_ID=

  Ответить  
 
 автор: osmor   (19.10.2007 в 13:14)   личное сообщение
 
 

Да разделите руками, создайте копию и положите ее в сторонку.
создайте чистую базу (Data.mdb) импортируйте таблицы в нее
удалите таблицы из исходного файла
создайте в нем сdязанные таблицы из Data.mdb

проблемы возможны, т.к. dmax может вернуть код записи другого пользователя
вариантов решения несколько:
1. http://hiprog.com/index.php?option=com_content&task=view&id=380
2. делать все добавления в одной транзакции (тогда от DoCmd.RunSQL придется отказаться и использовать execute)
3. При получении ID брать не только DMax, но и отбирать еще по какому-то условию например коду фирмы или коду пользователя.
4. использовать составной ключ в таблице договоров из двух полей счетчика и имени пользователя
5. ну и еще нескольно вариантов с созданием ключа руками (т.е не счетчиком)

  Ответить  
 
 автор: Stas22   (19.10.2007 в 14:20)   личное сообщение
 
 

Спасибо БОЛЬШОЕ, теперь понятно, что делать

  Ответить  
 
 автор: Stas22   (12.11.2007 в 17:54)   личное сообщение
 
 

Какие настройки (и где) надо поменять, чтобы побороть нежелание Access открывать БД, которая находится на общедоступном сервере с сообщениемоб ошибке

This file is located outside your intranet or on an untrusted site. MS Access will not open the file due to potential security problems. To open the file, copy it to your machine or an accessible network location

  Ответить  
 
 автор: Stas22   (12.11.2007 в 18:00)   личное сообщение
 
 

Какие настройки (и где) надо поменять, чтобы побороть нежелание Access открывать БД, которая находится на общедоступном сервере, с сообщением об ошибке

This file is located outside your intranet or on an untrusted site. MS Access will not open the file due to potential security problems. To open the file, copy it to your machine or an accessible network location

  Ответить  
 
 автор: osmor   (13.11.2007 в 08:31)   личное сообщение
 
 

Видимо что-то с настройками безопасности в операционке... У вас Vista? Что-то не помню наких сообщений в предыдущих версиях Win

  Ответить  
 
 автор: Stas22   (13.11.2007 в 10:39)   личное сообщение
 
 

Нет, Windows XP. Я думал, что у Access есть нечто похожее на Excel Tools->Macros->Security->Security level

  Ответить  
 
 автор: osmor   (13.11.2007 в 10:47)   личное сообщение
 
 

У ACCESS есть нечто подобное, но сообщение с этим не связано.
вот это почитайте
http://support.microsoft.com/?id=883260

  Ответить  
 
 автор: Stas22   (13.11.2007 в 12:08)   личное сообщение
 
 

Это, оказалось, глючок Access 2002, он не воспринимает адреса, начинающие с цифр. Файлы с таких мест обязательно надо выбирать через Entire Network ..... Даже если замеплин диск, не работает. Говорят, что в более поздних версиях Access это поправлено. Спасибо

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList