
Almacenar errores en una tabla
Publicado por J T (12 intervenciones) el 05/10/2022 15:37:01
Hola.
Os cuento el problema que tengo a ver si me podeis ayudar.
Tengo una serie de fotos en mi pc distribuidas en varias carpetas y una tabla en access con 4 campos referidos cada uno a las carpetas y subcarpetas donde se encuentran. Asi la foto guardada en Z:\españa\toledo\talavera de la reina\foto1.jpg estaria guardada en esa tabla (llamada FOTOS) en CAMPO1=españa, CAMPO2=toledo, CAMPO3=talavera de la reina, CAMPO4=foto1.jpg
Debido a varias modificaciones realizadas he visto que varias fotos no están donde aparecen en la tabla y estoy intentando hacer un formulario que las vaya pasando una a una de tal forma que las que no pueda localizar queden registradas en otra tabla de nombre TABLAERRORES con un unico campo que es la dirección errónea.
Basándome en un código que he encontrato en este foro he escrito este código:
On Error GoTo sol_err
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE FROM tablaerrores")
DoCmd.SetWarnings True
Dim rstAux As DAO.Recordset
Set rstAux = CurrentDb.OpenRecordset("tablaerrores", dbOpenTable)
Dim rst1 As DAO.Recordset
Dim carpeta1 As String, carpeta2 As String, carpeta3 As String, carpeta4 As String, cuantas As Long
Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM FOTOS", , dbReadOnly)
cuantas = 0
Do Until rst1.EOF
carpeta1 = rst1!CAMPO1
carpeta2 = rst1!CAMPO2
carpeta3 = rst1!CAMPO3
carpeta4 = rst1!CAMPO4
Me!Imagen0.Picture = "Z:\" & carpeta1 & "\" & carpeta2 & "\" & carpeta3 & "\" & carpeta4
Me.Texto3 = carpeta1 & " \ " & carpeta2 & " \ " & carpeta3 & " \ " & carpeta4
cuantas = cuantas + 1
Me.Texto5 = cuantas
Siguiente:
rst1.MoveNext
DoEvents
Loop
rst1.Close
Set rst1 = Nothing
MsgBox " Proceso completado "
Exit Sub
sol_err:
With rstAux
.AddNew
.Fields(0).Value = "Z:\" & carpeta1 & "\" & carpeta2 & "\" & carpeta3 & "\" & carpeta4
.Update
End With
GoTo Siguiente:
End Sub
El problema que tengo es que el primer error que encuentra, lo incluye en la tabla de errores pero no así los sucesivos que generan que salga un mensaje de error deteniendo el proceso.
Agradezco de antemano la ayuda.
Saludos.
Os cuento el problema que tengo a ver si me podeis ayudar.
Tengo una serie de fotos en mi pc distribuidas en varias carpetas y una tabla en access con 4 campos referidos cada uno a las carpetas y subcarpetas donde se encuentran. Asi la foto guardada en Z:\españa\toledo\talavera de la reina\foto1.jpg estaria guardada en esa tabla (llamada FOTOS) en CAMPO1=españa, CAMPO2=toledo, CAMPO3=talavera de la reina, CAMPO4=foto1.jpg
Debido a varias modificaciones realizadas he visto que varias fotos no están donde aparecen en la tabla y estoy intentando hacer un formulario que las vaya pasando una a una de tal forma que las que no pueda localizar queden registradas en otra tabla de nombre TABLAERRORES con un unico campo que es la dirección errónea.
Basándome en un código que he encontrato en este foro he escrito este código:
On Error GoTo sol_err
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE FROM tablaerrores")
DoCmd.SetWarnings True
Dim rstAux As DAO.Recordset
Set rstAux = CurrentDb.OpenRecordset("tablaerrores", dbOpenTable)
Dim rst1 As DAO.Recordset
Dim carpeta1 As String, carpeta2 As String, carpeta3 As String, carpeta4 As String, cuantas As Long
Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM FOTOS", , dbReadOnly)
cuantas = 0
Do Until rst1.EOF
carpeta1 = rst1!CAMPO1
carpeta2 = rst1!CAMPO2
carpeta3 = rst1!CAMPO3
carpeta4 = rst1!CAMPO4
Me!Imagen0.Picture = "Z:\" & carpeta1 & "\" & carpeta2 & "\" & carpeta3 & "\" & carpeta4
Me.Texto3 = carpeta1 & " \ " & carpeta2 & " \ " & carpeta3 & " \ " & carpeta4
cuantas = cuantas + 1
Me.Texto5 = cuantas
Siguiente:
rst1.MoveNext
DoEvents
Loop
rst1.Close
Set rst1 = Nothing
MsgBox " Proceso completado "
Exit Sub
sol_err:
With rstAux
.AddNew
.Fields(0).Value = "Z:\" & carpeta1 & "\" & carpeta2 & "\" & carpeta3 & "\" & carpeta4
.Update
End With
GoTo Siguiente:
End Sub
El problema que tengo es que el primer error que encuentra, lo incluye en la tabla de errores pero no así los sucesivos que generan que salga un mensaje de error deteniendo el proceso.
Agradezco de antemano la ayuda.
Saludos.
Valora esta pregunta


0