ADO-ADOX: как создать mdb-базу?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

ADO-ADOX: как создать mdb-базу?

Сообщение hasuhands » 24.11.2004 (Ср) 13:41

Обрыскал помойку-MSDN. Может руки кривые, может совсем дурак, но так и не нашел примера того, как можно программно на ADO-ADOX создать mdb-базу, внутри нее таблицу с определенной структурой.

Может быть приведете пример?
У таблицы - 2 поля. Одно - текстовое, другое - числовое. Это, к примеру.

Вполне устроит ссылочка на что-нибудь, что подробно осветит этот вопрос. ;)

Пасибо
Последний раз редактировалось hasuhands 25.11.2004 (Чт) 3:52, всего редактировалось 1 раз.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.11.2004 (Ср) 14:04

Код: Выделить всё
Public Function CreateDB(ByVal FileName As String) As ResultCodes
Dim res As ResultCodes
Set cat = New ADOX.Catalog
On Error Resume Next
cat.Create "Provider=" & dbProvider & ";Data Source=" & FileName
If Err = 0 Then CreateDB = rcOK
On Error GoTo 0
Set cat = Nothing
End Function
Lasciate ogni speranza, voi ch'entrate.

hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

Сообщение hasuhands » 25.11.2004 (Чт) 3:51

Нашел еще:
Код: Выделить всё
Dim oCat As ADOX.Catalog
Dim oTable As ADOX.Table
Dim oColumn As ADOX.Column
Dim oKey As ADOX.Key

' Delete any previous temp file
On Error Resume Next
Kill ".\new35.mdb"
On Error GoTo 0

' Create a new database in 3.5 format (Access 97)
Set oCat = New ADOX.Catalog
oCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=.\new35.mdb;" & _
            "Jet OLEDB:Engine Type=4;"

' Create a new Table
Set oTable = New ADOX.Table
oTable.Name = "WebSite"
oCat.Tables.Append  oTable

' Create a new AutoNumber ID Column
Set oColumn = New ADOX.Column
With oColumn
    .Name = "WebSiteID"
    .Type = adInteger
    Set .ParentCatalog = oCat ' Must set before setting properties
    .Properties("Autoincrement") = True
End With
oCat.Tables("WebSite").Columns.Append  oColumn

' Create a new Primary Key for the table
Set oKey = New ADOX.Key
With oKey
    .Name = "PrimaryKey"
    .Type = adKeyPrimary
    .RelatedTable = "WebSite"
    .Columns.Append "WebSiteID"
End With
oCat.Tables("WebSite").Keys.Append  oKey

Может кому-то пригодиться

ps http://www.able-consulting.com/ADOX_Faq.htm

hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

Сообщение hasuhands » 25.11.2004 (Чт) 11:30

Господа, подскажите какие properties могут быть у Column'а?

Мне нужно сделать поле, в котором допускаются пустые значения. Как?
With oColumn
.Properties("???") = True
End With

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.11.2004 (Чт) 11:49

Они разные могут быть, надо смотреть по конкретному провайдеру.
Для Jet.4 это задается так:
Код: Выделить всё
objColumn.Attributes = objColumn.Attributes Or adColNullable
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron