Imprimir página | Cerrar ventana

Combinacion Access-Word con un marcador.

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Word
Descripción del foro: Foro de Word
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84598
Fecha de impresión: 28/Enero/2020 a las 18:50


Tema: Combinacion Access-Word con un marcador.
Publicado por: Antonio Pedro
Asunto: Combinacion Access-Word con un marcador.
Fecha de publicación: 14/Julio/2019 a las 15:20
Un saludo para Todos.

Tengo un formulario que me hace una combinación Access con Word, me genera un documento Word que guardo en la siguiente ruta: C:\ATESTADOS\COMPARECENCIA, la instrucción que tengo es esta:

docWord.SaveAs "C:\ATESTADOS\COMPARECENCIAS\" & Forms!FComparecencia!Texto86 & ".doc"

Texto86 es el número que le inserto al documento que me genera. Por poner un ejemplo me genera el siguiente documento: 001-19, hasta aquí todo bien.

Pero ahora viene la vuelta de tuerca y donde pido ayuda o alguna sugerencia.

Ahora realizo otra combinación de Access con Word, en el documento que se me genera tengo insertado un marcador (Inic7),  lo que pretendo ahora es que en ese marcador se me inserte el documento que genere anteriormente es decir el 001-19. Para eso utilizo esta instrucción, pero lo que  no se es que debo de poner en XXX para que sea el documento 001-19 el que se me inserte, lo mismo que he dicho 001, puede ser  otro número que genere en la instrucción anterior.

If Forms!FDatoshechos!Marco135 = 1 And Forms!FDatoshechos!Marco164 = 1 Then

mfitxer = "C:\ATESTADOS\COMPARECENCIAS\XXXX.doc"

appword.Application.selection.GoTo Name:="Inic7"

appword.Application.selection.InsertFile FileName:=mfitxer, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False

Else

appword.Application.selection.GoTo Name:="Inic7"

appword.Application.selection.Text = ""

End If

appword.Application.selection.HomeKey Unit:=6

 

Todas estas instrucciones se las debo a prga,  si pudiera ayúdame se lo agradecería.

Espero que no  haya sido muy lioso en la explicación. Un saludo.




Respuestas:
Publicado por: prga
Fecha de publicación: 15/Julio/2019 a las 10:04
Hola.
Una pregunta, ¿La segunda combinación se hace inmediatamente después de que se hace la primera?. Vamos un código a continuación del otro.
Otra pregunta: En el ejemplo dado ¿ el fichero a "cargar" sería el 001-19.doc?
Ya comentas
Un saludo a todos


Publicado por: Antonio Pedro
Fecha de publicación: 15/Julio/2019 a las 21:18
Hola prga, y en primer lugar darte las gracias por responder, te comento las preguntas que me formulas:
En cuanto a la primera pregunta comentarte que no.
Te comento lo que pretendo y si se puede: Tomo la comparecencia y la guardo en la C:ATESTADOS\COMPARECENCIA, por ejemplo como dije 001-19. A continuación relleno el Atestado y hago la combinación Access-Word, dentro del documento que se me genera inserte un marcador, lo que pretendo es como asignarle a la instrucción  para que me escoja ese numero de comparecencia. 
Imagínate ahora que tomo otra comparecencia 002-19 y vuelvo ha realizar todo lo anterior, como haría para que me escogiera ese numero de comparecencia, y así sucesivamente.

Espero que no resulte un poco lioso lo que pretendo, es solo si se puedo o hay alguna otra posibilidad.
Nuevamente un Saludo.  


Publicado por: prga
Fecha de publicación: 17/Julio/2019 a las 15:42
Hola.
Posibles soluciones:
Sí sabemos el valor de la xxx( podría ser el valor de Forms!FComparecencia!Texto86 o cualquier otra variable que tenga ese valor)
 mfitxer = "C:\ATESTADOS\COMPARECENCIAS\" & Forms!FComparecencia!Texto86 & ".doc"

Si NO sabemos ese valor, habrá que buscar el fichero en la carpeta de comparecencias, para eso utilizaremos el "filedialog":
En cualquier módulo colocaremos la siguiente o similar función:

Public Function buscafitxer(Optional midirec As String)
 Dim dlgOpen As Object
 Set dlgOpen = Application.FileDialog(1) 'msoFileDialogOpen)
If midirec = "" Then
 midirec = CurrentProject.Path
End If
 dlgOpen.AllowMultiSelect = False
 dlgOpen.InitialFileName = midirec
 If dlgOpen.Show = True Then
   buscafitxer = Nz(dlgOpen.SelectedItems(1), "")
 Else
  buscafitxer = ""
 End If
End Function

y en el código algo parecido a:
......
If Forms!FDatoshechos!Marco135 = 1 And Forms!FDatoshechos!Marco164 = 1 Then
mfitxer = buscafitxer("C:\ATESTADOS\COMPARECENCIAS")
If mfitxer = "" Then
   MsgBox ("No hay fichero seleccionado")
   Exit Sub
End If
appword.Application.selection.InsertFile FileName:=mfitxer, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False
.........

El código está expuesto a título de ejemplo y sin comprobar
Espero que ayude a resolver la duda.
Ya comentas.
Un saludo a todos


Publicado por: Antonio Pedro
Fecha de publicación: 26/Julio/2019 a las 14:12
Hola prga y perdón por el retraso en contestar, me han servido mucho las soluciones facilitadas, he aplicado la primera solución ( la otra  las tendré en cuenta).Lo dicho muchísimas gracias y un saludo. Se puede cerrar el hilo



Imprimir página | Cerrar ventana