SQL資料庫命令大全「清空資料庫表命令」

人生在世,本來就是生不帶來,死不帶去,太多的執念,反而變成沉甸甸的包袱。真正活的聰慧的人,都懂得為心靈騰出位置,拋去一些過往雲煙,把清風明月請進胸懷,這樣的人往往大智若愚。人生何其短暫,重要的不是過紙醉金迷的生活,而是拋開浮雲,看到生命的真諦。

《VBA資料庫解決方案》教程是我推出第二套教程,目前已經是第一版修訂了。這套教程定位於中級,是學完字典後的另一個專題講解。資料庫是數據處理的利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,教程第一版的修訂內容主要是完成所有程序文件的32位和64位OFFICE系統測試。

這套教程共兩冊,八十四講,今後一段時間會給大家陸續推出修訂後的教程內容。今日的內容是第14講:資料庫中動態刪除和建立數據表。

資料庫中動態刪除和建立數據表

第十四講 如何在資料庫中動態刪除和建立數據表

大家好,今天繼續講解VBA資料庫解決方案的第14講:如何動態的在資料庫中建立數據表。我們在什麼是資料庫中講解講過,表是一種關係,那麼這種關係可否能實現動態的建立呢?也就是說,我們在程序中用代碼建立數據表,是否可以做到呢?我們在做程序時經常會用到寫資料庫時要建立數據表,而手工建立確實很麻煩,我們考慮要用VBA代碼去建立,是的,用代碼去建立是完全可以的,也非常的簡單。

實例的應用:在一個資料庫mydata中已經存在了一個表」員工記錄」,我們要建立另外的一個表「信息參考」,這個表中的內容是為了儲存處包括各個部門的部門名稱,和部門的定崗人數兩個欄位,我們要看看這個代碼該如何完成的。

1 動態建立和刪除數據表的應用代碼

代碼如下:

Sub mynztableJL()

Dim cnADO, rsADO As Object

Dim strPath, myTable, strSQL As String

Set cnADO = CreateObject(“ADODB.Connection”)

Set rsADO = CreateObject(“ADODB.Recordset”)

strPath = ThisWorkbook.Path & “mydata2.accdb”

myTable = “信息參考”

TT = False

cnADO.Open “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & strPath

Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, myTable, Empty))

If Not rsADO.EOF Then

MsgBox “工作表已經存在,是否刪除數據表?”, vbInformation, “數據表判斷”

strSQL = “DROP TABLE ” & myTable

cnADO.Execute strSQL

TT = True

Else

MsgBox “數據表不存在,下面將建立工作表”, vbInformation, “數據表判斷”

End If

strSQL = “CREATE TABLE ” & myTable _

& “(部門 text(20) not null,總人數 text(10) not null)”

cnADO.Execute strSQL

If TT <> True Then

MsgBox “創建數據表成功!” & vbCrLf & “數據表名稱為:” & myTable, , “創建數據表”

Else

MsgBox “創建數據表重新創建成功!” & vbCrLf & “數據表名稱為:” & myTable, , “創建數據表”

End If

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼的截圖:

資料庫中動態刪除和建立數據表

2 代碼的解讀和實現效果

代碼的講解:

1) strSQL = “DROP TABLE ” & myTable

cnADO.Execute strSQL

這是通過SQL,使用 DROP 語句,刪除表。

備註:通過使用 DROP 語句,可以輕鬆地刪除索引、表和資料庫。

2) Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, myTable, Empty))

If Not rsADO.EOF Then

MsgBox “工作表已經存在,是否刪除數據表?”, vbInformation, “數據表判斷”

strSQL = “DROP TABLE ” & myTable

cnADO.Execute strSQL

TT = True

Else

MsgBox “數據表不存在,下面將建立工作表”, vbInformation, “數據表判斷”

End If

在上述的代碼中首先要判斷myTable工作表即”信息參考”的表是否存在,如果存在那麼首先要刪除這個已經存在的數據表,為了達到人機交互,在刪除之前要徵得用戶的同意。

如果不存在數據表,那麼會提示用戶,下面將創建。

3) strSQL = “CREATE TABLE ” & myTable _

& “(部門 text(20) not null,總人數 text(10) not null)”

cnADO.Execute strSQL

上述代碼創建了一個myTable工作表即”信息參考”的數據表,這個工作表有兩個欄位,

① 部門 text(20) not null 名稱為「部門」, 文本 20個字元長,不為空

② 總人數 text(10) not null名 稱為「總人數」,文本 10個字元長,不為空

③ CREATE TABLE 語句用於創建資料庫中的表。

語法:CREATE TABLE 表名稱

(

列名稱1 數據類型,

列名稱2 數據類型,

列名稱3 數據類型,

….

4) If TT <> True Then

MsgBox “創建數據表成功!” & vbCrLf & “數據表名稱為:” & myTable, , “創建數據表”

Else

MsgBox “創建數據表重新創建成功!” & vbCrLf & “數據表名稱為:” & myTable, , “創建數據表”

End If

上面代碼中彈出對話框提示用戶數據表創建成功,這裡提示用戶創建的過程是不同的,一種情況是原來沒有此數據表是新創建的,一種情況是原先存在此工作表,被刪除了,然後再創建的。這個判斷是通過的一個變數TT來確認的。

5) rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

上述代碼是關閉連接,並釋放內存。在代碼的編寫過程中。一定記著最後要關閉連接和記錄集,最後還要釋放內存。

下面我們看看代碼的運行:

資料庫中動態刪除和建立數據表
資料庫中動態刪除和建立數據表

如果是原先存在此數據表,則會有下面的提示:

資料庫中動態刪除和建立數據表
資料庫中動態刪除和建立數據表

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/251241.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-13 17:22
下一篇 2024-12-13 17:22

相關推薦

發表回復

登錄後才能評論