Access - Fallo 3157 ODBC Update

 
Vista:

Fallo 3157 ODBC Update

Publicado por Idgye (5 intervenciones) el 05/07/2007 11:33:07
Hola,

Tengo un problema con un trozo de codigo... y no hay manera de resolverlo... a ver si a alguien se le enciende la bombilla de lo que puede ser.

En resumen:
Aplicación en access 2000 con base de datos SQL2000 (ODBC)
Tengo un formulario con 2 cuadros de lista (LlistaOrigen y LlistaDesti) el origen de los cuadros de lista es una tabla(Albaranes) con filtro en un codigo de cliente y en 3 campos más.

Cuando se elige un cliente se rellena el cuadro de lista origen (albaranes no facturados) y al darle a un boton, se pasan todos esos albaranes al cuadro de lista destino (albaranes en situacion de facturarse) con un bucle, haciendo un edit para cambiar 3 campos, que no son claves)

Mi problema, tengo 317 lineas en el cuadro de lista origen y al darle al boton.... en la linea 221 me da el fallo 3157, si le doy a F5 continua ejecutandose el codigo sin problema (y veo que me ha cambiado los 3 campos bien).... a partir de ahi, casi en cada pasada por el bucle (cada linea) se va parando dando el error, pero si le doy a F5 continua sin problemas.

El codigo es algo asi:

For a = 0 To LlistaOrigen.ListCount - 1

sql = "SELECT * FROM [Albarans Clients] WHERE [Albarans Clients].codi='" & Me.LlistaOrigen.Column(0, B) & "' And TipusNum=" & tipusfact & " And ruta='" & Me.Ruta.Value & "'"

Set recordset = CurrentDb.OpenRecordset(sql, dbOpenDynaset, dbSeeChanges)

If Me.Filtro = 2 Then

If TipusRetencio = recordset("tipusretencio") Then

If recordset.EOF = False Then

recordset.Edit

recordset("Factura") = Me.Numfactura

recordset("Situacio") = 2

recordset("DataFactura") = Me.DataFactura

recordset.Update AQUI DONDE DA EL ERROR

End If

recordset.Close

Else

...........

End if

End if

Sql= AQUI SELECT CON FILTROS

Sql2= AQUI SELECT CON FILTROS

LlistaOrigen.RowSource = sql

Llistadestinacio.RowSource = sql2

Next a
He estado repasando los datos en tabla para los albaranes que da fallo y los albaranes anteriores a estos, pero no hay ningun dato diferente a otros donde si los da (tienen la misma retencion,no hay datos nulos diferentes a los demas,etc.....)

Igualmente si paso individualmente los albaranes que fallan, no da ningun tipo de error.

Existe algun límite de bucle (a la he declarado como integer) o de actualizacion de cuadro de lista, o es que "acces se cansa y necesita un respiro para poder continuar??

Agradeceria si alguien se le ocurre algo, porque por mas que depuro y miro datos no veo el fallo.
(siento el rollo, pero es que si no... no explico bien el problema)

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder