Access 使用ADOX修改ACCESS字段名称及数据类型

2017-08-03 06:16:00
zstmtony
原创
59
Access 使用ADOX修改ACCESS字段名称及数据类型
  
'Access VBA源代码
 
'使用之前需要先引用ADOX 
Public Sub ChangeFld()   '修改字段名和类型
 
    Dim Cnn As New ADODB.Connection 
    Dim Cat As New ADOX.Catalog      
    Set Cnn = CurrentProject.Connection      
    Cat.ActiveConnection = Cnn      
    Dim strTblName As String 
    Dim strColName As String 
     
    strTblName = "表名" 
    strColName = "字段名" 
     
    Dim i As Integer 
    Dim j As Integer 
    Dim k As Integer 
 
    For i = 0 To Cat.Tables.Count - 1 
        If Cat.Tables(i).Type = "TABLE" Then 
            For j = 0 To Cat.Tables(i).Columns.Count - 1 
                If Cat.Tables(i).Name = strTblName And Cat.Tables(i).Columns(j).Name = strColName Then 
                    '
修改字段类型
  [
  下行用法详见备注

                    Cnn.Execute "alter table " & strTblName & " alter column " & strColName & " varchar(100)"
 
                     
                    '修改字段名
 
                    Cat.Tables(i).Columns(j).Name = "新字段名" 
                End If 
            Next j 
 
        End If 
    Next i 
     
    MsgBox "OK" 
     
End Sub 
 
 
***************************************************************************************** 
备注:(来自ADO2.5帮助文件)
  
DataTypeEnum 
指定Field Parameter  或 Property 的数据类型。在下表的
“说明”
列的括号中显示了相应的 OLE DB 类型指示符。有关 OLE DB 数据类型的详细信息,请参阅 OLE DB Programmer's Reference 中的 Chapter 13 和附录 A 。 
常量   值    说明
 
AdArray (不适用于 ADOX。)
 
0x2000 
一个标志值,通常与另一个数据类型常量组合,指示该数据
类型的数组。
  
adBigInt 
20 
指示一个八字节的有符号整数
 (DBTYPE_I8)

 
adBinary 
128 
指示一个二进制值
 (DBTYPE_BYTES)

 
adBoolean 
11 
指示一个布尔值
 (DBTYPE_BOOL)

 
adBSTR 

指示以
 Null 
终止的字符串
 (Unicode) (DBTYPE_BSTR)

 
adChapter 
136 
指示一个四字节的子集值,标识子
行集合
中的行
 
(DBTYPE_HCHAPTER)

 
adChar 
129 
指示一个字符串值
 (DBTYPE_STR)

 
adCurrency 

指示一个货币值
 (DBTYPE_CY)
。货币是一个定点数字,小
数点右侧有四位数字。该值存储为八字节、范围为
 10,000 

有符号整数。
 
adDate 

指示日期值
 (DBTYPE_DATE)
。日期保存为双精度数,数字
的整数部分是从
 1899 

 12 

 30 
日算起的天数,小数部分
是一天当中的片段时间。
 
adDBDate 
133 
指示日期值
 (yyyymmdd) (DBTYPE_DBDATE)

 
adDBTime 
134 
指示时间值
 (hhmmss) (DBTYPE_DBTIME)

 
adDBTimeStamp 
135 
指示日期
/
时间戳(
yyyymmddhhmmss 
加十亿分之一的小
数)
(DBTYPE_DBTIMESTAMP)

 
adDecimal 
14 
指示具有固定精度和范围的确切数字值
 
(DBTYPE_DECIMAL)

 
adDouble 

指示一个双精度浮点值
 (DBTYPE_R8)

 
adEmpty 

指定没有值
 (DBTYPE_EMPTY)

 
adError 
10 
指示一个
 32 
位的错误代码
 (DBTYPE_ERROR)

 
adFileTime 
64 
指示一个
 64 
位的值,表示从
 1601 

 1 

 1 
日开始的
 100 

十亿分之一秒间隔的数量
 (DBTYPE_FILETIME)

 
adGUID 
72 
指示全局唯一标识符
 (GUID) (DBTYPE_GUID)

 
adIDispatch 

指示指向
 COM 
对象上
 IDispatch 
接口的指针
 
(DBTYPE_IDISPATCH)

  
注意
   ADO 
目前不支持这种数据类型。使用它可能导致不可
预料的结果。
 
adInteger 

指示一个四字节的有符号整数
 (DBTYPE_I4)

 
adIUnknown 
13 
指示指向
 COM 
对象上
 IUnknown 
接口的指针
 
(DBTYPE_IUNKNOWN)

  
注意
   ADO 
目前不支持这种数据类型。使用它可能导致不可
预料的结果。
 
adLongVarBinary 
205 
指示一个长二进制值。
 
adLongVarChar 
201 
指示一个长字符串值。
 
adLongVarWChar 
203 
指示一个以
 Null 
终止的长
 Unicode 
字符串值。
 
adNumeric 
131 
指示具有固定精度和范围的确切数字值
 
(DBTYPE_NUMERIC)

 
adPropVariant 
138 
指示一个
 Automation PROPVARIANT 
(DBTYPE_PROP_VARIANT)

 
adSingle 

指示一个单精度浮点值
 (DBTYPE_R4)

 
adSmallInt 

指示一个双字节的有符号整数
 (DBTYPE_I2)

 
adTinyInt 
16 
指示一个单字节的有符号整数
 (DBTYPE_I1)

 
adUnsignedBigInt 
21 
指示一个八字节的无符号整数
 (DBTYPE_UI8)

 
adUnsignedInt 
19 
指示一个四字节的无符号整数
 (DBTYPE_UI4)

 
adUnsignedSmallInt 
18 
指示一个双字节的无符号整数
 (DBTYPE_UI2)

 
adUnsignedTinyInt 
17 
指示一个单字节的无符号整数
 (DBTYPE_UI1)

 
adUserDefined 
132 
指示一个用户定义的变量
 (DBTYPE_UDT)

 
adVarBinary 
204 
指示一个二进制值(仅限于
 Parameter 
对象)。
 
adVarChar 
200 
指示一个字符串值。
 
adVariant 
12 
指示一个
 Automation Variant (DBTYPE_VARIANT)

  
注意
   ADO 
目前不支持这种数据类型。使用它可能导致不可
预料的结果。
 
adVarNumeric 
139 
指示一个数字值(仅限于
 Parameter 
对象)。
 
adVarWChar 
202 
指示一个以
 Null 
终止的
 Unicode 
字符串。
 
adWChar 
130 
指示一个以
 Null 
终止的
 Unicode 
字符串
 (DBTYPE_WSTR)

 
ADO/WFC 
等价内容
 
包:
com.ms.wfc.data 
常量
 
AdoEnums.DataType.ARRAY 
AdoEnums.DataType.BIGINT 
AdoEnums.DataType.BINARY 
AdoEnums.DataType.BOOLEAN 
AdoEnums.DataType.BSTR 
AdoEnums.DataType.CHAPTER 
AdoEnums.DataType.CHAR 
AdoEnums.DataType.CURRENCY 
AdoEnums.DataType.DATE 
AdoEnums.DataType.DBDATE 
AdoEnums.DataType.DBTIME 
AdoEnums.DataType.DBTIMESTAMP 
AdoEnums.DataType.DECIMAL 
AdoEnums.DataType.DOUBLE 
AdoEnums.DataType.EMPTY 
AdoEnums.DataType.ERROR 
AdoEnums.DataType.FILETIME 
AdoEnums.DataType.GUID 
AdoEnums.DataType.IDISPATCH 
AdoEnums.DataType.INTEGER 
AdoEnums.DataType.IUNKNOWN 
AdoEnums.DataType.LONGVARBINARY 
AdoEnums.DataType.LONGVARCHAR 
AdoEnums.DataType.LONGVARWCHAR 
AdoEnums.DataType.NUMERIC 
AdoEnums.DataType.PROPVARIANT 
AdoEnums.DataType.SINGLE 
AdoEnums.DataType.SMALLINT 
AdoEnums.DataType.TINYINT 
AdoEnums.DataType.UNSIGNEDBIGINT 
AdoEnums.DataType.UNSIGNEDINT 
AdoEnums.DataType.UNSIGNEDSMALLINT 
AdoEnums.DataType.UNSIGNEDTINYINT 
AdoEnums.DataType.USERDEFINED 
AdoEnums.DataType.VARBINARY 
AdoEnums.DataType.VARCHAR 
AdoEnums.DataType.VARIANT 
AdoEnums.DataType.VARNUMERIC 
AdoEnums.DataType.VARWCHAR 
AdoEnums.DataType.WCHAR

分享
发表评论
评论通过审核后显示。