Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public sql As String
Private Sub Timer1_Timer()
Call ReadDA100(m_GetDA100(), COM1) '采集DA100
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + App.Path & "\資料庫\" & bisoshi & ".accdb" & ";Jet OlEDB:Database "
sql = "select * from" & " " & biaoshi & " order by 測驗時間 asc"
rs.Open sql, cn, 1, 3
rs.AddNew
rs.Fields(0) = time_start(j, i)
rs.Fields(1) = Format(Now, "yyyy/mm/dd hh:mm:ss")
rs.Fields(2) = strQiHouLeiXing
rs.Fields(3) = strHuanJingWenDu(j, i)
rs.Update
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
上面的這段程式用來實時采集溫度資料的,DA100模塊未列出來,現在有個問題,就是采集總在23:58分左右中斷,不知為何?
急請解決!
uj5u.com熱心網友回復:
貼出你的 Timer 設定代碼看看。可能與跨子夜有關,系統 Time 歸零了。
uj5u.com熱心網友回復:
什么叫做中斷!錯誤資訊是什么?看不出來變數 bisoshi、i、j、time_start()、strHuanJingWenDu() 和每次Timer()事件中的關系。
uj5u.com熱心網友回復:
回復1樓,Timer只設定了它的intervaal為65000,其它的沒啥設定了。uj5u.com熱心網友回復:
2樓,沒有錯誤資訊,就是程式沒反應,然后打開資料庫發現在23:58分左右就沒記錄了uj5u.com熱心網友回復:
將系統時間更改為 23:55,單步除錯程式,看在哪里卡住了。uj5u.com熱心網友回復:
曾經用Timer回圈做長時間的重復作業,可能出現假死的,原因不明。后來采用任務計劃定時啟動程式解決。uj5u.com熱心網友回復:
長時間運行會跑死,明顯程式有錯。比如記憶體泄漏什么的。用任務管理器監視下程式的記憶體和句柄變化。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
Set rs = NothingSet cn = Nothing
這兩句刪掉
uj5u.com熱心網友回復:
為什么不用insert陳述句?uj5u.com熱心網友回復:
Public cn As ADODB.Connection 'New 去除
Public rs As ADODB.Recordset 'New 去除
Public sql As String
Private Sub Timer1_Timer()
Call ReadDA100(m_GetDA100(), COM1) '采集DA100
set cn=new ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + App.Path & "\資料庫\" & bisoshi & ".accdb" & ";Jet OlEDB:Database "
sql = "select * from" & " " & biaoshi & " order by 測驗時間 asc"
set rs=new ADODB.Recordset
rs.Open sql, cn, 1, 3
rs.AddNew
rs.Fields(0) = time_start(j, i)
rs.Fields(1) = Format(Now, "yyyy/mm/dd hh:mm:ss")
rs.Fields(2) = strQiHouLeiXing
rs.Fields(3) = strHuanJingWenDu(j, i)
rs.Update
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/99680.html
標籤:VB基礎類
