Option Explicit Dim LngMaxNum As Long '记录AAA表中最大的ID号 Dim ConTable As New ADODB.Connection Dim RecShowID As New ADODB.Recordset Dim I As LongPrivate Sub Form_Load() '这是连接Access表的连接字符串 ConTable.Open "Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\TEL.mdb;Persist Security Info=False;Jet OLEDB:Database" RecShowID.Open "SELECT Max(ID) FROM AAA", ConTable, adOpenStatic, adLockReadOnly, adCmdText If RecShowID.RecordCount > 0 Then LngMaxNum = RecShowID!ID End If RecShowID.Close Timer1.Interval = 100 '或者你自己定 End SubPrivate Sub Timer1_Timer() RecShowID.Open "SELECT ID FROM AAA WHERE ID>" & LngMaxNum & " ORDER BY ID", ConTable, adOpenStatic, adLockReadOnly, adCmdText If RecShowID.RecordCount > 0 Then For I = 1 To RecShowID.RecordCount Print RecShowID!ID RecShowID.MoveNext If I = RecShowID.RecordCount Then LngMaxNum = RecShowID!ID End If Next I End If RecShowID.Close End Sub注意
1。数据库表中增加一个字段记录具体时间
2。存储过程,把间隔时间的起止时点作为参数
查询时间段内的数据
3。前台通过timer控件定时触发存储过程
起始时间=当前时点-时间间隔
截止时间=当前时点
4。要注意时间的格式要统一
我一般把时间类型都强制转换成格式化字符串
数据库中的时间字段也是字符形式
Dim LngMaxNum As Long '记录AAA表中最大的ID号
Dim ConTable As New ADODB.Connection
Dim RecShowID As New ADODB.Recordset
Dim I As LongPrivate Sub Form_Load()
'这是连接Access表的连接字符串
ConTable.Open "Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\TEL.mdb;Persist Security Info=False;Jet OLEDB:Database"
RecShowID.Open "SELECT Max(ID) FROM AAA", ConTable, adOpenStatic, adLockReadOnly, adCmdText
If RecShowID.RecordCount > 0 Then
LngMaxNum = RecShowID!ID
End If
RecShowID.Close
Timer1.Interval = 100 '或者你自己定
End SubPrivate Sub Timer1_Timer()
RecShowID.Open "SELECT ID FROM AAA WHERE ID>" & LngMaxNum & " ORDER BY ID", ConTable, adOpenStatic, adLockReadOnly, adCmdText
If RecShowID.RecordCount > 0 Then
For I = 1 To RecShowID.RecordCount
Print RecShowID!ID
RecShowID.MoveNext
If I = RecShowID.RecordCount Then
LngMaxNum = RecShowID!ID
End If
Next I
End If
RecShowID.Close
End Sub注意