网友问:在我的数据库中,有shoes,cache,还有20086in 20087in 20088out这样的数据表 我想请问一下要怎样才能删除带有2开头的表呢? 最好能用sql的语句 不然能够得到表的名字然后再删也可以
答:因为Access将用户表的信息存放在了MSysObjects系统表内,因此,从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开头的数据表成功!"
)
-
-
rs.Close
-
-
cn.Close
-
-
Set
rs =
Nothing
-
-
Set
cn =
Nothing
-
-
-
-
End
Sub