关于vb向ACCESS数据库写数据时发生漏记录的问题?

ntwwh 2010-07-15 08:31:54
各位高手:
请教! 关于vb向ACCESS数据库写数据时发生漏记录的问题?

昨天的贴子已结!
源程序:


Private Sub Form_Load()
Timer4.Interval = 60000
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\db1.mdb;Persist Security Info=False"

End Sub


Private Sub Timer4_Timer()
Adodc1.RecordSource = "select top 1 * from HCCG"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0).Value = RTYU
Adodc1.Recordset.Fields(1).Value = Time
Adodc1.Recordset.Fields(2).Value = Text0.Text
Adodc1.Recordset.Fields(3).Value = Text1.Text
Adodc1.Recordset.Fields(4).Value = Text2.Text
Adodc1.Recordset.Fields(5).Value = Text3.Text
Adodc1.Recordset.Fields(6).Value = Text4.Text
Adodc1.Recordset.Fields(7).Value = Text5.Text
Adodc1.Recordset.Fields(8).Value = Text6.Text
Adodc1.Recordset.Fields(9).Value = Text7.Text
Adodc1.Recordset.Fields(10).Value = Text8.Text
Adodc1.Recordset.Update
Adodc1.Refresh

End Sub
数据表HCCG中第11列 ,为自动生成的ID!
请教以上源程序,会造成数据表HCCG中发生漏记录的现象!


做成怎样的程序,或者有无方法进行调整!

如下面的现象:

RTYU TIME ...............................

1254 09:23:07
1254 09:24:07
1254 09:25:07
1254 09:27:07
1254 09:28:07
1254 09:29:07

如上面数据所示少了 09:26:07 的数据!
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdingyun 2010-07-15
  • 打赏
  • 举报
回复
来自MSDN:
记住,Timer 事件是周期性的。Interval 属性主要是决定“多少次”而不是“多久”。间隔的长度取决于所需精确度。因为存在某些内部的错误可能性,所以应将间隔设置为精确度的一半。

注意上面这段话中间隔设置为精确度的一半
jhone99 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ntwwh 的回复:]
Timer4_控件有可能在软件中不执行吗? 按我这种情况,执行时间不应该超过间隔呀!!!
[/Quote]

2楼加的测试语句测试结果如何?
ntwwh 2010-07-15
  • 打赏
  • 举报
回复
Timer4_控件有可能在软件中不执行吗? 按我这种情况,执行时间不应该超过间隔呀!!!
zdingyun 2010-07-15
  • 打赏
  • 举报
回复
贴出你查询ACCESS数据的SQL查询句.
ntwwh 2010-07-15
  • 打赏
  • 举报
回复
海明:
Open App.path & "\log.txt" For Append As #1
Print #1, Time
Close #1

记录了时间控件的执行信息,请问如何判断后; 但必须做到没有记录会补充增加一条无记录的数据!





of123 2010-07-15
  • 打赏
  • 举报
回复
Private Sub Timer4_Timer()
Adodc1.RecordSource = "select top 1 * from HCCG"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0).Value = RTYU
Adodc1.Recordset.Fields(1).Value = Time
Adodc1.Recordset.Fields(2).Value = Text0.Text
Adodc1.Recordset.Fields(3).Value = Text1.Text
Adodc1.Recordset.Fields(4).Value = Text2.Text
Adodc1.Recordset.Fields(5).Value = Text3.Text
Adodc1.Recordset.Fields(6).Value = Text4.Text
Adodc1.Recordset.Fields(7).Value = Text5.Text
Adodc1.Recordset.Fields(8).Value = Text6.Text
Adodc1.Recordset.Fields(9).Value = Text7.Text
Adodc1.Recordset.Fields(10).Value = Text8.Text
Adodc1.Recordset.Update
Adodc1.Refresh

Open App.path & "\log.txt" For Append As #1
Print #1, Time
Close #1
End Sub

用日志文件检查 Timer 代码此时是否被执行。
zdingyun 2010-07-15
  • 打赏
  • 举报
回复
Option Explicit

Private Sub Form_Load()
Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
If lblTime.Caption <> CStr(Time) Then
lblTime.Caption = Time
If Right(Time$, 2) = "00" Then '每60秒执行1次
Open "C:\time.txt" For Append As #1
Print #1, Time$
Close
End If
End If
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧