VB程序实现删除Access的多个表 |
|
www.nanhushi.com 佚名 不详 |
在数据库中,有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 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 运行后出现不能读取记录;在 ’msysobjects’ 上没有读取数据权限的问题,怎么办啊? 解决步骤如下: 1. 打开Access 2. 选择“工具”|“选项” 命令。 3. 在“视图”选项卡内,选择“系统对象”复选框,并单击“OK”按钮。 4. 选择“工具”|“安全”|“用户与组的权限” 命令 5. “权限”选项卡中,在“用户名/组名”列表框中选择“管理员”。 6. 在“对象名称”列表框中选择’MSysObjects’,并在下面“权限”栏中 选择“读取数据” 复选框。 7. 单击“确定”按钮。 经过上面的操作,上面的程序便会正常运行!
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: visualbasic6.0遍历文件夹下所有文件代码 下一篇文章: VB实现的一个号码组合软件 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|