MicrosoftADOExt.2.7forDDLadoSecurity'建数据库:PrivateSubForm_Load()DimcatAsADOX.CatalogSetcat=NewADOX.Catalog'在当前目录下建立名为newdata的Access数据库cat.Create("Provider=Micr" />
当前位置:文档之家› 怎样用VB的代码创建Access数据库

怎样用VB的代码创建Access数据库

怎样用VB的代码创建Access数据库
怎样用VB的代码创建Access数据库

怎样用VB的代码创建Access数据库

用ADOX:

'菜单“工程”--> "引用"--> Microsoft ADO Ext.2.7 for DDL ado Security

' 建数据库:

Private Sub Form_Load()

Dim cat As ADOX.Catalog

Set cat = New ADOX.Catalog

'在当前目录下建立名为newdata的Access数据库

cat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + App.Path & "\newdata.mdb " + "; ")

MsgBox "数据库已经创建成功!"

End Sub

' 建表:

Private Sub Command1_Click()

Dim cn As New ADODB.Connection

cn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "newdata.mdb;Persist Security Info=False "

cn.Open

cn.Execute "CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) "

cn.Close

End Sub

'删表:

Private Sub Command2_Click()

Dim cn As New ADODB.Connection

cn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source== " & App.Path & "newdata.mdb;Persist Security Info=False "

cn.Open

cn.Execute "DROP TABLE [aaa] "

cn.Close

End Sub

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Option Explicit

Dim i As Integer

Dim j As Integer

Private Sub Form_Load()

'菜单“工程”--> "引用"--> "Microsoft ActiveX Data Objects 2.7 Library "

'Microsoft ADO Ext.2.7 for DDL ado Security

Dim cat As ADOX.Catalog

Set cat = New ADOX.Catalog

cat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\newdata.mdb " + "; ")

MsgBox "数据库已经创建成功!"

Dim tbl As ADOX.Table

Set tbl = New ADOX.Table

tbl.ParentCatalog = cat

https://www.doczj.com/doc/66407893.html, = "MyTable "

'增加一个自动增长的字段

Dim col As ADOX.Column

Set col = New ADOX.Column

col.ParentCatalog = cat

col.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型https://www.doczj.com/doc/66407893.html, = "id "

col.Properties( "Jet OLEDB:Allow Zero Length ").Value = False col.Properties( "AutoIncrement ").Value = True

tbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0

'增加一个文本字段

Dim col2 As ADOX.Column

Set col2 = New ADOX.Column

col2.ParentCatalog = cat

https://www.doczj.com/doc/66407893.html, = "Description "

col2.Properties( "Jet OLEDB:Allow Zero Length ").Value = False tbl.Columns.Append col2, ADOX.DataTypeEnum.adVarChar, 25

'增加一个货币型字段

Dim col4 As ADOX.Column

Set col4 = New ADOX.Column

col4.ParentCatalog = cat

col4.Type = ADOX.DataTypeEnum.adCurrency

https://www.doczj.com/doc/66407893.html, = "xx "

tbl.Columns.Append col4, ADOX.DataTypeEnum.adCurrency

'增加一个OLE字段

Dim col5 As ADOX.Column

Set col5 = New ADOX.Column

col5.ParentCatalog = cat

col5.Type = ADOX.DataTypeEnum.adLongVarBinary

https://www.doczj.com/doc/66407893.html, = "OLD_FLD "

tbl.Columns.Append col5, ADOX.DataTypeEnum.adLongVarBinary

'增加一个数值型字段

Dim col3 As ADOX.Column

Set col3 = New ADOX.Column

col3.ParentCatalog = cat

col3.Type = ADOX.DataTypeEnum.adDouble

https://www.doczj.com/doc/66407893.html, = "ll "

tbl.Columns.Append col3, ADOX.DataTypeEnum.adDouble

Dim p As ADOX.Property

For Each p In col3.Properties

Debug.Print https://www.doczj.com/doc/66407893.html, & ": " & p.Value & ": " & p.Type & ": " & p.Attributes

Next

'设置主键

tbl.Keys.Append "PrimaryKey ", ADOX.KeyTypeEnum.adKeyPrimary, "id ", " ", " "

cat.Tables.Append tbl

MsgBox "数据库表:" + https://www.doczj.com/doc/66407893.html, + "已经创建成功!"

Set tbl = Nothing

Set cat = Nothing

End Sub

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 本例中我们使用ADOX来创建Access数据库。

Microsoft? ActiveX? Data Objects Extensions for Data Definition Language and Security (ADOX) 是对ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。

ADOX 是核心ADO 对象的扩展库。它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权限。

要通过开发工具使用ADOX,需要建立对ADOX 类型库的引用。对ADOX 库的说明为“Microsoft ADO Ext. for DDL and Security.”。ADOX 库文件名为“Msadox.dll”,程序ID (ProgID) 为“ADOX”。有关建立库引用的详细信息,请参阅开发工具的文档。

使用ADOX对象模型中的Catalog对象来创建数据库,创建Access数据库的方式非常简单,使用的字符串和ADODB.Connection对象的连接字符串是一样的。较为简单的示例如下:

1、创建数据库

'声明Catalog对象

Dim cat As New ADOX.Catalog

'设置创建数据库用到的字符串,和ADODB.Connection对象的连接字符串相同

Dim Workstring As String

Workstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test27.mdb"

'创建数据库

cat.Create Workstring

cat.ActiveConnection = Workstring

'声明Table对象

Dim tb1 As New ADOX.Table

https://www.doczj.com/doc/66407893.html, = "表1"

cat.Tables.Append tb1

2、下面的代码将字段添加到表中,我们以一个单精度字段和一个文本字段为例。

tb1.Columns.Append "成绩", adSingle

tb1.Columns("成绩").Properties("default").Value = 0 '字段默认值为0

'要说明的是,设置默认值和充许为空相冲突,所以这句可以和上句互换

'tb1.Columns("成绩").Attributes = adColNullable

tb1.Columns.Append "文本", adVarWChar, 50

tb1.Columns("文本").Properties("default").Value = "5362"

'以这种方式添加文本列的时候不能指定Attributes属性为adColNullable,希望能有人指点下

3、较为完整的添加字段的方法,与第二节没什么区别

Dim col1 As New ADOX.Column

Dim col2 As New ADOX.Column

col1.ParentCatalog = cat

https://www.doczj.com/doc/66407893.html, = "成绩"

col1.Type = adSingle

col1.Properties("default").Value = 0

'col1.Attributes = adColNullable

tb1.Columns.Append col1

col2.ParentCatalog = cat

https://www.doczj.com/doc/66407893.html, = "文本"

col2.Type = adVarWChar

col2.DefinedSize = 50

col2.Attributes = adColNullable

'col2.Properties("default").Value = "2222"

tb1.Columns.Append col2

'如果先添加列,tb1.Columns.Append col1,而后设置其属性,可以不用col1.ParentCatalog = cat这一句

4、在数据库已经存在的情况下,可以使用SQL语句创建表和字段,仍以添加一个单精度字段和一个文本字段为例,代码如下:

Dim conn As New ADODB.Connection

Dim Workstring As String

Workstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test.mdb"

conn.Open Workstring

strsql = "CREATE TABLE test9(编号single default 0,姓名text (50) not null default XXXX)"

conn.Execute strsql

Set conn = Nothing

相比较而言,第4段代码中添加表和字段的方法较为简练。

相关主题
文本预览
相关文档 最新文档