Office中国论坛/Access中国论坛

标题: 一个很难解决的问题! [打印本页]

作者: eio    时间: 2002-8-23 23:44
标题: 一个很难解决的问题!
在制作数据库的过程中,难免要输入一些虚拟的数据,当测试完成,需要删除数据时需要每一个表去删除是不可能的事,怎样实现一次性删除所有数据以还原数据库呢?
[fly] 只有这样,我们才能以用户的心态去输入数据吧![/fly]
作者: cattjiu    时间: 2002-8-23 23:47
建一个新库,导入旧库的所有东西,但不导不需要的数据.
作者: eio    时间: 2002-8-23 23:50
如果要在旧库里面直接完成呢?比如删除数据或者另立新库。
作者: tomzy    时间: 2002-8-23 23:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: cattjiu    时间: 2002-8-23 23:54
那么,自动编号的字段不会从1开始了,可以Copy再Paste然后删除旧表,重命名新表,注意维护Relationship
作者: HG    时间: 2002-8-23 23:56
一般在測試時,對測試數據都會用一個標識符來區分。在刪除時,就好搞定了。
作者: eio    时间: 2002-8-24 00:02
这些方法虽然可以,但还是麻烦,我正在研究啊!希望以一个“超级管理者”的身份启动一个按钮,一会就全部完成啦!哈哈哈……
作者: HG    时间: 2002-8-24 00:03
還有級聯刪除和級聯更新的功能您要用哦,在MDB中好像是強迫參考
作者: freemanager    时间: 2002-8-24 01:51
初始化数据库有两种方案:
一、可以建立一堆删除查询,用一个宏来按顺序运行,从最低级的表删起。
二、如果不想在库里看到一堆删除查询,则可以自定义一个过程用SQL语句来工作
   Docmd.RunSql "Delete * From 表名"
   跟第一个方法一样,要注意删除的顺序。
作者: binbow_z    时间: 2002-8-24 08:45
同意freemanager网友的意见,但要注意数据表的级联属性
作者: Trynew    时间: 2002-8-24 17:53
如果是Access数据,测试前拷一份不行吗?
作者: 李寻欢    时间: 2002-11-24 22:56
呵呵,Trynew的办法最简单明了。
作者: 楚狐    时间: 2002-11-24 23:56
方便实用的办法,标准的办法:如下
[upload=gif]http://www.office-cn.net/vvb/uploadimages/2002112415561741432.gif[/img]
作者: Trynew    时间: 2002-11-25 05:59
楼上的你这不是有杀错,没放过?!里面的一些设置和选项数据步也都清光了?
作者: 大熊    时间: 2002-11-25 08:13
九阳先生,你这段程序自己运行过吗?

作者: 九阳先生    时间: 2002-11-25 18:38
实际工作中没有这样做过。不过为了这个贴子专门运行了一次。Trynew说得对,这种方法将所有数据都请空了,不太适用。


[此贴子已经被作者于2002-11-25 10:37:38编辑过]


作者: 大熊    时间: 2002-11-25 18:53
For Each oneTable In CurrentDb().TableDef是不是后面少了个s?
作者: 九阳先生    时间: 2002-11-25 19:02
真细心
作者: 大熊    时间: 2002-11-25 19:43
更大的问题不在这,运行后还会死机!先生何以教我?


[此贴子已经被大熊于2002-11-25 11:43:12编辑过]


作者: 九阳先生    时间: 2002-11-25 19:56
Really?昨天晚上我用它删除了有94个表,并有很多个关系的数据库。
作者: 李寻欢    时间: 2002-11-25 20:03
这么简单的问题竟引来如此多高手发表高见,美女就是美女
以下是引用eio在2002-8-23 15:44:28的发言:
在制作数据库的过程中,难免要输入一些虚拟的数据,当测试完成,需要删除数据时需要每一个表去删除是不可能的事,怎样实现一次性删除所有数据以还原数据库呢?


输入数据前拷贝一份不就完了吗?要不要这么喋喋不休的?

作者: 大熊    时间: 2002-11-25 20:13
我是这样看的,执行一个指令,自动更新测试数据,会更有效率。
作者: 九阳先生    时间: 2002-11-25 21:21
我的CleanTables函数会删除某些系统库,从而导致破坏整个系统。这是我没有想到的。
作者: 九阳先生    时间: 2002-11-25 21:27
Public Sub CleanTables()
On Error Resume Next
   
    Dim oneTable As TableDef
   
    DoCmd.SetWarnings False
    For Each oneTable In CurrentDb().TableDef
        if instr(1,onetable.name,"MSys")=0 then      
           DoCmd.RunSQL "DELETE * FROM " & oneTable.Name
        endif
    Next
    DoCmd.SetWarnings True

End Sub
以上是DAO的方法。ADO与此类同



[此贴子已经被作者于2002-11-24 21:34:15编辑过]




[此贴子已经被作者于2002-11-25 13:26:56编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3