在數(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)過上面的操作,上面的程序便會正常運行!
因為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)過上面的操作,上面的程序便會正常運行!