我用select * from data 和datagrid组件显示全部数据记录时 发现不能返回所有的记录 总返回数应该是1426个 而数据库里的记录已经是1500多了 该用DELPHI 写发现也是同样问题 请问如何解决

解决方案 »

  1.   

    ACCESS 数据库
    Private Sub Command4_Click()
       strsql = "select id,jdph as 机打票号,khmc as 客户名称,time as 时间,xm as 项目,nr as 内容,je as 金额,kpr as 开票人,skr as 收款人,fph as 发票号 from data"
       Set Db = New Connection
       Db.CursorLocation = adUseClient
       Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.dat;Persist Security Info=False"
       Set adoPrimaryRS = New Recordset
       adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic
       Set DataGrid1.DataSource = adoPrimaryRS上面是代码 加上TOP 一样没用 手工在数据库里删除前面的记录上百条 查询的结果还是显示到1426那个数据 按说前面删了 应该自动补上没显示出来的吧 可就不。。
      

  2.   

    在查询分析器里测试看看,对比用vb查到的记录数查询分析器:select count(*) from [data]vb里:rs.CursorLocation=adUseClient
    rs.open "select * from [data]",cn,3,1
    msgbox rs.RecordCount
      

  3.   

    如果用select count(*) 得到的结果和rs.RecordCount的结果是一样的,那么应该是DataGrid不能显示那么多数据吧
      

  4.   

    用DataEnvironment 试 COUNT返回的是1439个这是对的 但换成select *显示所有时 得到的结果也是只有1426条 不是用DATAGRID 是查询分析器 按这样说 我在1426里删除几条 应该就补充几条 可他也不补 郁闷
    DELPHI里用DBGRID也是这样 想查1426后的数据只能指定ID>1426这条数据的自动排列ID才行
      

  5.   

    TO Faysky2 能把MAIL留给我 我把代码发给你帮我看看么?
      

  6.   

    adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic
    adoPrimaryRS.MoveLast
    adoPrimaryRS.MoveFirst
    Set DataGrid1.DataSource = adoPrimaryRS
      

  7.   

    另外看看Err.Source是什么,如果是光标引擎的错误,试着把   
    Db.CursorLocation = adUseClient
    改成
    Db.CursorLocation = adUseServer
      

  8.   

    你是如何删除的,你的代码中我没有看见datagrid1.refresh