怎么免費增加網(wǎng)站流量嗎域名解析
VB作為一個高效快捷的開發(fā)工具而言,在數(shù)據(jù)庫開發(fā)上有著很好的表現(xiàn)。但是,對于很多初學者而言,入門時經(jīng)常會看一些并非高效且封裝得更加多的代碼作為學習參考(如那種用什么控件、數(shù)據(jù)捆綁之類的范例代碼),導致很多多初學者想深入時會更加茫然。其實,曾經(jīng)很多用VB開發(fā)的數(shù)據(jù)庫商用軟件都不會用那種方法,因為弊病很多,效率也不高。先總結(jié)一下為什么說用數(shù)據(jù)控件效率不高。首先,作為數(shù)據(jù)庫操作的對象而言,是不需要有用戶界面的,完全可以在后來默默的查詢數(shù)據(jù)供開發(fā)者在代碼里任意使用,而控件,其實就是一個用窗口封裝的代碼模塊,里面除了對接數(shù)據(jù)查詢功能,還花了不少代碼去搞窗口消息的處理和重繪之類的,當然除了浪費內(nèi)存,還浪費CPU去處理那些窗口代碼,與單純的無界面后臺操作數(shù)據(jù)庫的方式而言,控件的效率肯定要打折扣,還有一個問題就是多窗口使用同一個數(shù)據(jù)庫時,處理起來也很麻煩。再說說那種捆綁數(shù)據(jù)自動顯示的弊病和問題吧。首先因為捆綁了數(shù)據(jù)源的控件都是自行去分析捆綁記錄集的字段、類型、數(shù)據(jù)條數(shù)等,并根據(jù)數(shù)據(jù)源的觸發(fā)事件將其需要顯示的信息自動顯示在數(shù)據(jù)表或輸入框中,那么就意味著這些控件都有通過消息或管道進行偵聽監(jiān)控才觸發(fā)的這些更新過程,這無形中又會浪費很多內(nèi)存資源和CPU資源,效率肯定也會下降。再者就是靈活性差,因為他是根據(jù)記錄集查詢出來的內(nèi)容變化整體輸出或單條輸出,而不是通過代碼控制處理,碰到些想合并表格或做點表格表達式運算處理就有心無力了。所以,通常專業(yè)的商用軟件很少有人會用這種數(shù)據(jù)控件或數(shù)據(jù)捆綁技術(shù)作為數(shù)據(jù)庫操作的核心處理模式。那么我所謂的專業(yè)的商用軟件具體用的是什么技術(shù)去實現(xiàn)這種數(shù)據(jù)庫操作的呢?其實對于看了眾多案例的初學者來說應該也可能見過,就是使用 ADO 對象,全稱是 Microsoft?ActiveX Data Objects,在VB引用里可以找到,不過你可能找到的有很多版本,如:
具體選哪一個呢,其實都可以,保險點選個最低版本都兼容,當你勾選了一個ADO對象后選確定,然后點擊“對象瀏覽器”按鈕,然后再點開對象下拉列表,就可以看到一個新的對象 ADODB在你的工程中了,如:
這時我們可以鼠標右鍵點擊Form1窗口,在彈出的菜單選“查看代碼”編輯些初始代碼。
而在編寫代碼前,我先介紹一下 ADO 對象,ADO 對象主要是負責與數(shù)據(jù)引擎對接的一個公共接口。其中比較常用的有兩個部分,一個是鏈接對象 ADODB.Connection 和記錄集 ADODB.Recordset,然后我再分別介紹一下這兩個對象的一些功能和常用的方法與屬性:
ADODB.Connection 對象
負責鏈接目標數(shù)據(jù)庫(可以指定服務器、用戶賬號、密碼、數(shù)據(jù)庫名稱、數(shù)據(jù)庫文件地址等等信息與指定數(shù)據(jù)庫連接),還可以直接在已連接數(shù)據(jù)庫的對象上調(diào)用 Execute 方法執(zhí)行 SQL 語句。
常用的方法有:Open、Execute、Close,常用的屬性有:State
ADODB.Connection.Open 方法用來連接數(shù)據(jù)庫
ADODB.Connection.Execute 方法用來在已連接的數(shù)據(jù)庫執(zhí)行 SQL 語句
ADODB.Connection.Close 方法可以關(guān)閉已連接的數(shù)據(jù)庫
ADODB.Connection.State 屬性可以讀取當前的連接狀態(tài)
當然,ADODB.Connection 還有其它很多方法、屬性與事件,不過通常不常用,上面這些通常的程序夠用了,如果想深入了解別的屬性或方法,可以看看 VS6 的 MSDN 說明。
?
ADODB.Recordset?對象
負責利用以連接好的 ADODB.Connection 對查詢出來的數(shù)據(jù)進行進一步的處理,所以 ADODB.Recordset 在使用是需要關(guān)聯(lián) ADODB.Connection 對象一起使用。
常用的方法有:Open、MoveNext、Move、Close,常用的屬性有:RecordCount、Fields、EOF等。
當然像 AddNew、UpdateBatch、MoveFirst、MoveLast、MovePrevious、Delete 等等也是比較常用的,只是如果玩 SQL 語句進行創(chuàng)建、查詢、插入、刪除等操作,這些方法屬性等都很少用到。
ADODB.Recordset.Open 指定 ADODB.Connection 對象查詢指定的 SQL語句
ADODB.Recordset.MoveNext 將當前記錄向下移動一條
ADODB.Recordset.Move 將當前記錄向上或向下移動到指定的條數(shù),可以輸入負數(shù)或正數(shù)
ADODB.Recordset.Close 關(guān)閉查詢結(jié)果
ADODB.Recordset.RecordCount 取得已查詢的數(shù)據(jù)條數(shù)(要得到數(shù)據(jù)條數(shù)不建議使用該屬性,可以用SQL語句的Count聚合函數(shù)統(tǒng)計出數(shù)據(jù)結(jié)果,效率會更高)
ADODB.Recordset.Fields 取得已查詢的出的字段信息,包含字段名稱、類型、數(shù)據(jù)等都可以讀取或設置
ADODB.Recordset.EOF 可以在死循環(huán)里判斷是否移動到了數(shù)據(jù)結(jié)尾以結(jié)束死循環(huán)
?
有了這兩個對象后基本上就可以對數(shù)據(jù)庫進行任何操作了,之后的關(guān)鍵就是去了解 SQL 語句了,不同的數(shù)據(jù)庫在 SQL 語句的使用上會略有不同,但也是大同小異的,如 ACCESS的日期類型和MS SQLServer 的日期類型就有少許區(qū)別,ACCESS是用 #2019-12-06# 來指定日期,而 MS SQLServer 是用 '2019-12-06' 來指定日期等大同小異的區(qū)別。
現(xiàn)在我們可以來看看具體的使用案例了:
由于我們之前在工程里引用的 ADO 對象,所以我們可以在窗口代碼里直接定義Connection與Recordset類型的變量,如:
Private Sub Form_Load()Dim conn As ConnectionDim rs As RecordsetEnd Sub
但是,VB的對象使用是需要初始化的,所以我們還需要為這兩個對象變量進行初始化,過程如下:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量End Sub
接著我們需要先鏈接數(shù)據(jù)庫,然后才能對數(shù)據(jù)庫進行創(chuàng)建、查詢、修改、插入、刪除等操作,所以我們先來了解一下如何鏈接數(shù)據(jù)庫。鏈接數(shù)據(jù)庫之前有介紹,我們可以通過?Connection 的 Open 方法來連接數(shù)據(jù)庫,具體格式是:
對象.Open 字符串類型的連接語句,例如我們嘗試鏈接一個存放在 d:\1.mdb 的 ACCESS 數(shù)據(jù)庫,我們可以這樣進行連接:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 連接 ACCESS 數(shù)據(jù)庫conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"End Sub
但是,即使使用了 Open 方法嘗試鏈接數(shù)據(jù)庫也未必就能鏈接成功,因為可能文件被意外移動,文件被意外修改或是磁盤出現(xiàn)壞道什么的導致文件丟失,作為一個專業(yè)的軟件不可能讓一個不能確定的鏈接跑之后的程序的,所以需要對鏈接狀態(tài)進行判斷,確認鏈接狀態(tài)不是關(guān)閉后才繼續(xù)跑之后的程序,否則將提示錯誤做重新鏈接或退出程序之類的處理,如:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 連接 ACCESS 數(shù)據(jù)庫conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"If conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'...End Sub
在開發(fā)這種 Open、Close 程序的時候,需要養(yǎng)成一個良好的習慣,就是當你寫了 Open 之后,接著就想著在哪先寫好 Close 過程,如:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 連接 ACCESS 數(shù)據(jù)庫conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"If conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'...' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
然后我們來進一步說一說?Connection 的 Execute 方法,通常?Execute 方法都是用作那種不需要返回,只需要執(zhí)行一次SQL性操作的情況下使用,如:創(chuàng)建數(shù)據(jù)表、插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)時使用,所以,接下來我們嘗試在一個數(shù)據(jù)表中實現(xiàn)數(shù)據(jù)的插入、修改、刪除等操作。例如我們 d:\1.mdb ACCESS數(shù)據(jù)庫中有一個名為?user 的表,字段分別有 id、uid()、pwd、uname、sex,bd等,類型如圖:
然后我們嘗試插入一條數(shù)據(jù),代碼如下:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 連接 ACCESS 數(shù)據(jù)庫conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"If conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'---------- 插入數(shù)據(jù) ----------conn.Execute "INSERT INTO `user` (`uid`,`pwd`,`uname`,`sex`,`bd`) VALUES ('sk','123','人類',1,#2019-12-06#)"' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
然后我們先確保關(guān)掉 ACCESS 的情況下嘗試運行程序,再用 ACCESS 打開數(shù)據(jù)庫看看結(jié)果,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)插入成功了:
但這時候我們會發(fā)現(xiàn)如果要同時插入多條數(shù)據(jù)SQL語句會很長,這時候還是直接在 Execute 方法后放字符串會很難管理字符串,所以我們可以在程序開頭多定義一個字符串變量出來專門存儲SQL語句,這樣使用起來代碼格式看起來會整潔很多:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'---------- 插入數(shù)據(jù) ----------SQL = "INSERT INTO `user` ("SQL = SQL & "`uid`,"SQL = SQL & "`pwd`,"SQL = SQL & "`uname`,"SQL = SQL & "`sex`,"SQL = SQL & "`bd`"SQL = SQL & ") VALUES "SQL = SQL & "('sk','123','人類',1,#2019-12-06#)"conn.Execute SQL' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
然后我們再嘗試一下刪除所有數(shù)據(jù)
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'---------- 刪除數(shù)據(jù) ----------SQL = "DELETE FROM `user`"conn.Execute SQL'---------- 插入數(shù)據(jù) ----------SQL = "INSERT INTO `user` ("SQL = SQL & "`uid`,"SQL = SQL & "`pwd`,"SQL = SQL & "`uname`,"SQL = SQL & "`sex`,"SQL = SQL & "`bd`"SQL = SQL & ") VALUES "SQL = SQL & "('sk','123','人類',1,#2019-12-06#)"conn.Execute SQL' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
這個時候我們再運行一次程序,會發(fā)現(xiàn)原先 ID 為 1 的數(shù)據(jù)變成了 ID 為 2 的數(shù)據(jù),這是因為原來添加的那條 ID 為 1 的數(shù)據(jù)在程序一運行時就被無差別的清理掉了,然后這條?ID 為 2 數(shù)據(jù)是剛剛運行的程序才插入進去的。
然后我們再嘗試著同時加幾條數(shù)據(jù)并嘗試修改某條數(shù)據(jù)看看:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Dim SQL_INSERT As String ' 定義一個字符串變量用來存儲 SQL INSERT 語句Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'---------- 刪除數(shù)據(jù) ----------SQL = "DELETE FROM `user`"conn.Execute SQL'---------- 插入數(shù)據(jù) ----------SQL_INSERT = "INSERT INTO `user` (`uid`,`pwd`,`uname`,`sex`,`bd`) VALUES "SQL = SQL_INSERT & "('sk','123','人類',1,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('ii','111','測試1',0,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('jjj','222','測試2',0,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('kk','333','測試3',0,#2019-12-06#)"conn.Execute SQL'---------- 修改數(shù)據(jù) ----------' 指定條件為 UID 為 jjj 的數(shù)據(jù),將其 uname 改為 TestUserName, sex 改為 1SQL = "UPDATE `user` SET `uname`='TestUserName',`sex`=1 WHERE `uid`='jjj';"conn.Execute SQL' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
然后可以發(fā)現(xiàn)數(shù)據(jù)庫添加了有4條數(shù)據(jù), UID 為 jjj 的數(shù)據(jù) uname 變成了 TestUserName:
但老是這么用ACCESS來讀數(shù)據(jù)也不是個辦法,所以當我們了解了刪除、插入、修改數(shù)據(jù)后,我們就來了解一下查詢數(shù)據(jù)的方法了,讓我們先按照步驟,先看看輸入一個查詢語句查詢數(shù)據(jù)表的過程代碼:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Dim SQL_INSERT As String ' 定義一個字符串變量用來存儲 SQL INSERT 語句Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'---------- 刪除數(shù)據(jù) ----------SQL = "DELETE FROM `user`"conn.Execute SQL'---------- 插入數(shù)據(jù) ----------SQL_INSERT = "INSERT INTO `user` (`uid`,`pwd`,`uname`,`sex`,`bd`) VALUES "SQL = SQL_INSERT & "('sk','123','人類',1,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('ii','111','測試1',0,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('jjj','222','測試2',0,#2019-12-06#)"conn.Execute SQLSQL = SQL_INSERT & "('kk','333','測試3',0,#2019-12-06#)"conn.Execute SQL'---------- 修改數(shù)據(jù) ----------' 指定條件為 UID 為 jjj 的數(shù)據(jù),將其 uname 改為 TestUserName, sex 改為 1SQL = "UPDATE `user` SET `uname`='TestUserName',`sex`=1 WHERE `uid`='jjj';"conn.Execute SQL'---------- 查詢數(shù)據(jù) ----------SQL = "SELECT * FROM `user`"rs.Open SQL, conn, adOpenStatic, adLockReadOnlyrs.Close' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.Close
End Sub
看到查詢語句部分很簡單,就是記錄集 rs 指定數(shù)據(jù)連接對象 conn 用已設置好的?SQL 語句查詢并返回結(jié)果,然后記錄集 rs 把存入相關(guān)屬性或?qū)ο笾?#xff0c;如把字段相關(guān)的結(jié)果存入記錄集內(nèi)的?Fields 對象中,當前是否是最后一條記錄存到 EOF 屬性中等等。所以這時候我們可以使用?RecordCount 屬性的讀取取得查詢到的數(shù)據(jù)條數(shù),這樣就可以用 For 語句循環(huán)指定的次數(shù),然后在每一次循環(huán)過程中向下移動一下數(shù)據(jù)就可以讀取所有的數(shù)據(jù)并輸出出來,如:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Dim SQL_INSERT As String ' 定義一個字符串變量用來存儲 SQL INSERT 語句Dim i As Long ' 定義一個整數(shù)變量用作循環(huán)語句使用Dim str_out As String ' 定義一個字符串變量用作輸出文本用Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'...'---------- 查詢數(shù)據(jù) ----------str_out = ""SQL = "SELECT * FROM `user`"rs.Open SQL, conn, adOpenStatic, adLockReadOnlyFor i = 1 To rs.RecordCountIf i > 1 Thenstr_out = str_out & vbCrLfEnd Ifstr_out = str_out & rs!id & vbTab & rs!uname & vbTab & rs!uid & vbTab & rs!pwdIf i < rs.RecordCount Then rs.MoveNextNext irs.Close' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.CloseMsgBox str_out, 64, "數(shù)據(jù)"End
End Sub
也可以用 Do loop 這類死循環(huán)通過讀取 EOF 屬性來讀取全部數(shù)據(jù),如:
Private Sub Form_Load()Dim conn As Connection ' 定義數(shù)據(jù)連接對象變量Dim rs As Recordset ' 定義記錄集對象變量Dim SQL As String ' 定義一個字符串變量用來存儲 SQL 語句Dim SQL_INSERT As String ' 定義一個字符串變量用來存儲 SQL INSERT 語句Dim i As Long ' 定義一個整數(shù)變量用作循環(huán)語句使用Dim str_out As String ' 定義一個字符串變量用作輸出文本用Set conn = New Connection ' 初始化數(shù)據(jù)連接對象Set rs = New Recordset ' 初始化記錄集對象變量' 設置數(shù)據(jù)庫連接語句SQL = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\1.mdb"' 連接 ACCESS 數(shù)據(jù)庫conn.Open SQLIf conn.State = 0 ThenMsgBox "連接數(shù)據(jù)庫失敗,請您確定"EndEnd If' 已經(jīng)正常連接數(shù)據(jù)庫'...'---------- 查詢數(shù)據(jù) ----------str_out = ""SQL = "SELECT * FROM `user`"rs.Open SQL, conn, adOpenStatic, adLockReadOnlyi = 1Do While Not rs.EOFIf i > 1 Thenstr_out = str_out & vbCrLfEnd Ifstr_out = str_out & rs!id & vbTab & rs!uname & vbTab & rs!uid & vbTab & rs!pwdi = i + 1If Not rs.EOF Then rs.MoveNextLooprs.Close' 完成所有數(shù)據(jù)操作關(guān)閉數(shù)據(jù)連接conn.CloseMsgBox str_out, 64, "數(shù)據(jù)"End
End Sub
好了,這里就基本上算是能夠插入、修改、刪除、讀取數(shù)據(jù)庫了,如果想把查詢的內(nèi)容放到數(shù)據(jù)表內(nèi),可以用一些第三方表格控件來處理,通常都支持行列設置的,自己按行列設置表格數(shù)據(jù),這樣靈活性會很高,對于一些復雜的第三方表格控件來說,還支持合并表格,多表頭的處理,用這種方法讀寫數(shù)據(jù)會快很多。