Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Access Добавлено: 13.01.04 16:29  

Автор вопроса:  Maxik
Как программно создать Access BD???

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Emigrant



Вопросов: 7
Ответов: 22
 Профиль | | #1 Добавлено: 13.01.04 18:11

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

Удачи!

Ответить

Номер ответа: 2
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #2 Добавлено: 13.01.04 18:47

to Emigrant:

Ну ты хоть комментарии человеку оставил:

'Объявлем переменные DAO

Dim dbTable1 As TableDef

Dim dbField1 As Field

Dim dbWorkSpace As Workspace
Dim dbDataBase As Database

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

Ответить

Номер ответа: 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

Извиняюсь, на форум не посмотрел...

То Emigrant

ДА... редко когда встретишь женщину посещающую сайт по программированию на Вб...

Ответить

Номер ответа: 6
Автор ответа:
 Emigrant



Вопросов: 7
Ответов: 22
 Профиль | | #6 Добавлено: 15.01.04 23:54

Извиняюсь, тоже не глянула, что это для NET. Впредь буду по внимательней.

А я еще и крестиком вышивать умею! Чему только в эмиграции не научишься.

Ответить

Номер ответа: 7
Автор ответа:
 .COM



ICQ: 212158853 

Вопросов: 4
Ответов: 79
 Профиль | | #7 Добавлено: 16.01.04 11:06

я вот в VB.NET для создания БД Access использую функцию:

(необходимо подключение библиотеки ADOX)

Public Function CreateAccessDatabase( _
    ByVal DatabaseFullPath As String) As Boolean
        Dim bAns As Boolean
        Dim cat As New ADOX.Catalog()
        Try

         'Make sure the folder
         'provided in the path exists. If file name w/o path
         'is  specified,  the database will be created in your
         'application folder.

            Dim sCreateString As String
            sCreateString = _
              "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
               DatabaseFullPath
            cat.Create(sCreateString)

            bAns = True

        Catch Excep As System.Runtime.InteropServices.COMException
            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

А потом подключаю ADO (не Net:) и создаю таблицы SQL запросами.

идея сперта где-то здесь на сайте или рядом...

а ADO.Net в связке с Access мне лично не нравится.... (или может не понимаю чего)

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 16.01.04 11:07
ИМХО, средствами ADO .NET такое невозможно.
Нужно использовать DAO.

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 16.01.04 11:31
А зачем подключать ADOX, потом ADO, если проще просто подключить DAO,
который как раз под Access заточен?

Ответить

Номер ответа: 10
Автор ответа:
 .COM



ICQ: 212158853 

Вопросов: 4
Ответов: 79
 Профиль | | #10 Добавлено: 16.01.04 11:59

Мне лично проще создавать таблицы с помощью запросов (кода меньше => ошибок меньше). В 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 заточен" :)))

Ответить

Номер ответа: 11
Автор ответа:
 Maxik



Вопросов: 58
Ответов: 201
 Профиль | | #11 Добавлено: 16.01.04 12:42
А ту, которая не просто посещает, а еще и сама программирует, еще реже. 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам