Сетевая БД(Access)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Mao
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 95
Зарегистрирован: 10.10.2004 (Вс) 13:09

Сетевая БД(Access)

Сообщение Mao » 06.07.2005 (Ср) 18:35

Подскажите как из простой БД сделать сетевую?

Mao
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 95
Зарегистрирован: 10.10.2004 (Вс) 13:09

Сообщение Mao » 06.07.2005 (Ср) 18:45

Юзаю DAO.

Mao
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 95
Зарегистрирован: 10.10.2004 (Вс) 13:09

Сообщение Mao » 06.07.2005 (Ср) 20:35

Поэкспериментировал немнога, вынес одну форму в другую базу, и при загрузке формы назначил ей рекордсет на таблицу из другой базы. Работает, но у, на пример, кобобокса есть RowSource = SQL запросу. Так что в таком варинте, у всех таких контролов менять рекордсет аналогично рекордсету формы?? Если есть вариант как сделать все несколькими строчками кода, поделитесь плз.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 07.07.2005 (Чт) 7:41

<<<
Последний раз редактировалось Al Khamid 07.12.2007 (Пт) 12:18, всего редактировалось 1 раз.

Mao
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 95
Зарегистрирован: 10.10.2004 (Вс) 13:09

Сообщение Mao » 07.07.2005 (Чт) 9:51

Al Khamid писал(а):Обычно делают так: База данных (только таблицы) на каком-то одном компе (условно говоря, сервере), а оболочка (всё, кроме таблиц) - на всех остальных (клиентских) к оболочке подключены таблицы из базы (связанные таблицы). В таком виде работа с таблицами на клиентских компах происходит также как и с локальными, то есть для программы нет никакой разницы находятся ли таблицы в той же базе или они подключены из другой. И не надо "менять рекордсеты у форм и контролов". Кстати поподробнее опиши как ты назначил форме ресордсет из другой базы. Наверное я чего-то не знаю.
Естественно, этот способ актуален только для Аксесса (то есть и база и оболочка аксессовские). А подключить можно не только базу Аксесса, а и много других замечательных таблиц в разных форматах (например DBF) и работать с ними опять же как с локальными.

В несетевой базе:
me.recordsource="Имя таблицы"
me.combobox.rowsource="SQL запрос"
в клиентской базе делаю так:
recordsource формы делаю пустым и при открытии формы выполняется след. код:
Код: Выделить всё
Dim dbs As Database
Dim rst As Recordset
Set dbs = OpenDatabase("путь и имя базы")
Set rst = dbs.OpenRecordset("Имя таблицы", dbOpenDynaset)
Set Me.Recordset = rst
set me.combobox.recordset=dbs.OpenRecordset("SQL запрос")

И rowsource с контрола формы в клиентской базе не убираю.
И подскажите в какой момент будет блокироваться таблица??
Когда в нее из какого нибуть клиентского приложения будут записываться данные или же когда в каком нибуть клиентском приложении будет открыта форма с рекордсетом на эту таблицу??

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 11.07.2005 (Пн) 15:48

...
Последний раз редактировалось Al Khamid 07.12.2007 (Пт) 12:57, всего редактировалось 1 раз.

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 21.07.2005 (Чт) 15:12

Апсолютно не понимаю зачем еще париться с:
Dim dbs As Database
Dim rst As Recordset
Set dbs = OpenDatabase("путь и имя базы")
Set rst = dbs.OpenRecordset("Имя таблицы", dbOpenDynaset)
Set Me.Recordset = rst
set me.combobox.recordset=dbs.OpenRecordset("SQL запрос")
Я идиот! Убейте меня, кто-нибудь!
нафига себе так мозги закручивать????
Это все работает пока у тебя для формы используются данные из одной таблицы, (честно говоря если оканчательно свернуть башку то можно вставить и больше таблиц), но зачем??
Количество потраченного на это времени никак не окупается!!!
Проще и лучше сделать это, как правильно сказал AL Khamed с помощью связанных таблиц:
- Быстро
- Эффективно
- В случае гемороя быстро решается


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron