CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

数据记录的排序

楼主mastern(mastern)2005-04-04 09:59:22 在 VB / 数据库(包含打印,安装,报表) 提问

各位:  
  请查看以下代码,我要在其内增加排序功能  
   
  '在标准模块中定义的公共变量  
   
      Public   db   As   New   ADODB.Connection  
      Public   cnn   As   String  
      Public   j   As   Integer  
      Public   i   As   Integer  
      Public   rst1   As   ADODB.Recordset  
      Public   rst2   As   ADODB.Recordset  
   
  ’主窗口启动时打开数据库  
       
      If   Right(App.Path,   1)   <>   "\"   Then   mypath   =   App.Path   &   "\"  
      Set   MDIForm1.Picture   =   LoadPicture(mypath   &   "zm.jpg")  
      cnn   =   "provider=microsoft.jet.oledb.3.51;persist   security   info=false;data   source="   &   mypath   &   "cddz.mdb"  
      db.Open   cnn  
   
  以下是查询一号炉炼钢炉在某一时段的历史数据,数据已在另一窗口采集并保存到cddz.mdb中的表yihaolu中  
  Private   Sub   Command10_Click()      
      Dim   tjqs   As   Date  
      Dim   tjzs   As   Date  
      Dim   tjts1   As   Long  
      Dim   tjts2   As   Long  
      Dim   tjbs   As   Date  
       
      j   =   0  
  ‘打开表yihaolu中的数据记录  
       
      Set   rst1   =   New   ADODB.Recordset  
      rst1.CursorType   =   adOpenKeyset  
      rst1.LockType   =   adLockOptimistic  
      rst1.Open   "yihaolu",   db,   ,   ,   adCmdTable  
       
      ’打开查询结果表yitemp,若此表有记录,则删除  
       
      Set   rst2   =   New   ADODB.Recordset  
      rst2.CursorType   =   adOpenKeyset  
      rst2.LockType   =   adLockOptimistic  
      rst2.Open   "yitemp",   db,   ,   ,   adCmdTable  
      If   Not   rst2.EOF   Then  
          Do   Until   rst2.EOF  
              rst2.Delete  
              rst2.Requery  
          Loop  
          ‘DATA8和DBGRID8用于显示查询结果表yitemp    
          Data8.Refresh  
          DBGrid8.Refresh  
      End   If  
      ’以下开始在表yihaolu中查询从Text7至Text8时段的数据,  
      ’并将结果保存到查询结果表yitemp中  
      ’Text7和Text8分别接受用户输入的起止日期  
            If   Text7   =   ""   Then   Text7   =   "2005-02-01"  
            If   Text8   =   ""   Then   Text8   =   Date  
            tjqs   =   CDate(Text7)  
            tjzs   =   CDate(Text8)  
            tjts1   =   DateDiff("d",   tjqs,   tjzs)  
             
            rst1.MoveFirst  
            For   i   =   0   To   rst1.RecordCount   -   1  
              tjbs   =   rst1.Fields("日期")  
              tjts2   =   DateDiff("d",   tjqs,   tjbs)  
              If   tjts2   >=   0   And   tjts2   <=   tjts1   Then  
                  riqi   =   rst1.Fields("日期")  
                  shijian   =   rst1.Fields("时间")  
                  qianwen   =   rst1.Fields("前温")  
                  houwen   =   rst1.Fields("后温")  
                  yali   =   rst1.Fields("压力")  
                  caizhi   =   rst1.Fields("材质")  
                  shuliang   =   rst1.Fields("数量")  
                  wendu   =   rst1.Fields("温度")  
                  gongshi   =   rst1.Fields("工时")  
                  zhiban   =   rst1.Fields("值班")  
                  rst2.AddNew  
               
                  rst2.Fields("日期")   =   riqi  
                  rst2.Fields("时间")   =   shijian  
                  rst2.Fields("前温")   =   qianwen  
                  rst2.Fields("后温")   =   houwen  
                  rst2.Fields("压力")   =   yali  
                  rst2.Fields("材质")   =   caizhi  
                  rst2.Fields("数量")   =   shuliang  
                  rst2.Fields("温度")   =   wendu  
                  rst2.Fields("工时")   =   gongshi  
                  rst2.Fields("值班")   =   zhiban  
                  rst2.Update  
             
                  j   =   j   +   1  
              End   If  
              rst1.MoveNext  
          Next   i  
          Label19   =   j‘显示记录数  
      If     j>   0   Then    
          Command12.Enabled   =   True   ‘如果有数据则打印按钮有效  
       
  !!!请在此处增加对查询结果表yitemp的按日期和时间的先后顺序排序  
   
   
       
       
      End   If  
   
      Command10.Enabled   =   False‘查询按钮无效  
      Command11.Enabled   =   True     ’刷新按钮有效  
  End   Sub  
   
  ’刷新Data8和DBGrid8,使其显示排序后的查询结果  
  Private   Sub   Command11_Click()  
      Data8.Refresh  
      DBGrid8.Refresh  
      Command10.Enabled   =   True  
  End   Sub  
   
  如你有更好的实现方法,谢谢你帮忙更改!  
  邮箱:MASTERN@SINA.COM  
  问题点数:0、回复次数:3Top

1 楼pweixing(幸运星)回复于 2005-04-04 15:53:52 得分 0

datagrid控件是和数据库绑定操作的,因此你只能在从数据库提出数据的时候进行排序.Top

2 楼daisy8675(莫依 沉迷)回复于 2005-04-04 16:01:18 得分 0

datagrid是反映recordset,你自己用SQL语句去排序Top

3 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2005-04-04 16:14:55 得分 0

用SQL   排序之后,DATAGRID的显示自然就会排序,你也可以用MSFlexGrid来操作,这样不用每次操作都重新查询数据库,速度比较快!  
   
  如下:  
   
  http://dev.csdn.net/article/28/article/37/37898.shtmTop

相关问题

  • Access数据库记录排序问题
  • 数据记录排序问题,?
  • pb6.0数据窗口中的记录能按时间排序么?
  • 数据窗口中记录按特殊的方式排序。
  • 数据库记录怎么重新排序???????
  • 关于数据库中记录的排序的话题
  • DataTable记录集中数据排序的问题!!!
  • 请教有个数据库记录排序问题
  • 单击DataGrid列表头给记录排序后,如何让数据源DataSet也同样排序?
  • 请问如果把BDE数据库中的记录排序...谢谢

关键词

  • 排序
  • 数据
  • 查询
  • 数据库
  • db
  • date
  • rst
  • yihaolu
  • 记录
  • mypath

得分解答快速导航

  • 帖主:mastern

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo