Quién me puede colaborar en revisar este código DAO que me bota desbordamiento código error 6

Reciban un cordial saludo, y aquí pidiendo al que pueda me pueda por favor ayudar a revisar este código vba sobre DAO que estoy haciendo pero me bota error desbordamiento código 6 y no sé en que este fallando. Dejo el código vba

Private Sub BTINICIO_Click()
Dim db1 As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim texto01 As Integer
Dim texto02 As Integer
Dim texto03 As Currency
'Activar base de datos y recordsets
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("TABLA FR FICs PRO06")
Set rs2 = db1.OpenRecordset("TABLA FJ 004")
'Empieza bucle metodo mientras en estado verdadero
rs1.MoveFirst
Do While Not rs1.EOF
'Depositar valores tabla 1 en variables
texto01 = rs1.Fields("CODNEG").Value
texto02 = rs1.Fields("PERIODO").Value
texto03 = rs1.Fields("VRCFITT").Value
'Inicia la segunda tabla
rs2.AddNew
rs2!CODNEG = texto01
rs2!PERAF = texto02
rs2!VRTTCFI = texto03
rs2.Update
rs1.MoveNext
Loop
'Hasta que no termine de recorrer la primera tabla no acaba el loop
rs1.Close
rs2.Clone
Set rs1 = Nothing
Set rs2 = Nothing
'fin de este DAO
End Sub

2 Respuestas

Respuesta
2

Sandra: Lo miro con un poco más de calma si esto no te soluciona el Problema.

1.- Supongo que será un fallo de escritura pero por si acaso, donde pones Rs2. Clone, debe ser Rs2. Close

2.- Puedes hacer la lectura/Escritura directa, o sea que en el AddNew

Rs2!CODNEG = Rs1!CODNEG

Rs2!.... = Rs1!.....

3.- No veo que pongas ninguna restricción en el Recordset de Lectura, con lo que al final del recorrido vas a tener dos tablas iguales. Y si pulsas el Botón 3 veces te triplicará la tabla del Rs2

Si con ésto lo solucionas pues OK y si no es así me comentas. Mis saludos >> Jacinto

Respuesta
2

Además de lo que te comenta Jacinto, el error de desbordamiento se produce cuando a una variable le pasas un valor fuera de rango. Como no dices en qué punto del código te marca el error, supondré que es en una de estas dos líneas (intuyo que la primera):

texto01 = rs1.Fields("CODNEG").Value
texto02 = rs1.Fields("PERIODO").Value

Y el motivo será que a texto01 o texto02, que defines como Integer, le estás dando un valor Long o mayor, es decir, un valor que pasa de 32767 o -32767.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas