VBA資料庫解決計劃第11講,如何動態樹立資料庫和資料庫表

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入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

代碼截圖:

VBA資料庫解決計劃第11講,如何動態樹立資料庫和資料庫表 科技 第1張

代碼的解釋說明:由於大部分在代碼有註釋只需要再解釋兩個語句:

1 strSQL = “CREATE TABLE ” & strTable

SQL 中的CREATE TABLE 語句用於創建數據庫中的表。

SQL CREATE TABLE 語法:

CREATE TABLE 表名稱(列名稱1 數據類型,列名稱2 數據類型,列名稱3 數據類型,….)

2 catADO.ActiveConnection.Execute strSQL

這句的解釋在上一講中已經詳細的講過了,沒有記錄集的返回

運行結果:

VBA資料庫解決計劃第11講,如何動態樹立資料庫和資料庫表 科技 第2張

打開數據庫和表:

VBA資料庫解決計劃第11講,如何動態樹立資料庫和資料庫表 科技 第3張

今日內容回向:

1 如何創建一個數據庫?

2 如何創建數據庫中的表?

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!