by BigRedCat » Mon Feb 25, 2008 4:01 pm
Here is the code I have written for a form which logs two pressure readings from a transducer. I have set the timer event to record the readings every 10seconds and then after 150 readings the average is calculated and written into the database.
The first code is the open event and sets up the CHAN parameters.
The second code is for the timer event.
I had problems accessing the second set of readings until I realised that they were all output as a single string and so had to use 'mid' and 'len' statements to separate them out.
Hope this helps you.
Laurence Scott
Code:-
Private Sub Form_Open(Cancel As Integer)
CHAN = DDEInitiate("PLW", "Current")
End Sub
Private Sub Form_Timer()
On Error GoTo errmessage
ReturnData1 = DDERequest(CHAN, "Name")
ReturnData2 = DDERequest(CHAN, "Value")
ReturnData3 = DDERequest(CHAN, "Units")
ReturnData4 = DDERequest(CHAN, "Alarm")
ReadingCount = ReadingCount + 1
If ReadingCount < 151 Then
ChangeReading = ChangeReading + Val(Mid(ReturnData2, 9, 13))
CleanReading = CleanReading + Val(Mid(ReturnData2, 1, 6))
ChangeAlarm = Val(Mid(ReturnData4, 4, 1))
CleanAlarm = Val(Mid(ReturnData4, 1, 1))
If CleanAlarm > 0 Or ChangeAlarm > 0 Then
' Reading below alarm - record reading
DoCmd.GoToRecord , , acNewRec
RecordingTime.VALUE = Now()
CleanRoomAlarm.VALUE = "O.K."
ChangeRoomAlarm.VALUE = "O.K."
If CleanAlarm > 0 Then CleanRoomAlarm.VALUE = "Alarm"
If ChangeAlarm > 0 Then ChangeRoomAlarm = "Alarm"
CleanRoom.VALUE = Mid(ReturnData1, 1, 21)
ChangeRoom.VALUE = Mid(ReturnData1, 24, Len(ReturnData1))
CleanRoomReading.VALUE = Val(Mid(ReturnData2, 1, 6))
ChangeRoomReading.VALUE = Val(Mid(ReturnData2, 9, 13))
End If
Else
DoCmd.GoToRecord , , acNewRec
RecordingTime.VALUE = Now()
CleanRoom.VALUE = Mid(ReturnData1, 1, 21)
ChangeRoom.VALUE = Mid(ReturnData1, 24, Len(ReturnData1))
CleanRoomReading.VALUE = CleanReading / ReadingCount
ChangeRoomReading.VALUE = ChangeReading / ReadingCount
CleanRoomAlarm.VALUE = "O.K."
ChangeRoomAlarm.VALUE = "O.K."
ReadingCount = 0
CleanReading = 0
ChangeReading = 0
End If
Exit Sub
errmessage:
MsgBox (Err.Description)
End Sub