PASAR DATOS DE ACCESS A PLANTILLA DE WORD DESDE VISUAL BASIC 6.0

05/02/2011 - 02:03 por Ironpony | Informe spam
Tengo un documento de Word que es una plantilla con una serie de
huecos donde tengo que llevar valores de una tabla usando Visual
Basic, un fragmento de este word sería

".. estimado sr. <camponombreVB> Tengo el gusto de invitarle a la
fiesta que daremos el día <campofechaVB> a las 16:00h. Por favor
confirme asistencia..."

Como podeis observar <camponombreVB> y <campofechaVB> son dos valores
que tengo en la tabla que gestiono desde el programa en visual basic,
entonces ¿como puedo llevar los datos en pantalla del programa de
visual basic, para generar el documento word y en los huecos donde he
escrito los campos, me aparezcan dichos valores.

Sólo se hace para un caso, es decir, no es combinar correspondencia ni
nada parecido

de nuevo gracias.

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
05/02/2011 - 16:46 | Informe spam
"Ironpony" escribió en el mensaje
news:
Tengo un documento de Word que es una plantilla con una serie de
huecos donde tengo que llevar valores de una tabla usando Visual
Basic, un fragmento de este word sería

".. estimado sr. <camponombreVB> Tengo el gusto de invitarle a la
fiesta que daremos el día <campofechaVB> a las 16:00h. Por favor
confirme asistencia..."

Como podeis observar <camponombreVB> y <campofechaVB> son dos valores
que tengo en la tabla que gestiono desde el programa en visual basic,
entonces ¿como puedo llevar los datos en pantalla del programa de
visual basic, para generar el documento word y en los huecos donde he
escrito los campos, me aparezcan dichos valores.

Sólo se hace para un caso, es decir, no es combinar correspondencia ni
nada parecido



Hola,

Estuve un rato peleándome con la ayuda de VBA para Word sin encontrar
la manera (no es que no la haya, pero tengo un poco de trabajo "pago"
pendiente, y no puedo dedicarle demasiado tiempo a los problemas de
otros) de modificar directamente el texto del documento.

Pero si colocas "marcadores" de Word (seleccionas un área de texto,
pulsas en el menú Insertar\Marcador, y escribes un identificador) la
tarea es trivial:

En primer lugar abres el documento de Word:

Private Const NOMBRE_ARCHIVO = "D:\Mis Narices\inivtac.doc"
Set wordApp = New("Word.Application")
' abrimos en modo de solo lectura por si las moscas
Set doc = wordApp.Documents.Open(NOMBRE_ARCHIVO, True)
' luego reemplazas el texto de los marcadores por las variables
Dim rango As Word.Range
With doc
Set rango = .Bookmarks("campoNombreVB")
rango.Text = elNombre
Set rango = .Bookmarcs("campoFechaVB")
rango.Text = Format(laFecha, "Short Date")
' y lo imprimes en la impresora predeterminada
.PrintOut
End With
' cierras el documento y Word
doc.Close
wordApp.Quit

Salud!
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
05/02/2011 - 16:53 | Informe spam
"Leonardo Azpurua" escribió en el mensaje
news:iijrb5$8f5$
Estuve un rato peleándome con la ayuda de VBA para Word sin
encontrar la manera (no es que no la haya, pero tengo un poco de
trabajo "pago" pendiente, y no puedo dedicarle demasiado tiempo a
los problemas de otros) de modificar directamente el texto del
documento.



Un poco despues se me ocurrió buscar "Replace", y encontré este
ejemplo:

Set myRange = elDocumento.Content
With myRange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "<vbNombre>"
.Replacement.Text = elNombre
.Execute Replace:=wdReplaceAll
End With

que no necesita marcadores, pero que vaya Ud. a saber que efectos
secundarios podría tener.

Salud!
Respuesta Responder a este mensaje
#3 Ironpony
08/02/2011 - 15:56 | Informe spam
On 5 feb, 16:53, "Leonardo Azpurua" wrote:
"Leonardo Azpurua" escribi en el mensajenews:iijrb5$8f5$

> Estuve un rato pele ndome con la ayuda de VBA para Word sin
> encontrar la manera (no es que no la haya, pero tengo un poco de
> trabajo "pago" pendiente, y no puedo dedicarle demasiado tiempo a
> los problemas de otros) de modificar directamente el texto del
> documento.

Un poco despues se me ocurri buscar "Replace", y encontr este
ejemplo:

Set myRange = elDocumento.Content
With myRange.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "<vbNombre>"
    .Replacement.Text = elNombre
    .Execute Replace:=wdReplaceAll
End With

que no necesita marcadores, pero que vaya Ud. a saber que efectos
secundarios podr a tener.

Salud!




Muchas gracias, ya me funciona con el tema de los bookmarks, gracias a
todos los componentes de la lista
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida