Access - pasar imagen de firma digitalizada de un formulario access a un documento word

   
Vista:

pasar imagen de firma digitalizada de un formulario access a un documento word

Publicado por jesus (9 intervenciones) el 26/04/2014 09:25:43
Hola a todos. Hace mucho tiempo que no entraba en el foro ya que he tenido problemas con mis cuentas de correo, por lo que he tenido que cambiarlas - antes entraba como hermesalado48, ese torpe que pregunta constantemente :)
Me encuentro con un problemilla en la aplicación que estoy creando para mi trabajo. Os explico:

Se trata de crear una base de datos en access 2007 con clientes, productos, comerciales...
todo eso está hecho.
Ahora bien, habitualmente mandamos cartas a nuestros clientes (para lo que utilizamos word 2007) para comunicarles si su pedido está completo o no, nuevas ofertas...
Cada una de estas cartas va firmada por una persona diferente. Puede ser un comercial, un encargado de tienda...
Todo esto está automatizado, de manera que introducimos los datos en un formulario de access para que los guarde en la base (por ejemplo, podemos introducir los datos del cliente que nos interesa contactar y de los productos de los que no disponemos en un momento determinado, y, al pulsar sobre imprimir, nos sale la carta en word comunicando al cliente dichos datos. O podemos introducir las ofertas que tenemos en ese momento - que quedarán guardadas en la base a fin de evitar repetir las mismas ofertas a los mismos clientes- y después imprimir la carta en word)
He creado una tabla (tabla firmas) con la siguiente estructura
idempleado. campo autonumérico indexado sin duplicados
cargo. campo texto
nombreyapellidos. campo texto
firma. objeto ole

Abro la tabla firmas en vista hoja de datos y, en el campo firma, inserto objeto bitmap image de paintbrush con la firma y así ya tengo la tabla completa.

Además las distintas imágenes de las firmas, las tengo guardadas en el mismo directorio de la base como "firma1.bmp, firma2.bmp, firma3.bmp ..."

Ahora bien, para pasarlo al documento de word, ya es otro cantar. Lo que he hecho es lo siguiente:

He creado un formulario basado en una consulta (la cual está basada en varias tablas de la base de datos relacionadas entre sí: clientes, productos, ...) form_paraenviarcartas
Además de los campos correspondientes a datos de los clientes, productos... he añadido un cuadro combinado (llamado rúbrica) basado en la tabla firmas, un cuadro de texto (llamado puesto) y otro cuadro de texto llamado firma.

En el evento "al cambiar" del cuadro combinado he escrito:

puesto.value = rúbrica.column(1)

luego he añadido un botón con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private sub Imprimir_click()
If puesto = 1 Then
firma = "c:\base\paraenviarcartas\firma1.bmp"
ElseIf puesto = 2 Then
firma =  "c:\base\paraenviarcartas\firma2.bmp"
...
End If
  Dim word As New word.Application
   Dim pruebarec As word.Document
   Dim myrange As Range
 
word.Visible = True
Set reclamación = word.Documents.Open(FileName:="c:\base\paraenviarcartas\carta.docx", ReadOnly:=False)
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "#firma#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.InlineShapes.AddPicture FileName:= _
       firma.Value, LinkToFile:= _
        False, SaveWithDocument:=True
'realmente lo que hago es insertar la imagen correspondiente en el lugar en el que pone #firma#
End Sub

Previamente, había creado un documento en Word llamado carta.docx en el que, en la parte final de la carta, coloqué #firma# a fin de ubicar en la posición correcta del escrito la rúbrica.

En principio funciona, ya que cambia la firma dependiendo de la elección que hagamos en el cuadro combinado. El problema es que "funciona a medias", ya que, la primera vez que pulso "imprimir", abre el documento word y cambia #firma# por la imagen correspondiente, pero si lo hago una segunda vez me da el siguiente mensaje

"Se ha producido el error '462' en tiempo de ejecución:
El equipo servidor remoto no existe o no está disponible"

ahora bien, si cierro este mensaje (o lo acepto) y vuelvo a pulsar "imprimir" ... ¡Vuelve a funcionar! Es decir, el mensaje de error sale alternativamente (una vez no y la siguiente sí)

¿Alguien puede ayudarme y decirme como evitar esto y cual es el motivo de que ocurra?

¿Existe otra forma más sencilla - y que dé menos problemas- para "pasar" esa firma digitalizada al documento de Word?

En fin, espero que podáis ayudarme, ya que no sé qué hacer para solucionar este problemilla... ¡Y además, me vienen presionando para que entregue ya la base!

Muchísimas gracias a todos por vuestra atención y ayuda. Soy consciente de que, casi con toda seguridad, me he explicado fatal, de modo que, si no se entiende mi consulta, pido perdón y os ruego me lo hagáis saber para intentar explicarme mejor.

De nuevo muchas gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

pasar imagen de firma digitalizada de un formulario access a un documento word

Publicado por jesus (9 intervenciones) el 08/05/2014 19:50:49
¡¡¡Solucionado!!!
Por si le sirve de ayuda a alguien, explico como lo he hecho. Basta con sustituir el código que puse por el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim word As New word.Application
Dim pruebarec As word.Document
Dim myrange As Range
 
word.Visible = True
Set reclamación = word.Documents.Open(FileName:="c:\base\paraenviarcartas\carta.docx", ReadOnly:= False)
Set myrange = word.ActiveDocument.Content
  With myrange.Find
    .ClearFormatting
    .Text = "#firma#"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
   End With
    myrange.Find.Execute
    myrange.InlineShapes.AddPicture FileName:= _
        firma.Value, LinkToFile:= _
        False, SaveWithDocument:=True

Lo he probado y funciona sin dar ningún mensaje de error. Muchas gracias a todos por vuestra atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar imagen de firma digitalizada de un formulario access a un documento word

Publicado por xve (114 intervenciones) el 08/05/2014 21:00:25
Hola Jesus, gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar