Post code between code tags to retain indentation and be more readable - I modified your post.
empid, daydate, weekdate are text fields in table or are they number and date types?
Code:
sql2 = "SELECT * FROM tblocalApprovalLog"
Debug.Print ("sql2: " & sql2)
rs2.Open sql2, CurrentProject.Connection, adOpenDynamic, adLockOptimisticsql = "SELECT dbo_empbasic.name, dbo_empbasic.empid, * " & _
"FROM dbo_empbasic " & _
"WHERE (((dbo_empbasic.character06) Like " & Forms!frmTimeCard.txtEmpID & ") AND ((dbo_empbasic.empstatus)= " & Chr$(34) & "A" & Chr$(34) & ")) " & _
"ORDER BY dbo_empbasic.name; "
Debug.Print ("sql: " & sql)
rs.Open sql, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rs.MoveFirst
While Not rs.EOF
sql3 = "SELECT * FROM tblocalApprovalLog " & _
"WHERE empid = '" & rs!empid & "' " & _
"AND dayDate = #" & Forms!frmTimeCard.txtDate & "# " & _
"AND weekDate = #" & Forms!frmTimeCard.txtPeriodStart & "# AND #" & Forms!frmTimeCard.txtPeriodEnd & "#;"
Debug.Print ("sql3: " & sql3)
rs3.Open sql3, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
If rs3.RecordCount > 0 Then
rs2.AddNew
rs2!empid = rs.empid
rs2!dayDate = Me.txtDayDate
rs2!weekDate = Me.txtWeekDate
rs2.Update
Else
Debug.Print ("No Recordcount")
End If
rs3.Close
rs.MoveNext
Wend
rs.Close
rs2.Close
Or
Code:
Private Sub PopulateApprovalLog()
Dim sql As String
Dim sql3 As String
Dim rs As adodb.Recordset
Set rs = New adodb.Recordset
Dim rs3 As adodb.Recordset
Set rs3 = New adodb.Recordset
sql = "SELECT dbo_empbasic.name, dbo_empbasic.empid, * " & _
"FROM dbo_empbasic " & _
"WHERE (((dbo_empbasic.character06) Like " & Forms!frmTimeCard.txtEmpID & ") AND ((dbo_empbasic.empstatus)= " & Chr$(34) & "A" & Chr$(34) & ")) " & _
"ORDER BY dbo_empbasic.name; "
Debug.Print ("sql: " & sql)
rs.Open sql, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rs.MoveFirst
While Not rs.EOF
sql3 = "SELECT * FROM tblocalApprovalLog " & _
"WHERE empid = '" & rs!empid & "' " & _
"AND dayDate = #" & Forms!frmTimeCard.txtDate & "# " & _
"AND weekDate BETWEEN #" & Forms!frmTimeCard.txtPeriodStart & #" AND #" & Forms!frmTimeCard.txtPeriodEnd & "#;"
Debug.Print ("sql3: " & sql3)
rs3.Open sql3, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
If rs3.RecordCount > 0 Then
CurrentDb.Execute "INSERT INTO tblocalApprovalLog(empid, daydate, weekdate) VALUES('" & rs!empid & "', #" & Me.txtDayDate & "#, #" & Me.txtWeekDate & "#)"
Else
Debug.Print ("No Recordcount")
End If
rs3.Close
rs.MoveNext
Wend
rs.Close
End Sub
But why do you even open rs3 - its data is not used. A DLookup() or DCount() could be used instead of opening and closing a recordset.
If IsNull(DLookup("empid", "tblocalApprovalLog", "empid='" & rs!empid & "' AND dayDate = '" & Forms!frmTimeCard.txtDate & "' " & _
"AND weekDate BETWEEN #" & Forms!frmTimeCard.txtPeriodStart & # AND #" & Forms!frmTimeCard.txtPeriodEnd & "#")) Then