作者:Office中国版主:t小宝 和 tanhong
使用数据表设计器来添加字段,相信大家都会。
但在Access中用代码建立表和字段,可能知道的网友并不太多,通常会使用DAO的方式,因为它是Access自带,比较方便快捷,但也可使用ADOX或其它方式
以下就列出以下3种解决方法
第一种,用ADO方式运行 CREATE TABLE 语句:
CurrentProject.Connection.Execute "CREATE TABLE 表1(字段1 DECIMAL);"
注意这里用CurrentProject.Connection取代了CurrentDb,因为CurrentProject.Connection返回的是ADO的Connection对象。
第二种,在菜单上 点击 "工具"—>"选项", 选择"表/查询"选项卡,在"SQL Server兼容语法(ANSI 92)"项中勾选"当前数据库"。
这个选项会改变数据库中SQL语句的解释方式,如通配符会改变,有可能原有的查询不能返回正常结果。
然后用RunSQL方法运行 CREATE TABLE 语句:
DoCmd.RunSQL "CREATE TABLE 表1(字段1 DECIMAL);"
其它示例:
SQL语句创建表,实例:
Sub CreateMyTable ()
'创建朋友表
SQL = "CREATE TABLE 朋友 ([朋友ID] COUNTER,[姓氏] text(20) not null,[名字] text,[出生日期] date ,[电话] text,[备注] memo, [是否] bit,[单价] currency,[照片] LONGBINARY,PRIMARY KEY ([朋友ID]));"
'运行SQL语句创建表
DoCmd.RunSQL SQL
Debug.print “朋友表创建成功”
End Sub
第三种,用ADOX对象
以下代码实现: tanhong
“ACCESS表字段”与“ADO数据类型属性常量”及“Microsoft Jet 数据库引擎的 SQL 语法”对照表,便于我们在通过“ADOX”即ADO扩展库创建表,或是通过SQL语句创建表时参考。
1、ADOX创建表,注:需引用ADOX扩展库msadox.dll
Sub Main()
On Error GoTo CreateTableError
Dim tbl As New Table
Dim cat As New ADOX.Catalog
Dim strpath As String
' 打开指定数据库,确定当前路径中db1.mdb 数据库存在,否则报错
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\db1.mdb;"
tbl.Name = "MyTable"
tbl.Columns.Append "Column1", adInteger
tbl.Columns.Append "Column2", adInteger
tbl.Columns.Append "Column3", adVarWChar, 50
'创建示范表
cat.Tables.Append tbl
Debug.Print "Table 'MyTable' is added."
'删除示范表
cat.Tables.Delete tbl.Name
Debug.Print "Table 'MyTable' is deleted."
'清除
Set cat.ActiveConnection = Nothing
Set cat = Nothing
Set tbl = Nothing
Exit Sub
CreateTableError:
Set cat = Nothing
Set tbl = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub