A ver si alguien me puede echar una mano que me estoy volviendo loco.
Estoy intentando completar un documento de Word desde una base de datos Access. En la base de datos tengo los datos del cliente y en Word he creado un documento que tiene unos campos de texto que son los que quiero rellenar.
Lo que ocurre es que con unos campos funciona correctamente y en otros me da el error 5941 "El elemento del conjunto solicitado no existe". Salto el error, continua rellenado y en otro campo vuelve a dar el error.
He repasado los marcadores de los campos diez veces. Hasta he eliminado los campos y los he creado nuevamente.
La función que he usado es la de más abajo. A ver si alguien ve algo raro o sabe de algo que falle habitualemente. Gracias.
Function fillWordForm()
'On Error GoTo Error_fillWordForm
Dim appWord As Word.Application
Dim doc As Word.Document
Dim strSQL, path, Fecha As String
Dim mibase As Database
Dim TabRutas As Recordset
Dim I As Integer
Set mibase = CurrentDb
strSQL = "SELECT * FROM Rutas WHERE Documento='" & EtiquetaRuta.Caption & "';"
Set TabRutas = mibase.OpenRecordset(strSQL)
TabRutas.MoveFirst
path = TabRutas!Ruta
Set appWord = CreateObject("Word.Application")
If Err.Number <> 0 Then
Set appWord = New Word.Application
appWord.Visible = True
End If
Set doc = appWord.Documents.Open(path, , False)
With doc
.FormFields("ContratoConfProv").Result = Me.ContratoConfProv
Fecha = Day(Date) & " de "
Select Case Month(Date)
Case 1
Fecha = Fecha & "enero de " & Year(Date)
Case 2
Fecha = Fecha & "febrero de " & Year(Date)
Case 3
Fecha = Fecha & "marzo de " & Year(Date)
Case 4
Fecha = Fecha & "abril de " & Year(Date)
Case 5
Fecha = Fecha & "mayo de " & Year(Date)
Case 6
Fecha = Fecha & "junio de " & Year(Date)
Case 7
Fecha = Fecha & "julio de " & Year(Date)
Case 8
Fecha = Fecha & "agosto de " & Year(Date)
Case 9
Fecha = Fecha & "septiembre de " & Year(Date)
Case 10
Fecha = Fecha & "octubre de " & Year(Date)
Case 11
Fecha = Fecha & "noviembre de " & Year(Date)
Case 12
Fecha = Fecha & "diciembre de " & Year(Date)
End Select
.FormFields("FechaContrato").Result = Fecha
.FormFields("RazonSocialProv").Result = Me.RazonSocialProv
.FormFields("RazonSocialProv1").Result = Me.RazonSocialProv
.FormFields("NomProv").Result = Me.NomProv
For I = 1 To 21
.FormFields("NomProv" & I).Result = Me.NomProv
Next I
.FormFields("NIFProv").Result = Me.NIFProv
If Me.Dir2Prov = "" Then
.FormFields("Dir1Prov").Result = Me.Dir1Prov
Else
.FormFields("Dir1Prov").Result = Me.Dir1Prov & ", " & Me.Dir2Prov
End If
.FormFields("CPProv").Result = Me.CPProv
.FormFields("LocProv").Result = Me.LocProv
.FormFields("ProvProv").Result = Me.ProvProv
.FormFields("AutProv").Result = Me.AutProv
.FormFields("AutProv1").Result = Me.AutProv
.FormFields("CargoAutProv").Result = Me.CargoAutProv
.FormFields("CargoAutProv1").Result = Me.CargoAutProv
.FormFields("DNIAutProv").Result = Me.DNIAutProv
End With
appWord.Visible = True
appWord.Activate
Set doc = Nothing
Set appWord = Nothing
Salir_fillWordForm:
mibase.Close
Exit Function
Error_fillWordForm:
MsgBox Err.Description
Resume Salir_fillWordForm
End Function