毎分最新の 20 レコードのみを返す必要があるため、たとえば、タイマー コントロールを使用し、その tick イベントで、データベースに挿入された最新の 20 レコードを取得します。
Microsoft Access でクエリを作成して、.Net アプリで返される結果を確認します。MS Access で実行される SQL クエリは次のとおりです。
SELECT TOP 20 * FROM tblData ORDER BY DateCreated
また
SELECT TOP 20 * FROM tblData ORDER BY tblID DESC
.net アプリでは、次の名前空間を使用する必要があります。
Imports System.Data.OleDb
次に、Access データベースから最後の 20 個の値を読み取ります。
Private Xvalues as New List(Of Integer)
Private Yvalues as New List(Of Integer)
Private Sub GetData()
Dim con As OleDbConnection
Dim sql As String
str = "Provider=Microsoft.Jet.oledb.4.0;Data Source=C:\yourAccessDB.mdb;"
con = New OleDbConnection(str)
sql = "SELECT TOP 20 * FROM tblData ORDER BY DateCreated"
Dim cmd As OleDbCommand
Dim r As OleDbDataReader
Try
con.Open()
cmd = New OleDbCommand(sql, con)
r = cmd.ExecuteReader()
While dr.Read()
XValues.Add(Convert.ToInt32(r("chartX")))
YValues.Add(Convert.ToInt32(r("chartY")))
End While
r.Close()
con.Close()
Catch ex As OleDbException
MsgBox(ex.Message, MsgBoxStyle.Critical, “Oledb Error”)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, “General Error”)
End Try
End Sub
次に、上記の GetData() メソッドをフックし、チャート作成関数を Timers Tick イベントで呼び出します。古いレコードを削除/アーカイブし、X および Yvalue 変数もクリアする必要があると思います。
未テストですのでご了承ください。