Ik loop al een tijdje te knoeien met het ophalen van een record uit een simpel Access Db.
wat is de bedoeling:
ik sla de meterstanden dagelijks op in een database:
Het opslaan is geen probleem en doe ik op de volgende wijze.
Code: Select all
Imports System.Data.OleDb
Imports System.Data
Sub Main(Optional ByVal pParms As String = "")
Dim dvref As Long
Dim dv As Object
Dim strHC As String
Dim CurrDatTim As Date = now
Dim strDatabase As String
Dim strConnectionString As String
Dim sql As String
Dim objConn As Object
Dim entryfound As Boolean
Dim entry As Double
Dim entryDB As Double
'*********************************************************************
'varibles
Dim DefaultPath As String
Dim Hoog_Verbruik As Double
Dim Laag_Verbruik As Double
Dim Hoog_terug As Double
Dim Laag_terug As Double
Dim Jaar_Dag As Double = (currdattim.DayOfYear)
Dim year As Double = (currdattim.Year)
year = ((year - 2000) * 1000) + Jaar_Dag
Jaar_dag = year
'Laden
DefaultPath = "E:\Program Files\HomeSeer HSPRO\data\Smile\Smiledata.mdb"
Hoog_verbruik = hs.DeviceValue("^91")
Hoog_terug = hs.DeviceValue("^93")
Laag_Verbruik = hs.DeviceValue("^90")
Laag_terug = hs.DeviceValue("^92")
Dim SmileData As Date = DateValue(Now())
Dim SmileTime As Date = TimeValue(Now())
' DB vullen
objConn = CreateObject("ADODB.Connection")
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DefaultPath
objConn.Open(strConnectionString)
sql = "insert into Smile (SmileDate, SmileTime, Hoog_verbruik, Laag_verbruik, Hoog_terug, Laag_terug, Jaar_Dag ) values ('" & DateValue(Now()) & "','" & TimeValue(Now()) & "','" & Hoog_verbruik & "','" & Laag_verbruik & "','" & Hoog_terug & "','" & Laag_terug & "','" & Jaar_Dag & "')"
objConn.execute(sql)
objConn.close()
objConn = Nothing
ik probeer het op deze wijze.
Als ik de aantal loops door de database tel gaat dit allemaal goed.
echter als ik probeer een bepaalde record te filteren lukt dit niet.
het item waar ik op wil filteren is kolom "jaar_dag"
als ik deze heb gevonden is het de bedoeling de waardes van de andere kolommen in een variabele te krijgen , voor verdere verwerking.
waar het mis gaat lijkt regel
getNames = getNames + rs.Fields(0) & ","
te zijn
Code: Select all
Imports System.Data.OleDb
Imports System.Data
Sub Main(ByVal Parms As Object)
Dim connStr, objConn, getNames
Dim rs
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Program Files\HomeSeer HSPRO\data\Smile\Smiledata.mdb"
Try
'Define object type
objConn = CreateObject("ADODB.Connection")
'Open Connection
objConn.open(connStr)
'Define recordset and SQL query
rs = objConn.execute("SELECT Jaar_Dag FROM Smile")
'While loop, loops through all available results
Do While Not rs.EOF
'add names seperated by comma to getNames
getNames = getNames + rs.Fields(0) & ","
' move to next result before looping again
rs.MoveNext()
'continue loop
Loop
hs.WriteLog("info", "waarden" & getNames)
hs.speak("Smile reed")
Catch ex As Exception
hs.speak("read falled")
End Try
'Close connection and release objects
objConn.Close()
rs = Nothing
objConn = Nothing
End Sub