Problemas con el Recordset.

Laura
09 de Septiembre del 2004
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.


Andres Guerrero
09 de Septiembre del 2004
Ok te explico
solo quiero que entiendas algo la variable
strSQL = Me.RecordSource'esto no pueede ser
strsql = "Select * from tabla"
esa es una instruccion sql , no se qu contenga me.recosrdsourse , es por eso que no te funciona por que el comando espera un query (SELECT INSERT;DELETE;UPDATE) es por eso el error

habria que ver las tablas y los campos para armar la strsql que necesites

Saludos