如何用代码实现只保存Access数据库中前两项记录。。删除多余记录~~~向高人求助

解决方案 »

  1.   

    delete * from 表 where 主键 in (select top 2 表的主键 from 表)
      

  2.   

    按照楼上哥们给出的代码做了一个命令按钮 但是有点问题!语句倒是没有语法错误 但是点击之后没有任何反应~~!SQL语句在VB中是不是可以直接用呢!需要不需要调用一下相关的外接程序呢!
      

  3.   

    我的代码是
    Dim  SQL As String
    SQL="Delete * 人员资料 where xh in (select top 2 xh from 人员资料)
    然后刷新xh是主键,名称为"姓名"我是不是应该 把xh换成"姓名呢"
    即:
    Dim  SQL As String
    SQL="Delete * 人员资料 where 姓名 in (select top 2 姓名 from 人员资料)突然想到这么改可能能行,但是还没有试。一会儿回家试试去。。
      

  4.   

    delete  表 where 主键 NOT in (select top 2 表的主键 from 表)
      

  5.   

    哦,那可是我那天操作之后,一点反应都没有,也没见删除前两行啊!我这样写对不对,帮着看看Dim  SQL As String
    SQL="Delete * 人员资料 where xh NOT in (select top 2 xh from 人员资料)"我看有的资料中,把主键写成中文形式,比如说主键为xh 即“姓名”where 后面就写成 where 姓名 ....昨天晚上也没时间试试。白天在公司又不能写程序郁闷,谁知道啊!
      

  6.   

    不用“*”的吧
    SQL="Delete 人员资料 where xh NOT in (select top 2 xh from 人员资料)"
      

  7.   

    哦 写错了 落了一个FromDim SQL As String
    SQL = "Delete * From 人员资料 where xh NOT in (select top 2 xh from 人员资料)"这样语法上说就没问题了~~!
      

  8.   

    ayalicer(小刀惋心)的语句应该没有问题,SQL语法是否正确不用安装VB,你备份好数据库,在ACCESS查询页中试试就知道SQL语句对不对了
      

  9.   

    哦 那就是说不用加“* FROM”这句了吗? 
    还有,在VB中写SQL语句,不用先调用外接什么程序吧??直接写好代码就可以了吧
      

  10.   

    哦,ACCESS的delete要加*号的
    vb中执行SQL语句有多种方法,目前效率比较高的是引用ADO的相关对象来执行SQL语句,这方面你搜索一下论坛,有许多基础问题的讨论
      

  11.   

    引用DAO  怎么调用 SQL 语句啊?
    DAO:   
      DIM   RC   AS   RECORDSET   
      DIM   SQLSTR   AS   STRING   
      SQLSTR="SELECT   .......   WHERE....."   
      SET   RC=DATA1.DATABASE.OPENRECORDSET(SQLSTR)   
      SET   DATA1.RECORDSET=RC   
      ......   
    这样就可以了吗?
      

  12.   

    是不是应该这样啊!我看这个有点意思! 
      dim   db   as   database   
      dim   re   as   recordset   
      dim   sql   as   string   
      set   db=opendatabase("path\filename.mdb")   
      sql="select   *   from   tablename"   
      set   re=db.openrecordset(sql)
      

  13.   

    这个句子有点问题吧!
    ("path\filename.mdb")
      

  14.   

    遇到问题了,我的代码是这样的:
    Private Sub Command19_Click()
    Dim db     As Database
    Dim re     As Recordset
    Dim sql     As String
    Set db = OpenDatabase(App.Path & "\RYZL.mdb")
    sql = "Delete * Form 人员资料 where xh NOT in (select top 2 xh from 人员资料)"
    Set re = db.OpenRecordset(sql)
    End Sub这句出错:Set re = db.OpenRecordset(sql)提示:语法错误(操作符丢失)在查询表达式sql = "Delete * Form 人员资料 where xh NOT in (select top 2 xh from 人员资料)"中
    后来在检查中我发现我的数据库没有设主键,直接就是姓名....然后我设置了自动编号为主键 可是还是不行 怎么办?向高手请教~~~!
      

  15.   

    DAO是比较老的方法了,没用过
    你还是用ADO吧,会的人多一点,可以帮你
      

  16.   

    SQL语句错误你可以直接放在ACCESS查询页中去分析
      

  17.   

    我可能是马虎了 应该是from 我可能写成form了 我回家试试去晚上
      

  18.   

    DAO调用SQL语句还真不容易~~~!可能是语法的问题吧!
    sql = "Delete * From 人员资料 where xh NOT in (select top 2 xh from 人员资料)"
    是无效的。。郁闷