Office中国论坛/Access中国论坛

标题: ADOX与SQL两种创建表格数据类型比较与实例 [打印本页]

作者: tanhong    时间: 2008-2-24 20:18
标题: ADOX与SQL两种创建表格数据类型比较与实例
  数据类型比较
ACCESS表字段ADO 数据类型属性常量Microsoft Jet 数据库引擎的 SQL 语法和同义词
不支持adBinaryBINARY(参见注意)
(同义词:VARBINARY)
是/否  adBooleanBOOLEAN
(同义词:BIT、LOGICAL、LOGICAL1、YESNO)
数字
(字段大小 = 字节)
adUnsignedTinyIntBYTE
(同义词:INTEGER1)
数字
(字段大小 =双精度型)
adDoubleDOUBLE
(同义词:FLOAT、FLOAT8、IEEEDOUBLE、NUMBER、NUMERIC)
数字
(字段大小 =长整型)
adIntegerLONG(参见注意)
(同义词:INT、INTEGER、INTEGER4)
数字
(字段大小 =单精度型)
adSingle SINGLE
(同义词:FLOAT4、IEEESINGLE、REAL)
数字
(字段大小 =整型)  
adSmallIntSHORT(参见注意)
(同义词:INTEGER2、SMALLINT)
文本 adVarWChar TEXT
(同义词:ALPHANUMERIC、CHAR, CHARACTER、STRING、VARCHAR)
货币 adCurrency CURRENCY
(同义词:MONEY)
自动编号
(字段大小= 长整型)  
adGUIDGUID
日期/时间  adDateDATETIME
(同义词:DATE、TIME、TIMESTAMP)
备注 adLongVarWChar LONGTEXT
(同义词:LONGCHAR、MEMO、NOTE)
OLE 对象 adLongVarBinary LONGBINARY
(同义词:GENERAL、OLEOBJECT)
超链接 adLongVarWChar LONGTEXT
(同义词:LONGCHAR、MEMO、NOTE)
不支持 adVariant VALUE(参见注意)


   “ACCESS表字段”与“ADO数据类型属性常量”及“Microsoft Jet 数据库引擎的 SQL 语法”对照表,便于我们在通过“ADOX”即ADO扩展库创建表,或是通过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

2、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

[attach]28582[/attach]





[ 本帖最后由 tanhong 于 2008-2-25 10:00 编辑 ]
(ADO_RDO-相关文章技巧链接):
ADOX与SQL两种创建表格数据类型比较与实例


作者: t小宝    时间: 2008-2-24 20:47
坐上沙发先
说明与实例俱全啊,好
作者: wwwwa    时间: 2008-2-25 08:16
learn,thanks
作者: jpj123123    时间: 2008-2-25 11:06
谢谢分享了 :lol
作者: zxp    时间: 2008-4-21 16:11
谢谢楼主
作者: lyf430204    时间: 2012-2-29 14:41
谢谢了,用第二种方法创建了表,但是怎么用变量命名这个表的名字呢?
作者: JosephTan    时间: 2012-2-29 17:32
lyf430204 发表于 2012-2-29 17:41
谢谢了,用第二种方法创建了表,但是怎么用变量命名这个表的名字呢?

[attach]48521[/attach]
合乎要求吗这样
作者: 李力军2    时间: 2016-5-6 18:51
好的,学习
作者: 灰太郎    时间: 2022-9-28 21:45
123123
作者: 灰太郎    时间: 2022-9-28 21:46
123456




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3