Страница: 1 |
Dim BD_fso As New FileSystemObject Dim BD_wrksp As Workspace Dim tdf As TableDef Dim db as DAO.Database On error resume next Set db = OpenDatabase(Path & "\Primer.mdb") If Err = 3024 Or Err = 3044 Then Set BD_wrksp = DBEngine.Workspaces(0) Set db = BD_wrksp.CreateDatabase(Path & "\Primer.mdb") Set tdf = db.CreateTableDef("NameTable") tdf.Fields.Append tdf.CreateField("Id", dbLong) tdf.Fields("Id").Attributes = dbAutoIncrField tdf.Fields.Append tdf.CreateField("Field1", dbText) tdf.Fields.Append tdf.CreateField("Field2", dbInteger) ........ db.TableDefs.Append tdf db.Close End If Удачи! to Emigrant: Ну ты хоть комментарии человеку оставил: 'Объявлем переменные DAO Dim dbTable1 As TableDef Dim dbField1 As Field Dim dbWorkSpace As Workspace Dim lngDBOpts As Long 'Открываем рабочую зону Set dbWorkSpace = DBEngine.Workspaces(0) Set dbDataBase = dbWorkSpace.CreateDatabase(Путь к БД, dbLangCyrillic, lngDBOpts) Set dbTable1 = dbDataBase.CreateTableDef(Имя табл) 'Добавляем поля, т.е. названия колонок Set dbField1 = dbTable1.CreateField(заголовок колонки,Тип колонки( dbText,dblong,dbdouble...), Если текстовая количество допустимых символов(100 к примеру)) 'Добавляем созданное поле в таблицу dbTable1.Fields.Append dbField1 'Добавляем таблицу в созданую БД dbDataBase.TableDefs.Append dbTable1 Прошу прощения, я ж ведь женщина, да в придачу блондинка, приму к сведению! Извиняюсь, на форум не посмотрел... То Emigrant ДА... редко когда встретишь женщину посещающую сайт по программированию на Вб... Извиняюсь, тоже не глянула, что это для NET. Впредь буду по внимательней. А я еще и крестиком вышивать умею! Чему только в эмиграции не научишься. я вот в VB.NET для создания БД Access использую функцию: (необходимо подключение библиотеки ADOX) Public Function CreateAccessDatabase( _ 'Make sure the folder Dim sCreateString As String bAns = True Catch Excep As System.Runtime.InteropServices.COMException А потом подключаю ADO (не Net и создаю таблицы SQL запросами. идея сперта где-то здесь на сайте или рядом... а ADO.Net в связке с Access мне лично не нравится.... (или может не понимаю чего) Мне лично проще создавать таблицы с помощью запросов (кода меньше => ошибок меньше). В DAO всякие рабочие зоны, на каждое поле надо писать что-то типа tdf.Fields.Append tdf.CreateField("Field1", dbText), а потом еще и добавить поле в таблицу надо не забыть... А если у меня 10 таблиц и по 5-15 полей в каждой... Итого как минимум от 50 до 150 таких в строк...+ строка для создания каждой таблицы... + строка для добавления таблицы в базу... Куча переменных... Можно конечно наверное и в DAO через SQL таблицы создавать...(я почему-то не пробовал При создании базы через ADOX фактически cat.Create(sCreateString) и все... (если выкинуть обработку ошибок...) Хотя и в DAO тоже в общем-то немного кода... В общем не настаиваю и ничего не имею против DAO... ) Это просто два разных способа (и думаю есть еще несколько... Пусть вопрошающий сам для себя решает чего использовать, альтернатив много... Короче запутал ты меня Паша, я и сам теперь не знаю "зачем подключать ADOX, потом ADO, если проще просто подключить DAO, который как раз под Access заточен" )) Страница: 1 |
Вопрос: Access
Добавлено: 13.01.04 16:29
Автор вопроса: Maxik
Как программно создать Access BD???
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Emigrant
Вопросов: 7
Ответов: 22
Профиль | | #1
Добавлено: 13.01.04 18:11
Номер ответа: 2
Автор ответа:
NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #2
Добавлено: 13.01.04 18:47
Dim dbDataBase As Database
'Создаем БД
'создаем таблицу в БД
Номер ответа: 3
Автор ответа:
Emigrant
Вопросов: 7
Ответов: 22
Профиль | | #3
Добавлено: 14.01.04 00:22
Номер ответа: 4
Автор ответа:
Maxik
Вопросов: 58
Ответов: 201
Профиль | | #4
Добавлено: 14.01.04 19:18
Припухли оба?
Это форум по .NET!!!
Нафиг мне DAO?? Интересует ADO.NET!!!!
То: Emigrant
Это же прекрасно!
Номер ответа: 5
Автор ответа:
NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #5
Добавлено: 15.01.04 19:48
Номер ответа: 6
Автор ответа:
Emigrant
Вопросов: 7
Ответов: 22
Профиль | | #6
Добавлено: 15.01.04 23:54
Номер ответа: 7
Автор ответа:
.COM
ICQ: 212158853
Вопросов: 4
Ответов: 79
Профиль | | #7
Добавлено: 16.01.04 11:06
ByVal DatabaseFullPath As String) As Boolean
Dim bAns As Boolean
Dim cat As New ADOX.Catalog()
Try
'provided in the path exists. If file name w/o path
'is specified, the database will be created in your
'application folder.
sCreateString = _
"Provider=Microsoft.Jet.OLEDB.4.0ata Source=" & _
DatabaseFullPath
cat.Create(sCreateString)
bAns = False
'do whatever else you need to do here, log,
'msgbox etc.
Finally
cat = Nothing
End Try
Return bAns
End Function
'DEMO
' If CreateAccessDatabase("F:\test.mdb") = True Then
' MsgBox("Database Created")
' Else
' MsgBox("Database Creation Failed")
' End If
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 16.01.04 11:07
ИМХО, средствами ADO .NET такое невозможно.
Нужно использовать DAO.
Номер ответа: 9
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #9
Добавлено: 16.01.04 11:31
А зачем подключать ADOX, потом ADO, если проще просто подключить DAO,
который как раз под Access заточен?
Номер ответа: 10
Автор ответа:
.COM
ICQ: 212158853
Вопросов: 4
Ответов: 79
Профиль | | #10
Добавлено: 16.01.04 11:59
Номер ответа: 11
Автор ответа:
Maxik
Вопросов: 58
Ответов: 201
Профиль | | #11
Добавлено: 16.01.04 12:42
А ту, которая не просто посещает, а еще и сама программирует, еще реже.