VB程序实现删除Access的多个表

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  在数据库中,有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. 单击“确定”按钮。
  经过上面的操作,上面的程序便会正常运行!

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答