第二个问题:  窗口 A 的目的是输入一天里每个航班号中每票货物的信息
  (一天里不能有两个相同的航班号)。每票货物的信息与数据库
  中表 ABC 的每个记录相对应。表 ABC 与该窗口中 DataGrid 
  控件相绑定,输入的每一票货物信息会实时的在DataGrid 中显示
  出来。每个航班有若干票货物。现在用户的要求是:
  
  在输入同一航班号中的每一票货物信息时会在DataGrid中依次实时
  显示,但当用户改变航班号时所有以前输入的货物信息立即在
  DataGrid 中消失,即 DataGrid 内容清空,重新开始显示改变后
  航班号所对应的货物信息。然后以此类推... ...  现在问题是 DataGrid 会把 表 ABC 中所有纪录都一骨脑的显示出来
  请问如何实现用户要求的功能。谢谢!

解决方案 »

  1.   

    Private Sub Command5_Click()
    Dim db As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
    db.Open
    rs.CursorLocation = adUseClient
    rs.Open "select * from abc where 航班号='123456'", db
    Set Dgrid.DataSource = rs
    Dgrid.Refresh
    End Sub
      

  2.   


     我不太懂 tztz520(午夜逛街) 的意思,可否详细一点?关键是 程序一运
     行时 DataGrid 中内容应为空,让后输入航班号,只显示未更改航班号
     之前的所有纪录,一旦更改航班号以前输入的纪录 在 DataGrid 中全部清 
     空。 如何不让 DataGrid 一骨脑将表 ABC 中所有纪录都显示出来? 我的方法是:
     1 在表 ABC 中 添加一个字段 默认值为 -1。
     2 然后 用 SQL 建立过滤条件,即不等于 -1 都不显示。
     3 将 DataGrid 与 该 SQL 绑定。
     4 在航班号改变时,将所有先前输入该天,该航班号的所有纪录
       新添字段 内容该为 0。
     5 刷新数据库 和 DataGrid。但这样 实现起来很麻烦而且刷新时有问题,请问有没有更简单的方法?
      

  3.   

    Set Dgrid.DataSource = nothing
    Dgrid.Refresh
    '这样就清空了
      

  4.   

    rs.Open "select * from abc where 字段名<>-1", db'这样就不等于1的都不显示
    Set Dgrid.DataSource = rs
    Dgrid.Refresh
      

  5.   

    加一个adodb控件,set datagrid.datasource=adodb,每次显示时,改变adoab的recordset即可.不要忘了,要刷新adodb