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那个数据 按说前面删了 应该自动补上没显示出来的吧 可就不。。
在查询分析器里测试看看,对比用vb查到的记录数查询分析器:select count(*) from [data]vb里:rs.CursorLocation=adUseClient rs.open "select * from [data]",cn,3,1 msgbox rs.RecordCount
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那个数据 按说前面删了 应该自动补上没显示出来的吧 可就不。。
rs.open "select * from [data]",cn,3,1
msgbox rs.RecordCount
DELPHI里用DBGRID也是这样 想查1426后的数据只能指定ID>1426这条数据的自动排列ID才行
adoPrimaryRS.MoveLast
adoPrimaryRS.MoveFirst
Set DataGrid1.DataSource = adoPrimaryRS
Db.CursorLocation = adUseClient
改成
Db.CursorLocation = adUseServer