Access 使用ADOX修改ACCESS字段名稱及數據類型

2017-08-03 06:16:00
zstmtony
原創
1163
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

分享