Problemas con el Recordset.
Mi problema es el siguiente, tengo un form con un subform, el form me sirve para poner unos parametros de fechas y que el subform solo me saque un periodo de fechas (siempre cinco dias), en el subform hay tres campos Trabajador, Horas_Totales y Horas_Extras, luego un campo independiente que es la resta de las Horas_Totales menos las Horas_Extras que se llama Base, que al parametrizarlo a cinco dias el valor tiene que ser 45.
Abro el Recorset, para que vea si todos los registros cumplen esa condición y sino que me avise que trabajador no cumple la condición.
La complicación (para mi) viene al tener que agrupar los registros por trabajador, ya que pueden tener varios registros en un mismo dia para el mismo trabajador... entonces es imprescindible agruparlo mediante una consulta (creo que hay es donde tengo el fallo) pongo el siguiente codigo al Cargar el subform.
Private Sub Form_Load()
Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim strSQL As String
Dim stDocName As String
strSQL = Me.RecordSource
Set rs = New ADODB.Recordset
Set conn = CurrentProject.Connection
rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic
rs.MoveFirst
Do While Not rs.EOF
If rs("Base") <> 45 Then
If MsgBox("No cuadran los Partes de Trabajo de:" & vbCrLf & "" & vbCrLf & rs("TRABAJADOR") & " " & rs("Base") & vbCrLf & "" & vbCrLf & "¿Desea Imprimir Justificante?", vbYesNo, "Vehiculos Mantenimiento I.T.V.") = vbYes Then
stDocName = "TRABAJADORES_FALTA_PARTE"
DoCmd.OpenReport stDocName, acNormal
End If
End If
rs.MoveNext
Loop
DoCmd.Close acForm, "TRABAJADORES_AVISO_FALTA_PARTE_FORM"
End Sub
Y en la siguiente linea me da error.
rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic
El error me dice lo siguiente:
Se ha producido el error -2147217900 (80040e14) en el tiempo de ejecución:
Instrucción SQL no valida; se esperaba DELETE,INSERT,PROCEDURE,SELECT,UPDATE
El mismo codigo puesto en otros formularios donde los registros no estan agrupados funciona perfectamente.
Perdonad por el rollo, pero es que me tiene loca... agradeceria mucho que pudieran ayudarme.
Gracias.
Abro el Recorset, para que vea si todos los registros cumplen esa condición y sino que me avise que trabajador no cumple la condición.
La complicación (para mi) viene al tener que agrupar los registros por trabajador, ya que pueden tener varios registros en un mismo dia para el mismo trabajador... entonces es imprescindible agruparlo mediante una consulta (creo que hay es donde tengo el fallo) pongo el siguiente codigo al Cargar el subform.
Private Sub Form_Load()
Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim strSQL As String
Dim stDocName As String
strSQL = Me.RecordSource
Set rs = New ADODB.Recordset
Set conn = CurrentProject.Connection
rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic
rs.MoveFirst
Do While Not rs.EOF
If rs("Base") <> 45 Then
If MsgBox("No cuadran los Partes de Trabajo de:" & vbCrLf & "" & vbCrLf & rs("TRABAJADOR") & " " & rs("Base") & vbCrLf & "" & vbCrLf & "¿Desea Imprimir Justificante?", vbYesNo, "Vehiculos Mantenimiento I.T.V.") = vbYes Then
stDocName = "TRABAJADORES_FALTA_PARTE"
DoCmd.OpenReport stDocName, acNormal
End If
End If
rs.MoveNext
Loop
DoCmd.Close acForm, "TRABAJADORES_AVISO_FALTA_PARTE_FORM"
End Sub
Y en la siguiente linea me da error.
rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic
El error me dice lo siguiente:
Se ha producido el error -2147217900 (80040e14) en el tiempo de ejecución:
Instrucción SQL no valida; se esperaba DELETE,INSERT,PROCEDURE,SELECT,UPDATE
El mismo codigo puesto en otros formularios donde los registros no estan agrupados funciona perfectamente.
Perdonad por el rollo, pero es que me tiene loca... agradeceria mucho que pudieran ayudarme.
Gracias.
