Страница: 1 |
Страница: 1 |
Вопрос: Access: VBA, как подключить базу *.dbf ?!
Добавлено: 14.12.05 08:48
Автор вопроса: jokerxp
Как в Access'e программно на VBA подключить базу *.dbf чтобы далее работать с ней например добавление записи?
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
the Pagan
ICQ: нет
Вопросов: 19
Ответов: 27
Web-сайт:
Профиль | | #1
Добавлено: 15.12.05 04:22
Используй класс BPDBF от Cyrax
(Basicproduction.nm.ru) - Хороший класс!
Номер ответа: 2
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #2
Добавлено: 15.12.05 08:43
Ну не то чтобы особенно хороший, но рабочий во всяком случае (не без помощи уважаемого the Pagan кстати).
Номер ответа: 3
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 15.12.05 08:51
MSDAC, подключаешь ADODB к проекту, используешь объект Connection. Самое основное указать правильно ConnectionString, насчёт .mdb много примеров на форуме, просто поменяй в примере ConnectionString для .dbf и работай с Recordset'ом
На vb.kiev.ua по-моему был готовый рабочий пример работы с .dbf
Номер ответа: 4
Автор ответа:
the Pagan
ICQ: нет
Вопросов: 19
Ответов: 27
Web-сайт:
Профиль | | #4
Добавлено: 15.12.05 12:05
General Declaration
-
Public ocon As ADODB.Connection
Public rs As ADODB.Recordset
Form_Load
-
Set ocon = New ADODB.Connection
ocon.Open "river=Microsoft Visual FoxPro Driver; SourceType=DBF; SourceDB=" & "\\Stat\C\Polis\Baza\"
Set rs = New ADODB.Recordset
rs.LockType = adLockReadOnly
rs.CursorType = adOpenStatic
Button1_Click
-
rs.Source = "select count(num) from staff where num='" & strA & "' and uv<>.t."
rs.ActiveConnection = ocon
rs.Open
rs.Close
Driver=Microsoft Visual FoxPro Driver - открывает, как dBase так и FoxPro, и Visual в том числе!
Но BPDBF class, Я Вам скажу, при написании небольшой функции Select в смысле сам пишешь, работает шустрей, чем ADO.
CyRax - Great Thanks! Класс действительно хороший! И defrag (до 100 Мб пока у меня файлы) работает!
Номер ответа: 5
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #5
Добавлено: 19.12.05 12:31
Можно его переписать и под большие файлы, чтобы через диск дефрагментировал. Но тогда боюсь скорость дефрагментации сильно упадёт. Всё таки диск не память.
the Pagan,
ты добавил какую то функциональность? Если не жалко, шли на cyrax@hotmail.ru
Я выложу на сайте (если конечно мне понравится реализация).
Номер ответа: 6
Автор ответа:
sia1
Вопросов: 12
Ответов: 18
Профиль | | #6
Добавлено: 19.12.05 15:14
Тут многие пользуются классом BPDBF от Cyrax.
Я решил тоже попробовать…вот только у меня с кодировкой беда. Сам dbf в dos кодировке начинаю доставать данные функцией GetColumn, она возвращает иероглифы.
Параметр UseOEM ничего не дает…
Номер ответа: 7
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #7
Добавлено: 19.12.05 16:25
Ничем не могу помочь, у меня всё работает и в досовской и в виндовой. Проверял на реальных базах с кассовых аппартов, так что здесь ошибка маловероятна. Возможно у тебя всё таки виндовая кодировка. Попробуй установить параметр UseOEM в ложь. Другой вариант - загрузи свежую версию с моего сайта. Если ты качал с этого сайта, то они отличаются по качеству. Просто обновления я забываю высылать.
Номер ответа: 8
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #8
Добавлено: 19.12.05 16:27
http://basicproduction.nm.ru/BPDBF.rar
Номер ответа: 9
Автор ответа:
jokerxp
Вопросов: 1
Ответов: 1
Профиль | | #9
Добавлено: 23.12.05 08:47
Dim MyDB As Database
Dim tbl As TableDef
Set MyDB = CurrentDb
Set tbl = MyDB.CreateTableDef("temp_tabl"
tbl.Connect = "ODBCSN=Visual FoxPro Tables;SourceDB=c:\GUZV21\DATA;SourceType=DBF;Exclusive=Yes;BackgroundFetch=Yes;Collate=Machine;Null=Yeseleted=Yes"
tbl.SourceTableName = "paspor"
MyDB.TableDefs.Append tbl
Я делаю вот так! Только вот базы Foxpro c мемо полями, для редактирование не доступны!! Почему?!