VB程序?qū)崿F(xiàn)刪除Access的多個表

字號:

在數(shù)據(jù)庫中,有shoes,cache,還有20086in 20087in 20088out這樣的數(shù)據(jù)表,要怎樣才能刪除帶有2開頭的表呢? 能用sql的語句 不然能夠得到表的名字然后再刪也可以 !
    因為Access將用戶表的信息存放在了MSysObjects系統(tǒng)表內(nèi),因此,從MSysObjects表查詢2開頭的用戶表名稱的Select語句可以寫為:
    select name from MSysObjects where type=1 and flags=0 and name like ’2%’
    具體的VB代碼如下:
    Private Sub Command1_Click()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim str As String
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset str = "select name from MSysObjects where type=1 and flags=0 and name like ’2%’" cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\csdn\db1.mdb;User ID=Admin;Password=;" rs.Open str, cn, adOpenKeyset, adLockReadOnly While Not rs.EOF cn.Execute "drop table [" & rs(0) & "]" rs.MoveNext Wend MsgBox ("刪除以2開頭的數(shù)據(jù)表成功!")
    rs.Close cn.Close Set rs = Nothing
    Set cn = Nothing End Sub Private Sub Command1_Click()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim str As String
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    str = "select name from MSysObjects where type=1 and flags=0 and name like ’2%’"
    cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\csdn\db1.mdb;User ID=Admin;Password=;"
    rs.Open str, cn, adOpenKeyset, adLockReadOnly
    While Not rs.EOF
    cn.Execute "drop table [" & rs(0) & "]"
    rs.MoveNext
    Wend
    MsgBox ("刪除以2開頭的數(shù)據(jù)表成功!")
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
    End Sub
    運行后出現(xiàn)不能讀取記錄;在 ’msysobjects’ 上沒有讀取數(shù)據(jù)權限的問題,怎么辦?。?BR>    解決步驟如下:
    1. 打開Access
    2. 選擇“工具”|“選項” 命令。
    3. 在“視圖”選項卡內(nèi),選擇“系統(tǒng)對象”復選框,并單擊“OK”按鈕。
    4. 選擇“工具”|“安全”|“用戶與組的權限” 命令
    5. “權限”選項卡中,在“用戶名/組名”列表框中選擇“管理員”。
    6. 在“對象名稱”列表框中選擇’MSysObjects’,并在下面“權限”欄中 選擇“讀取數(shù)據(jù)” 復選框。
    7. 單擊“確定”按鈕。
    經(jīng)過上面的操作,上面的程序便會正常運行!