GoSenators
Technical User
Hi There! I'm a newbie to VBA so thanks in advancefor any help on this. I'm trying to iterate through records in a table and adjust times for records meeting certain criteria. Below is what I have so far: Any suggestions on how to get it to work would be great!
Option Compare Database
Sub SampleTimeFix()
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim datetime As Date
DoCmd.RunSQL "DELETE * FROM DataPidTimeFix"
Set rs = CurrentDb.OpenRecordset("SELECT *,format(sampletime,'hh:nn:ss') as [Time], format(sampletime,'mm/dd/yyy') as [Date] from Pidmaster", dbOpenSnapshot)
Set rs2 = CurrentDb.OpenRecordset("DataPIDTimefix", dbOpenDynaset)
datetime = rs!sampletime
Do While Not rs.EOF
If serialnumber = 100974 And (Format(sampletime, "mm/dd/yyyy")) = "12/10/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -56, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/11/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -58, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/12/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -73, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/13/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -79, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/14/2007" And Station = "ppbStation7" Then
datetime = DateAdd("nn", -79, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/11/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -34, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/12/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -63, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/13/2007" And Station = "ppbStation1" Then
datetime = DateAdd("nn", -28, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/14/2007" And Station = "ppbStation1" Then
datetime = DateAdd("nn", -26, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/15/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -33, rs!sampletime)
rs2.Update
Else
datetime = rs!sampletime
End If
rs.MoveNext
Loop
End Sub
Option Compare Database
Sub SampleTimeFix()
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim datetime As Date
DoCmd.RunSQL "DELETE * FROM DataPidTimeFix"
Set rs = CurrentDb.OpenRecordset("SELECT *,format(sampletime,'hh:nn:ss') as [Time], format(sampletime,'mm/dd/yyy') as [Date] from Pidmaster", dbOpenSnapshot)
Set rs2 = CurrentDb.OpenRecordset("DataPIDTimefix", dbOpenDynaset)
datetime = rs!sampletime
Do While Not rs.EOF
If serialnumber = 100974 And (Format(sampletime, "mm/dd/yyyy")) = "12/10/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -56, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/11/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -58, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/12/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -73, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/13/2007" And Station = "ppbStation6" Then
datetime = DateAdd("nn", -79, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "12/14/2007" And Station = "ppbStation7" Then
datetime = DateAdd("nn", -79, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/11/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -34, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/12/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -63, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/13/2007" And Station = "ppbStation1" Then
datetime = DateAdd("nn", -28, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/14/2007" And Station = "ppbStation1" Then
datetime = DateAdd("nn", -26, rs!sampletime)
ElseIf serialnumber = 100974 And Format(sampletime, "mm/dd/yyyy") = "2/15/2007" And Station = "ppbStation2" Then
datetime = DateAdd("nn", -33, rs!sampletime)
rs2.Update
Else
datetime = rs!sampletime
End If
rs.MoveNext
Loop
End Sub