我想用ACCESS数据库做一个报警记录代码如下
Private Sub Command1_Click()
    Adodc1.Recordset.AddNew
    Adodc1.Recordset.Fields(0) = "加热器"
    Adodc1.Recordset.Fields(1) = "烘干机构"
    Adodc1.Recordset.Fields(2) = "加热器过热请注意!"
    Adodc1.Recordset.Fields(3) = Now
    Adodc1.Recordset.Update
End SubPrivate Sub Form_Load()
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\SKJ.mdb;Persist Security Info=False"
    Adodc1.RecordSource = "select * from 报警记录"
    Adodc1.Refresh
End Sub
然后用DataGrid1的DataSource直接连到Adodc1里
现在我是想当窗体加载后DataGrid1控件里数据为空,当command1按钮触发事件后在DataGrid1控件上显示最新报警记录,不显示历史数据库里边的内容。请教高手如何解决!顺便问一下DataGrid1控件为何调整了列宽就不能读取数据库的内容?

解决方案 »

  1.   

    建议不用ADO控件,虽然方便,但弊端也很多
    ADO对象或者DAO都可以很方便的实现啊。
    用ADO+MSHGRID很容易能实现你要的功能。
      

  2.   

    假定 Fields(3) 对应字段名为 LogDate,就以窗体打开时的时间做过滤
    Adodc1.RecordSource = "select * from 报警记录 where LogDate > #" format(now, "yyyy/mm/dd hh:nn:ss") & "#"
      

  3.   

    方案1
    用MSFlexGrid控件
    用MSFlexGrid1.TextMatrix(row,col)添加数据
    方案2
    再加一个Adodc2
    Adodc2.RecordSource = "select top 1 * from 报警记录 order by mytime desc" 
    DataGrid1的DataSource直接连到Adodc2里 
      

  4.   

    3楼的说的不错已经解决,Adodc1.RecordSource = "select * from 报警记录 where 报警时间 > now"