Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

СРОЧНО! У меня VB не контачит с базами данных!

30K
05 октября 2007 года
Ефимов Макс
8 / / 05.10.2007
Создаю базу данных (формат Access 2000). Ставлю на форму VB объект Data. В поле DatabaseName указываю путь к созданной БД. Жму на recordSourse - VB мне выдает ошибку "Unrecognized database format "\путь к моей БД\"" Что мне делать? У меня стоит VisualBasic 6.0
251
06 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Версия компонента не умеет работать с форматом 2000 аксеса.
30K
06 октября 2007 года
Ефимов Макс
8 / / 05.10.2007
а что мне делать?
251
06 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Если логично подумать, то или заменить компонент, или версию базы.:)
30K
06 октября 2007 года
Ефимов Макс
8 / / 05.10.2007
а может есть контрол, который читает БД, которые были созданы в access более поздней версии (2000, 2002)? если знаете где-скиньте ссылочку плз...
251
06 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
А как на счет самому делать БД, программно? Пользуйтесь компонентом, который есть в наличии. И запросами создаете БД, таблицы итд.
30K
06 октября 2007 года
Ефимов Макс
8 / / 05.10.2007
А есть ссылочка на уроки как это сделать? Просто я только вчер начал изучать БД
251
06 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Ссылочки не дам, - не помню, а вот кода кусок - пожалуйста:
Код:
Private Sub cmdCommand1_Click()
Dim Db As Database
Dim Ws As Workspace
Const dbPath = "c:\Mydb.mdb"
Set Ws = DBEngine.Workspaces(0)
Set Db = Ws.CreateDatabase(dbPath, dbLangGeneral)
CreateTable Db
End Sub
 
 
Public Function CreateTable(ByVal dbTemp As Database) As Boolean
 
Dim tdfTemр As TableDef
Dim idx As Index
Dim fld As Field
 
On Error GoTo errhandle
 
CreateTable = True
' CREATE TABLE "BalanceShifr"
Set tdfTemp = dbTemp.CreateTableDef("BalanceShifr")
Set fld = tdfTemp.CreateField("ConditionId", dbLong)
fld.Required = True
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("Account", dbText, 4)
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("SubAcc", dbText, 4)
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("Shifr", dbLong)
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("Date", dbDate)
fld.Required = True
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("SaldoDeb", dbCurrency)
tdfTemp.Fields.Append fld
Set fld = tdfTemp.CreateField("SaldoKr", dbCurrency)
tdfTemp.Fields.Append fld
dbTemp.TableDefs.Append tdfTemp
 
' CREATE INDEX "BalanceShifr"
Set tdfTemp = dbTemp.TableDefs("BalanceShifr")
Set idx = tdfTemp.CreateIndex("ForeignKey")
Set fld = idx.CreateField("ConditionId")
idx.Fields.Append fld
tdfTemp.Indexes.Append idx
Exit Function
 
errHandle:
MsgBox "Table creating error!", vbExclamation, "Error"
CreateTable = False
End Function


Только надо библиотеку DAO подконнектить
30K
07 октября 2007 года
Ефимов Макс
8 / / 05.10.2007
SkyM@n, огромнейшее спасибо! Ты мой спаситель!!!
251
07 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Да незачто. Ведь в поиске есть все это.. ;)
2.1K
07 октября 2007 года
Tever
87 / / 05.08.2003
Только DAO работает с Access '97
И VB создает базы данных в этом формате
Для работы с Access 2000-2003 надо использовать компонент Microsoft ADO Data Control 6.0 (OLEDB)
251
07 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Tever
Только DAO работает с Access '97
И VB создает базы данных в этом формате


Полнейший бред. Есть доказательства?

2.1K
07 октября 2007 года
Tever
87 / / 05.08.2003
Цитата: SkyM@n
Полнейший бред. Есть доказательства?



Попросил бы выбирать выражения.
Visual Data Manager создает базы в формате Access '97
Я проверил ваш код подключив DAO 3.6 - база открывается с помощью Access 2003, но при попытке подключить эту же базу через объект DATA выдается ошибка - неизвестный формат

2.1K
07 октября 2007 года
Tever
87 / / 05.08.2003
2 Ефимов Макс
Вот пример подключения базы данных Access 2003 с помощью ADO
251
07 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата:

Visual Data Manager создает базы в формате Access '97


Мы не говорим о Visual Data Manager - это вообще надстройка.

Цитата:
Я проверил ваш код подключив DAO 3.6 - база открывается с помощью Access 2003,


То есть вы убедились, что БД - формата 2000-2003, а не 97? ;)

Цитата:
но при попытке подключить эту же базу через объект DATA выдается ошибка - неизвестный формат


DATA - вообще отдельный разговор. В общем, этот компонент к теме не относится.

Цитата:

Попросил бы выбирать выражения.


Спасибо, я уже выбрал :)

2.1K
07 октября 2007 года
Tever
87 / / 05.08.2003
Цитата: SkyM@n
Мы не говорим о Visual Data Manager - это вообще надстройка.


Согласен, но один из компонентов

Цитата: SkyM@n
То есть вы убедились, что БД - формата 2000-2003, а не 97? ;)


Не спорю, убедился

Цитата: SkyM@n
DATA - вообще отдельный разговор. В общем, этот компонент к теме не относится.


С этого тема и началась и я сказал человеку, что надо использовать ADO, ну и пример работы с ADO забросил. Я думаю ему будет проще работать с ADO, чем с объектной моделью DAO.

251
07 октября 2007 года
SkyMаn
1.7K / / 31.07.2007
Вот и отлично, ему дали два решения. Аффтару и решать, что выбрать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог