1、怎样用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 ( "Pro
2、vider=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;D
3、ata 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 ADOD
4、B.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 /////////////////////////////////////
5、////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Option Explicit Dim i As Integer Dim j As Integer Private Sub Form_Load() '菜单“工程”--> "引用 "--> "Microsoft ActiveX Data Objects 2.7 Library "
6、'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
7、 ADOX.Table tbl.ParentCatalog = cat tbl.Name = "MyTable " '增加一个自动增长的字段 Dim col As ADOX.Column Set col = New ADOX.Column col.ParentCatalog = cat col.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型 col.Name = "id " col.Properties( "Jet O
8、LEDB: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 col2.Name = "Des
9、cription " 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.DataTypeEnu
10、m.adCurrency col4.Name = "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 col5.Name = "OLD_FLD " tbl.C
11、olumns.Append col5, ADOX.DataTypeEnum.adLongVarBinary '增加一个数值型字段 Dim col3 As ADOX.Column Set col3 = New ADOX.Column col3.ParentCatalog = cat col3.Type = ADOX.DataTypeEnum.adDouble col3.Name = "ll " tbl.Columns.Append col3, ADOX.DataTypeEnum.adDouble
12、 Dim p As ADOX.Property For Each p In col3.Properties Debug.Print p.Name & ": " & p.Value & ": " & p.Type & ": " & p.Attributes Next '设置主键 tbl.Keys.Append "PrimaryKey ", ADOX.KeyTypeEnum.adKeyPrimary, "id ", " ", " " cat.Tables
13、Append tbl MsgBox "数据库表: " + tbl.Name + "已经创建成功! " Set tbl = Nothing Set cat = Nothing End Sub ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 本例中我们使用A
14、DOX来创建Access数据库。 Microsoft® ActiveX® Data Objects Extensions for Data Definition Language and Security (ADOX) 是对 ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。 ADOX 是核心 ADO 对象的扩展库。它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权
15、限。 要通过开发工具使用 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
16、 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 tb1.Name = "表1" cat.
17、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("文本").Pro
18、perties("default").Value = "5362" '以这种方式添加文本列的时候不能指定Attributes属性为adColNullable,希望能有人指点下 3、较为完整的添加字段的方法,与第二节没什么区别 Dim col1 As New ADOX.Column Dim col2 As New ADOX.Column col1.ParentCatalog = cat col1.Name = "成绩" col1.Type = adSingle col1.Properties("default").Value = 0 'col1.Attributes = adC
19、olNullable tb1.Columns.Append col1 col2.ParentCatalog = cat col2.Name = "文本" 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这一
20、句 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段代码中添加表和字段的方法较为简练。






