如果僅僅是在已有的數(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)有很多的記錄?,F(xiàn)在我們把其中的實(shí)發(fā)工資大于2000的記錄篩選出來(lái)組成一個(gè)新表,新表的名稱由用戶從文本框中輸入,新表中我們只要三個(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ì)得更好,比如:讓用戶先在窗口中任意選擇所需的字段和一些條件,然后再組合生成一個(gè)新表。但無(wú)論如何,這種操作只能在從原表的基礎(chǔ)上產(chǎn)生一個(gè)新表,不能產(chǎn)生一個(gè)數(shù)據(jù)庫(kù)文件,并且新表和原表放在同一個(gè)數(shù)據(jù)庫(kù)中。
聯(lián)系客服