视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
实验Recordset.Movenext,Recordset.Previous,Recorset...等移动
2020-11-09 08:06:01 责编:小采
文档


我在 实验 Recordset.Movenext,Recordset.PRevious,Recorset.......等 移动 记录 的时候遇到了困难. 我用access做后台数据库,通过一个查询条件查询得一个 记录 集,我想用一个表格实现 记录 的逐条浏览(不是一组 记录 分页浏览). 即共查到**条 记录 ,现在是第

我在实验Recordset.Movenext,Recordset.PRevious,Recorset.......等移动记录的时候遇到了困难.
我用access做后台数据库,通过一个查询条件查询得一个记录集,我想用一个表格实现记录的逐条浏览(不是一组记录分页浏览). 即"共查到**条记录,现在是第*条",单击"Next"按钮后下一条记录的内容显示在表格中.....

我用如下代码实现(见最后)

发现若将Rst.Open "select * from 某表 where 从某个Form获取的查询条件"
改成 Rst.Open "select * from 某表"(相当于不做查询动作)后, 记录的浏览功能才得以实现.
否则总是出现" EOF或BOF为真 "的错误提示.可我明明可以从"某表"中 "select... where..."到好几个记录的!

总之如何将"记录的逐条浏览"和"select * from 某表 where 从某个Form获取的查询条件" 结合起来?

望予以指点为感!

杨利
2000/4/13

程序代码:

<%@ LANGUAGE=VBScript %>






现在您可以编辑以下记录



<%
'创建并打开 Connection 对象。
Set cn=Server.CreateObject("ADODB.Connection")
  cn.Open "DSN=数据库名"
'创建并打开 Recordset 对象。
Set Rst = Server.CreateObject("ADODB.Recordset")
  Rst.ActiveConnection = cn
  Rst.CursorType = adOpenKeyset
  Rst.LockType = adLockOptimistic 
Rst.Open "select * from 某表 where 性别='"&request.form("t1")&"'"(执行这句大有问题)
Rst.Open "select * from 某表 where 性别='男'"(执行这句有点问题)
Rst.Open "select * from hr_base"(执行这句没有问题)
' 检查 Request.Form 集合以查看所记录的任何移动。
If Not IsEmpty(Request.Form("MoveAmount")) Then
' 跟踪该会话的移动数目和方向。
  session("Moves") = Session("Moves") + Request.Form("MoveAmount")
  Clicks = Session("Moves")
'移动到上一个已知位置。
  Rst.Move CInt(Clicks)
'检查移动为 + 还是 - 并进行错误检查。
   If CInt(Request.Form("MoveAmount")) = 1 Then
     If Rst.EOF Then
      Session("Moves") = Rst.RecordCount
      Rst.MoveLast
     End If 
     Rst.MoveNext
   End If
   If Request.Form("MoveAmount") < 1 Then
     Rst.MovePrevious
   End If
'检查有无单击 First Record 或 Last Record 命令按钮。
   If Request.Form("MoveLast") = 3 Then
     Rst.MoveLast
     Session("Moves") = Rst.RecordCount
   End If
   If Request.Form("MoveFirst") = 2 Then
     Rst.MoveFirst
     Session("Moves") = 1
   End If
End If
' 对 Move Button 单击组合进行错误检查。
   If Rst.EOF Then
     Session("Moves") = Rst.RecordCount
     Rst.MoveLast
     Response.Write "This is the Last Record"
     End If 
     If Rst.BOF Then
     Session("Moves") = 1
     Rst.MoveFirst
     Response.Write "This is the First Record"
   End If
  %>

共查到<%=Rst.RecordCount%>条记录,当前为第

<%
If IsEmpty(Session("Moves")) Then
      Session("Moves") =1
End If
%>
<%Response.Write(Session("Moves") )%>
条记录




  > Type="button" Name="cmdUp" Value="下一条"> Value="末一条">

                                  

查询结果:

                    
                    

(用于逐条显示记录的表格)                   
 
                  
                                   
                  
                  
                                    
Sub cmdDown_OnClick                  
'在 Input Boxes 窗体和 Submit 窗体中设置值。                                
  Document.Form.MoveAmount.Value = -1                  
  Document.Form.Submit                  
End Sub                                   
Sub cmdUp_OnClick                                    
  Document.Form.MoveAmount.Value = 1                  
  Document.Form.Submit                  
End Sub                                    
Sub cmdFirst_OnClick                                   
  Document.Form.MoveFirst.Value = 2  Document.Form.Submit                   
End Sub                                    
Sub cmdLast_OnClick                                    
  Document.Form.MoveLast.Value =3                  
  Document.Form.Submit                  
End Sub                  
                              

下载本文
显示全文
专题