<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 數據庫的建立過程,這個方法小白也適合


    大家好,今日繼續講解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

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

    運行結果:

    動態建立數據庫和數據庫表的方法

    打開數據庫和表:

    動態建立數據庫和數據庫表的方法

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费