Microsoft ADO Ext.2.7" />
怎样用VB的代码创建Access数据库用 ADOX:'菜单“工程”--> "引用 "--> Microsoft ADO Ext.2.7 for DDL ado Security ' 建数据库:Private Sub Form_Load()Dim cat As ADOX.CatalogSet 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.Connectioncn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) "cn.CloseEnd Sub'删表:Private Sub Command2_Click()Dim cn As New ADODB.Connectioncn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source== " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "DROP TABLE [aaa] "cn.CloseEnd Sub/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Option Explici tDim i As IntegerDim j As IntegerPrivate Sub Form_Load()'菜单“工程”--> "引用 "--> "Microsoft ActiveX Data Objects 2.7 Library " 'Microsoft ADO Ext.2.7 for DDL ado SecurityDim cat As ADOX.CatalogSet cat = New ADOX.Catalogcat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\newdata.mdb " + "; ")MsgBox "数据库已经创建成功! "Dim tbl As ADOX.TableSet tbl = New ADOX.Tabletbl.ParentCatalog = cat = "MyTable "'增加一个自动增长的字段Dim col As ADOX.ColumnSet col = New ADOX.Columncol.ParentCatalog = catcol.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型 = "id "col.Properties( "Jet OLEDB:Allow Zero Length ").Value = Falsecol.Properties( "AutoIncrement ").Value = Truetbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0'增加一个文本字段Dim col2 As ADOX.ColumnSet col2 = New ADOX.Columncol2.ParentCatalog = cat = "Description "col2.Properties( "Jet OLEDB:Allow Zero Length ").Value = Falsetbl.Columns.Append col2, ADOX.DataTypeEnum.adVarChar, 25'增加一个货币型字段Dim col4 As ADOX.ColumnSet col4 = New ADOX.Columncol4.ParentCatalog = catcol4.Type = ADOX.DataTypeEnum.adCurrency = "xx "tbl.Columns.Append col4, ADOX.DataTypeEnum.adCurrency'增加一个OLE字段Dim col5 As ADOX.ColumnSet col5 = New ADOX.Columncol5.ParentCatalog = catcol5.Type = ADOX.DataTypeEnum.adLongVarBinary = "OLD_FLD "tbl.Columns.Append col5, ADOX.DataTypeEnum.adLongVarBinary'增加一个数值型字段Dim col3 As ADOX.ColumnSet col3 = New ADOX.Columncol3.ParentCatalog = catcol3.Type = ADOX.DataTypeEnum.adDouble = "ll "tbl.Columns.Append col3, ADOX.DataTypeEnum.adDoubleDim p As ADOX.PropertyFor Each p In col3.PropertiesDebug.Print & ": " & p.Value & ": " & p.Type & ": " & p.AttributesNext'设置主键tbl.Keys.Append "PrimaryKey ", ADOX.KeyTypeEnum.adKeyPrimary, "id ", " ", " "cat.Tables.Append tblMsgBox "数据库表: " + + "已经创建成功! "Set tbl = NothingSet cat = NothingEnd 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 StringWorkstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test27.mdb"'创建数据库cat.Create Workstringcat.ActiveConnection = Workstring'声明Table对象Dim tb1 As New ADOX.Table = "表1"cat.Tables.Append tb12、下面的代码将字段添加到表中,我们以一个单精度字段和一个文本字段为例。
tb1.Columns.Append "成绩", adSingletb1.Columns("成绩").Properties("default").Value = 0 '字段默认值为0'要说明的是,设置默认值和充许为空相冲突,所以这句可以和上句互换'tb1.Columns("成绩").Attributes = adColNullabletb1.Columns.Append "文本", adVarWChar, 50tb1.Columns("文本").Properties("default").Value = "5362"'以这种方式添加文本列的时候不能指定Attributes属性为adColNullable,希望能有人指点下3、较为完整的添加字段的方法,与第二节没什么区别Dim col1 As New ADOX.ColumnDim col2 As New ADOX.Columncol1.ParentCatalog = cat = "成绩"col1.Type = adSinglecol1.Properties("default").Value = 0'col1.Attributes = adColNullabletb1.Columns.Append col1col2.ParentCatalog = cat = "文本"col2.Type = adVarWCharcol2.DefinedSize = 50col2.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.ConnectionDim Workstring As StringWorkstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test.mdb" conn.Open Workstringstrsql = "CREATE TABLE test9(编号 single default 0,姓名 text (50) not null default XXXX)" conn.Execute strsqlSet conn = Nothing相比较而言,第4段代码中添加表和字段的方法较为简练。