怎样用VB的代码创建Access数据库
用 ADOX:
'菜单“工程”--> \引用 \ 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
(
\
Source=
\ + App.Path & \ + \ MsgBox \数据库已经创建成功! \ End Sub ' 建表:
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString=
\
Source=
\ & App.Path & \ Security Info=False \ cn.Open
cn.Execute \ TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) \ cn.Close End Sub ' 删表:
Private Sub Command2_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString=
\
Source==
\ & App.Path & \ Security Info=False \ cn.Open
cn.Execute \ TABLE [aaa] \ cn.Close End Sub
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Option Explicit Dim i As Integer Dim j As Integer
Private Sub Form_Load()
'菜单“工程”--> \引用 \ 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 ( \ Source=D:\\newdata.mdb \ + \
MsgBox \数据库已经创建成功! \ Dim tbl As ADOX.Table Set tbl = New ADOX.Table tbl.ParentCatalog = cat tbl.Name = \
'增加一个自动增长的字段 Dim col As ADOX.Column Set col = New ADOX.Column col.ParentCatalog = cat
col.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型 col.Name = \
col.Properties( \ OLEDB:Allow Zero Length \ = False col.Properties( \ = True
tbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0
'增加一个文本字段
Dim col2 As ADOX.Column Set col2 = New ADOX.Column col2.ParentCatalog = cat col2.Name = \
col2.Properties( \ OLEDB:Allow Zero Length \ = 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 col4.Name = \
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 = \
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 col3.Name = \
tbl.Columns.Append col3, ADOX.DataTypeEnum.adDouble 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 \ ADOX.KeyTypeEnum.adKeyPrimary, \ \ \ cat.Tables.Append tbl
MsgBox \数据库表: \ + tbl.Name + \已经创建成功! \ 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 = \
'创建数据库 cat.Create Workstring
cat.ActiveConnection = Workstring
'声明Table对象
Dim tb1 As New ADOX.Table tb1.Name = \表1\cat.Tables.Append tb1
2、下面的代码将字段添加到表中,我们以一个单精度字段和一个文本字段为例。 tb1.Columns.Append \成绩\
tb1.Columns(\成绩\字段默认值为0 '要说明的是,设置默认值和充许为空相冲突,所以这句可以和上句互换 'tb1.Columns(\成绩\tb1.Columns.Append \文本\
tb1.Columns(\文本\
'以这种方式添加文本列的时候不能指定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(\'col1.Attributes = adColNullable tb1.Columns.Append col1 col2.ParentCatalog = cat col2.Name = \文本\col2.Type = adVarWChar col2.DefinedSize = 50 col2.Attributes = adColNullable 'col2.Properties(\tb1.Columns.Append col2
'如果先添加列,tb1.Columns.Append col1,而后设置其属性,可以不用col1.ParentCatalog = cat这一句
4、在数据库已经存在的情况下,可以使用SQL语句创建表和字段,仍以添加一个单精度字段和一个文本字段为例,代码如下:
Dim conn As New ADODB.Connection Dim Workstring As String
Workstring = \conn.Open Workstring
strsql = \编号 single default 0,姓名 text (50) not null default XXXX)\conn.Execute strsql
Set conn = Nothing
相比较而言,第4段代码中添加表和字段的方法较为简练。