2: ADO與ADOX
我們先來(lái)對(duì)ADO 和ADOX進(jìn)行簡(jiǎn)單的認(rèn)識(shí)。在VB6中,使用ADO開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),我們要引用對(duì)象庫(kù)"Microsoft ActiveX Data Objects 2.5 Library", 這個(gè)東西的簡(jiǎn)稱(chēng)就是ADO,它是VB6數(shù)據(jù)庫(kù)最核心的對(duì)象群,也是VB數(shù)據(jù)庫(kù)開(kāi)發(fā)人員經(jīng)常所引用的對(duì)象庫(kù),在VB6中你可以看到它的各種版本,從2.0版到2.6版都有,很多人對(duì)它已經(jīng)很熟悉,在此我們不再詳細(xì)介紹。如果要在程序運(yùn)行過(guò)程中創(chuàng)建數(shù)據(jù)庫(kù)和表,我們還要引用對(duì)象庫(kù)"Microsoft ADO Ext 2.1. For DDL Security",簡(jiǎn)稱(chēng)為ADOX,其庫(kù)文件名為是:Msadox.dll。ADOX是對(duì) ADO 對(duì)象和編程模型的擴(kuò)展,它將 ADO 擴(kuò)展為包括創(chuàng)建、修改和刪除模式對(duì)象,如表格和過(guò)程。它還包括安全對(duì)象,用于維護(hù)用戶(hù)和組,以及授予和撤消對(duì)象的權(quán)限。ADOX的對(duì)象如下表所示 托福答案_改分
對(duì)象 說(shuō)明
Catalog 包含描述數(shù)據(jù)源模式目錄的集合。
Column 表示表、索引或關(guān)鍵字的列。
Group? 表示在安全數(shù)據(jù)庫(kù)內(nèi)有訪問(wèn)權(quán)限的組帳號(hào)。
Index? 表示數(shù)據(jù)庫(kù)表中的索引。
Key? 表示數(shù)據(jù)庫(kù)表中的主關(guān)鍵字、外部關(guān)鍵字或唯一關(guān)鍵字。
Procedure 表示存儲(chǔ)的過(guò)程。
Table? 表示數(shù)據(jù)庫(kù)表,包括列、索引和關(guān)鍵字。
User? 表示在安全數(shù)據(jù)庫(kù)內(nèi)具有訪問(wèn)權(quán)限的用戶(hù)帳號(hào)。
View? 表示記錄或虛擬表的過(guò)濾集。
ADOX常用方法有:Append(包括Columns、Groups、Indexes、Keys、Procedures、Tables、Users、Views)、Create(創(chuàng)建新的目錄)、Delete(刪除集合中的對(duì)象)、Refresh(更新集合中的對(duì)象)等等。有關(guān) ADOX 的詳細(xì)信息,請(qǐng)?jiān)?http://www.microsoft.com/data/ado 中參閱 Microsoft 發(fā)布的有關(guān) ADOX說(shuō)明的 Web 頁(yè)。
3: 在原有數(shù)據(jù)表的基礎(chǔ)上產(chǎn)生新的數(shù)據(jù)表
如果僅僅是在已有的數(shù)據(jù)表的基礎(chǔ)上產(chǎn)生新的數(shù)據(jù)表,我們只要引用對(duì)象庫(kù)"Microsoft ActiveX Data Objects 2.5 Library"再利用Select…Into語(yǔ)句就可以了。例如:有一個(gè)名為Wage.mdb的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中有一個(gè)名為"工資表"數(shù)據(jù)表,該數(shù)據(jù)表的字段有:編號(hào)、姓名、基本工資、津貼、應(yīng)發(fā)工資、扣款、實(shí)發(fā)工資等,這個(gè)表中已經(jīng)有很多的記錄。現(xiàn)在我們把其中的實(shí)發(fā)工資大于2000的記錄篩選出來(lái)組成一個(gè)新表,新表的名稱(chēng)由用戶(hù)從文本框中輸入,新表中我們只要三個(gè)字段,它們是:編號(hào)、姓名、實(shí)發(fā)工資。我們用下列程序就可以實(shí)現(xiàn):
(事先在窗體中添加一個(gè)文本框Text1和一個(gè)命令按鈕Command1)
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim command As New ADODB.command
Private Sub Command1_Click()
Dim bm As String
Dim sql As String
If Text1.Text <>"" Then
bm = Trim(Text1.Text)
sql= "Select 編號(hào),姓名,實(shí)發(fā)工資 Into " + bm + " From 工資表 Where 實(shí)發(fā)工資>2000"
Set command.ActiveConnection = conn
command.CommandText = sql
command.Execute
Else
MsgBox "你必須輸入一個(gè)名字"
End If
Private Sub Form_Load()
Dim str As String
str = App.Path
If Right(str, 1) <>"\" Then
str = str + "\"
End If
pstr = "Provider=Microsoft.Jet.OLEDB.3.51;"
pstr = pstr & "Persist Security Info=False;"
pstr = pstr & "Data Source=" & str & "wage.mdb"
conn.Open pstr
rs.CursorLocation = adUseClient
rs.Open "工資表", conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs
End Sub
當(dāng)然,我們還可以把程序設(shè)計(jì)得更好,比如:讓用戶(hù)先在窗口中任意選擇所需的字段和一些條件,然后再組合生成一個(gè)新表。但無(wú)論如何,這種操作只能在從原表的基礎(chǔ)上產(chǎn)生一個(gè)新表,不能產(chǎn)生一個(gè)數(shù)據(jù)庫(kù)文件,并且新表和原表放在同一個(gè)數(shù)據(jù)庫(kù)中。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
