如何清空表。

asp007 2006-11-19 04:47:55
除了在sql视图里delete * from 表名外还有没有其他办法?!
有没有直接access表里操作。
...全文
677 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fish003 2006-12-04
  • 打赏
  • 举报
回复
好东东。收藏
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复
我给出的代码是在Access中实现的。
asp007 2006-11-20
  • 打赏
  • 举报
回复
报错内容:
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/newasp/database/deleteAllData.asp, line 6, column 11
Dim strSQL As String
----------^
asp007 2006-11-20
  • 打赏
  • 举报
回复
这样的,我把上面的子过程保存在deleteAllData.asp,然后调用它。可是报错啊。
deleteAllDate.asp
<%
Call DeleteAllData()
'在模块中创建公共函数,执行即可。
'用ADO
Public Sub DeleteAllData()
Dim strSQL As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Set Cnn = CurrentProject.Connection

strSQL = "SELECT Name FROM MSysObjects WHERE Flags=0 AND Type=1"
Rst.Open strSQL, Cnn, adOpenKeyset, adLockOptimistic
If Not Rst.EOF Then
Rst.MoveFirst
Do While Not Rst.EOF
strSQL = "delete * from " & Rst!Name
Cnn.Execute strSQL

Rst.MoveNext
Loop
End If

MsgBox "OK"
End Sub
%>
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复
databao#.asa


?内部格式是MDB?
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复
'在模块中创建公共函数,执行即可。
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复
Thanks!
asp007 2006-11-20
  • 打赏
  • 举报
回复
ok,弹出ok对话框了,解决了。
wangtiecheng(不知不为过,不学就是错!) 在过程中对我这菜鸟给予耐心帮助。感觉20分太少了。决定另开新贴。追加100分。
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复
可能你的表名是系统保留字,或者以数字开头等。

对于表名加[]即可。

strSQL = "delete * from [" & Rst!Name & "]"
wwwwb 2006-11-20
  • 打赏
  • 举报
回复
有几个表没清空
是什么表?
OracleRoob 2006-11-20
  • 打赏
  • 举报
回复

对于表名加[]。

如下:


'在模块中创建公共函数,执行即可。
'用ADO
Public Sub DeleteAllData()
Dim strSQL As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Set Cnn = CurrentProject.Connection

strSQL = "SELECT Name FROM MSysObjects WHERE Flags=0 AND Type=1"
Rst.Open strSQL, Cnn, adOpenKeyset, adLockOptimistic
If Not Rst.EOF Then
Rst.MoveFirst
Do While Not Rst.EOF
strSQL = "delete * from [" & Rst!Name & "]"
Cnn.Execute strSQL

Rst.MoveNext
Loop
End If

MsgBox "OK"
End Sub
asp007 2006-11-20
  • 打赏
  • 举报
回复
哦,Access里啊。我在Access里执行了。大部分的表清空了。留有几个表没清空。再试其他复制表。都这样。
还有在执行的时候报错。
运行时错误 '-2147217900 (80040el4)':
FROM 子句语法错误。
然后我点调试。
Cnn.Execute strSQL 语句显示高亮。
asp007 2006-11-19
  • 打赏
  • 举报
回复
先说谢了。
不过你的子过程我看不明白,能解释下吗?
具体怎么操作?
我也具体描述下我的情况。我想要清空data目录下的databao#.asa库里的所有表。上面的子过程要怎么改。
OracleRoob 2006-11-19
  • 打赏
  • 举报
回复


Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=


OracleRoob 2006-11-19
  • 打赏
  • 举报
回复
如果想清空多个表,必须自己来循环处理。

如下:


'在模块中创建公共函数,执行即可。
'用ADO
Public Sub DeleteAllData()
Dim strSQL As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Set Cnn = CurrentProject.Connection

strSQL = "SELECT Name FROM MSysObjects WHERE Flags=0 AND Type=1"
Rst.Open strSQL, Cnn, adOpenKeyset, adLockOptimistic
If Not Rst.EOF Then
Rst.MoveFirst
Do While Not Rst.EOF
strSQL = "delete * from " & Rst!Name
Cnn.Execute strSQL

Rst.MoveNext
Loop
End If

MsgBox "OK"
End Sub

zoe219 2006-11-19
  • 打赏
  • 举报
回复
没听说过可以一个delete清多个表的。
在程序里可以先建一个连接。比如conn。再执行
conn.execute(delete * from tablename)
asp007 2006-11-19
  • 打赏
  • 举报
回复
再说下,delete * from 表名1,表名2,..表名n。是不行的?!
就是想要清空多个表。
asp007 2006-11-19
  • 打赏
  • 举报
回复
这里人气不旺啊。还没人回答。
再问下能不能清空多个表。
如delete * from 表名1,表名2,..表名n。
顺便顶下了。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧