office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

ADOX与SQL两种创建表格数据类型比较与实例

2008-02-24 20:18:39
tanhong-Office交流网
原创
8025
  数据类型比较
ACCESS表字段 ADO 数据类型属性常量 Microsoft Jet 数据库引擎的 SQL 语法和同义词
不支持 adBinary BINARY(参见注意)
(同义词:VARBINARY)
是/否   adBoolean BOOLEAN
(同义词:BIT、LOGICAL、LOGICAL1、YESNO)
数字
(字段大小 = 字节)
adUnsignedTinyInt BYTE
(同义词:INTEGER1)
数字
(字段大小 =双精度型)
adDouble DOUBLE
(同义词:FLOAT、FLOAT8、IEEEDOUBLE、NUMBER、NUMERIC)
数字
(字段大小 =长整型)
adInteger LONG(参见注意)
(同义词:INT、INTEGER、INTEGER4)
数字
(字段大小 =单精度型) 
adSingle  SINGLE
(同义词:FLOAT4、IEEESINGLE、REAL)
数字
(字段大小 =整型)  
adSmallInt SHORT(参见注意)
(同义词:INTEGER2、SMALLINT) 
文本  adVarWChar  TEXT
(同义词:ALPHANUMERIC、CHAR, CHARACTER、STRING、VARCHAR)
货币  adCurrency  CURRENCY
(同义词:MONEY)
自动编号
(字段大小= 长整型)  
adGUID GUID
日期/时间   adDate DATETIME
(同义词: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

完整的Access源码示例下载: ADOX与SQL两种创建表格数据类型比较与实例 .rar


Access常用的数据类型


1. 字符类型:(VARCHAR、CHA)
    用于存储字符数据,最大长度为255,ACCESS中有两个字符数据:VARCHAR和CHAR,前者用于存储可变长度字符串,后者用于存储固定长度字符串。固定长度会用空格来填充不够的位数,并且检索的时候要比可变的快。
2. 备注类型:(MEMO)长度为64000个字符,由于字符类型数据的最大长度为255个字节,所以没办法存储更长的文字说明,备注类型数据就是为了解决这个问题的。
3. 数字类型:ACCESS中有6种数字类型:
Byte 字节型 整数 0-255
Smallint 整型 整数 -32000-32000
Integer(number) 长整型 整数 -2000000000-2000000000:9个0
Money(currency)货币性 整数和4位小数 正负900000000000000:14个0
Real 单精度 浮点数字 14.E-45 – 3.4E+38
Float 双精度浮点数字 4.9E-324 – 1.8E+308
4. 日期时间类型:(datetime)用于存储日期值,时间值,日期时间混合值:
常规日期
常日期
中日期
短日期
长时间
中时间
短时间
5. 自动编号类型:(counter)每增加一条记录就会自动增加一个编号。
6. 是否类型:(yesno)对一个字段中包含的两种不同的可选值。
7. ole对象类型:允许单独的链接或嵌入OLE对象。
 
t小宝
说明与实例俱全啊

JosephTan
做了个示例: Database9.zip
合乎要求吗这样

李力军2
好的,学习

(表设计-相关文章技巧链接):
代码创建Access数据表和字段的多种方式

分享