尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
大家好,今日繼續講解VBA數據庫解決方案的第11講內容,如何動態的建立數據庫。VBA代碼數據庫解決方案一書寫到這里,已經講了很多,相信大家對於數據庫的概念應該了然於胸了。我們也開始逐步講解數據庫的實際操作了,有的朋友說你示例總數據庫是事先建立的,是否可以用VBA代碼動態建立數據庫呢?今日的這講我們就解決這個問題。在程序中動態的建立數據庫是完全可以做到的,今日的內容需要用到的知識點為ADOX,我們要先對這個知識點進行必要的講解。
一 什麼是ADOX:ADOX是Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security 的簡寫,是對ADO對象和編程模型的擴展。可用於創建、修改和刪除模式對象,如表格的創建,安全對象的實施,可用於維護用戶和組,以及授予和撤消對象的權限。
要通過開發工具使用ADOX,首先需要建立對 ADOX 的引用。引用對象為:「Microsoft ADO Ext. for DDL and Security.」當然也可以在過程中創建,可能我這時講到引用和過程中創建,朋友們不會陌生了。這和ADO的應用和創建是一個道理。
二 ADOX的對象有哪些,ADOX的對象主要用下面的內容
1 Catalog 包含描述數據源模式目錄的集合。
2 Column 表示表、索引或關鍵字的列。
3 Group 表示在安全數據庫內有訪問權限的組帳號。
4 Index 表示數據庫表中的索引。
5 Key 表示數據庫表中的主關鍵字、外部關鍵字或唯一關鍵字。
6 Procedure 表示存儲的過程。
7 Table 表示數據庫表,包括列、索引和關鍵字。
三 ADOX的方法有哪些
1 Append(Columns) 將新的 Column 對象添加到 Columns 集合。
2 Append(Groups) 將新的 Group 對象添加到 Groups 集合。
3 Append(Indexes) 將新的 Index 對象添加到 Indexes 集合。
4 Append(Keys) 將新的 Key 對象添加到 Keys 集合。
5 Append(Procedures) 將新的 Procedure 對象添加到 Procedures 集合。
6 Append(Tables) 將新的 Table 對象添加到 Tables 集合。
7 ChangePassword 更改用戶帳號的密碼。
8 Create 創建新的目錄。
9 Delete 刪除集合中的對象。
10 Refresh 更新集合中的對象,以反映針對提供者可用的和指定的對象。
四 ADOX 屬性
1 Count 指示集合中的對象數量。
2 DefinedSize 指示列的規定最大大小。
3 DeleteRule 指示主關鍵字被刪除時將執行的操作。
4 IndexNulls 指示在索引字段中有 Null 值的記錄是否有索引項。
5 Name 指示對象的名稱。
6 NumericScale 指示列中數值的範圍。
7 Precision 指示列中數據值的最高精度。
8 PrimaryKey 指示索引是否代表表的主關鍵字。
9 RelatedColumn 指示相關表中相關列的名稱(僅關鍵字列)。
10 SortOrder 指示列的排序順序(僅索引列)。
11 Type(關鍵字) 指示關鍵字的數據類型。
五 我們下面看看一個實例如何利用ADOX創建一個數據庫
我們看下面的代碼:
Sub mynzSetData() ‘創建數據庫及表
Dim catADO As Object
Dim strPath, strTable, strSQL As String
Set catADO = CreateObject(“ADOX.Catalog”)
strPath = ThisWorkbook.Path & “\mydata2.accdb” ‘此處是一個完整的路徑
strTable = “員工記錄” ‘表名稱
If Dir(strPath) <> “” Then Kill strPath ‘如果有一個名稱相同的表,那麼刪除
catADO.Create “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & strPath ‘打開數據庫的連接
‘下面的代碼將創建一個名為「員工記錄」的表包含的字段有員工編號、姓名、性別、部門、職務、備註
strSQL = “CREATE TABLE ” & strTable _
& “(員工編號 long not null primary key,” _
& “姓名 text(20) not null,” _
& “性別 text(1) not null,” _
& “部門 text(20) not null,” _
& “職務 text(20) ,” _
& “備註 text(20))”
catADO.ActiveConnection.Execute strSQL
MsgBox “創建數據庫成功!” & vbCrLf _
& “數據庫文件名為:” & strPath & vbCrLf _
& “數據表名稱為:” & strTable & vbCrLf _
& “保存位置:” & ThisWorkbook.Path, _
vbOKOnly + vbInformation, “創建數據庫”
Set catADO = Nothing
End Sub
代碼截圖:
代碼的解釋說明:由於大部分在代碼有註釋只需要再解釋兩個語句:
1 strSQL = “CREATE TABLE ” & strTable
SQL 中的CREATE TABLE 語句用於創建數據庫中的表。
SQL CREATE TABLE 語法:
CREATE TABLE 表名稱(列名稱1 數據類型,列名稱2 數據類型,列名稱3 數據類型,….)
2 catADO.ActiveConnection.Execute strSQL
這句的解釋在上一講中已經詳細的講過了,沒有記錄集的返回
運行結果:
打開數據庫和表:
今日內容回向:
1 如何創建一個數據庫?
2 如何創建數據庫中的表?