A vueltas conel formulario de access al vincularlo

El formulario es uno creado en access normal, y al querer vincularlo introduzco código de vb, se abre el documento en word (si bien es cierto que no me rellena los campos marcados...)y en el formulario de access me da un error "5941 el elemento del conjunto solicitado no existe..", la verdad que me he quedado bloqueado en este punto,¿sabes qué podría hacer?

1 respuesta

Respuesta
1
Te pongo un procedimiento que utilizo yo para hacer algo parecido en mis programas. El usuario del programa hace una plantilla de Word con una carta (circular) dirigida a clientes, yo sustituyo los campos de la dirección de envío. Los campos a sustituir están en Word de esta forma.
Donde ponga nombre mi cliente pone en la plantilla de word {Nombre}...
Está echo con Access y Word 97
Private Sub Dw_Click()
On Error GoTo err_Dw_Click
Dim DatLoc As Database
Dim fec As String
Dim FicCli As Fic
Dim AplWord As Word.Application, Doc As Word.Document
Dim NomPlan As String, NomDoc As String
If Not IsNull(LISCLI.Column(2)) Then
Call RelFicCli(LISCLI.Column(2), FicCli)
fec = "El Barco de Avila a " & Format$(Date, "long date")
Set DatLoc = CurrentDb
NomPlan = Camino(CurrentDb.Name) & "Gilvilla.dot" 'Nombre de la plantilla
NomDoc = Camino(CurrentDb.Name) & "Carta.doc"
If Dir(NomDoc) <> "" Then
Kill NomDoc
End If
FileCopy NomPlan, NomDoc
Set AplWord = CreateObject("Word.application.8")
Set Doc = AplWord.Documents.Add(NomDoc)
'Por ejemplo busco {Fecha} y lo reemplazo por el valor que haya en la variable fec
Doc.Content.Find.Execute findText:="{Fecha}", _
replacewith:=fec, Format:=True, Replace:=wdReplaceAll
Doc.Content.Find.Execute findText:="{Nombre}", _
replacewith:=Left$(FicCli.NOM & Space$(60), 60), Format:=True, Replace:=wdReplaceAll
Doc.Content.Find.Execute findText:="{Direccion}", _
replacewith:=Left$(FicCli.Dir & Space$(60), 60), Format:=True, Replace:=wdReplaceAll
Doc.Content.Find.Execute findText:="{cp}", _
replacewith:=Left$(FicCli.CP & Space$(5), 5), Format:=True, Replace:=wdReplaceAll
Doc.Content.Find.Execute findText:="{Poblacion}", _
replacewith:=Left$(FicCli.Pob & Space$(58), 58), Format:=True, Replace:=wdReplaceAll
Doc.Content.Find.Execute findText:="{Provincia}", _
replacewith:=Left$(FicCli.Prov & Space$(60), 60), Format:=True, Replace:=wdReplaceAll
AplWord.Visible = True
Set AplWord = Nothing
Set Doc = Nothing
End If
Exit Sub
err_Dw_Click:
MsgBox err.Description
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas