Error 3035 se excedieron los recursos del sistema
Publicado por Enrique Ramírez (5 intervenciones) el 30/11/2006 03:06:51
Creo una consulta de selección con la Tabla1 y se generan 6009 registros, el resultado de la consulta lo leo secuencialmente con un DAO.RecordSet.
Tengo otra Tabla2 que es copia fiel de Tabla1 y en ambas tengo un campo de No. de empleado, un campo para mes y 31 campos para cada día del mes, cada empleado puede tener uno o varios registros pero eso si los meses no se repiten.
El objetivo es que por cada registro que lea en Tabla1, en la Tabla2 se inserten los registros que hagan falta para completar 12 registros por empleado (uno por mes), utilizo un FOR de 1 to 12 para determinar si ya existe el mes y si NO existe lo inserto en Tabla2, el proceso trabaja correctamente pero cuando llega a procesar entre 140 y 150 registros (nunca es el mismo registro) me marca el siguiente mensaje: Se ha producido el error 3035 en tiempo de ejecución, se excedieron los recursos del sistema y ya no me deja continuar procesando, si le doy ayuda esta aparece en blanco. El error me lo manda al momento de hacer el Insert en Tabla2.
Alguien me pudiera ayudar para determinar porque manda el error porque haciendo el calculo (150*12) se procesan como 1800 registros antes de que marque el error siendo que tenemos tablas de mas de 50,000 registros y no marcan este error al ser procesadas, mi codigo es el siguiente:
Set d = CurrentDb()
Set r = d.OpenRecordset(vSQL, dbOpenDynaset)
wEOF = True
If r.RecordCount > 0 Then
r.MoveFirst
Do While wEOF = True
If r.EOF Then
wEOF = False
Else
For jval = 1 To 12
If Len(jval) = 1 Then
jmes = "0" & jval
Else
jmes = Trim(str(jval))
End If
vSQL = ""
vSQL = "SELECT Count([MES]) AS Expr1 FROM cur_KF_011
WHERE (((cur_KF_011.MES)='" & jmes & "'))
And cur_KF_011.NEMPLEADO =" & r!NEMPLEADO
l_res.RowSource = vSQL
l_res.Requery
If l_res.Column(0, 0) = 0 Then
vSQL = ""
vSQL = "INSERT INTO cur_KF_011 (NEMPLEADO,MES)
VALUES (" & r!NEMPLEADO & ",'" & jmes & "')"
DoCmd.RunSql = vSQL
End If
Next jval
End If
If Not r.EOF Then
r.MoveNext
End If
Loop
End If
r.Close
Set d = Nothing
Tengo otra Tabla2 que es copia fiel de Tabla1 y en ambas tengo un campo de No. de empleado, un campo para mes y 31 campos para cada día del mes, cada empleado puede tener uno o varios registros pero eso si los meses no se repiten.
El objetivo es que por cada registro que lea en Tabla1, en la Tabla2 se inserten los registros que hagan falta para completar 12 registros por empleado (uno por mes), utilizo un FOR de 1 to 12 para determinar si ya existe el mes y si NO existe lo inserto en Tabla2, el proceso trabaja correctamente pero cuando llega a procesar entre 140 y 150 registros (nunca es el mismo registro) me marca el siguiente mensaje: Se ha producido el error 3035 en tiempo de ejecución, se excedieron los recursos del sistema y ya no me deja continuar procesando, si le doy ayuda esta aparece en blanco. El error me lo manda al momento de hacer el Insert en Tabla2.
Alguien me pudiera ayudar para determinar porque manda el error porque haciendo el calculo (150*12) se procesan como 1800 registros antes de que marque el error siendo que tenemos tablas de mas de 50,000 registros y no marcan este error al ser procesadas, mi codigo es el siguiente:
Set d = CurrentDb()
Set r = d.OpenRecordset(vSQL, dbOpenDynaset)
wEOF = True
If r.RecordCount > 0 Then
r.MoveFirst
Do While wEOF = True
If r.EOF Then
wEOF = False
Else
For jval = 1 To 12
If Len(jval) = 1 Then
jmes = "0" & jval
Else
jmes = Trim(str(jval))
End If
vSQL = ""
vSQL = "SELECT Count([MES]) AS Expr1 FROM cur_KF_011
WHERE (((cur_KF_011.MES)='" & jmes & "'))
And cur_KF_011.NEMPLEADO =" & r!NEMPLEADO
l_res.RowSource = vSQL
l_res.Requery
If l_res.Column(0, 0) = 0 Then
vSQL = ""
vSQL = "INSERT INTO cur_KF_011 (NEMPLEADO,MES)
VALUES (" & r!NEMPLEADO & ",'" & jmes & "')"
DoCmd.RunSql = vSQL
End If
Next jval
End If
If Not r.EOF Then
r.MoveNext
End If
Loop
End If
r.Close
Set d = Nothing
Valora esta pregunta


0