Access - Leer registro de Access desde Word.

   
Vista:

Leer registro de Access desde Word.

Publicado por Ricardo (43 intervenciones) el 24/02/2013 15:47:58
Ya he visto en este foro como desde Access abrir un documento de Word y asignarle a los marcadores de este documento los valores sacados de un registro de Access -por tanto, el código de Visual Basic está en la aplicación de Acces.

Ahora quiero que al abrir un documento de Word -estando abierto un formulario de la base de datos- recoja en los marcadores los valores correpondientes al registro que el formulario de Access presenta (por tanto, ahora el código de Visual Basic tiene que estar en el documento de Word).

¿Alguien tiene idea de cómo hacerlo?

Gracias de antemano.
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

Leer registro de Access desde Word.

Publicado por Angel38 (84 intervenciones) el 24/02/2013 18:57:18
Yo lo hago eso con la combinación de correspondencia de word. ¿Has probado?
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

Leer registro de Access desde Word.

Publicado por Ricardo (43 intervenciones) el 25/02/2013 15:50:19
¿Y cómo consigues hacerlo sólo con un registro -el que se presenta en el formulario- y que al abrir el archivo de combinación de correspondencia de Word no te haga preguntas sobre si deseas o no ejecutar la instrucción SQL para combinar?
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 Norberto

Leer registro de Access desde Word.

Publicado por Norberto (432 intervenciones) el 26/02/2013 15:14:43
Hola.

Le he estado dando muchas vueltas y no se me ocurre cómo hacer referencia desde Word a una base de datos que ya se encuentre abierta. Otra cosa sería que el documento lo abrieras desde Access y desde aquí controles su actualización.

Lo único que se me ocurre me suena a chapuza hasta a mí, pero...

Crea una tabla con la misma estructura que la tabla del formulario en cuestión y con un único registro y cada vez que haces un cambio de registro en el formulario, actualiza el contendio del registro de la tabla.

Luego al abrir el documento creas una referencia a la tabla en cuestión (yo soy de la vieja escuela y uso DAO) y actualizas los marcadores con los datos del único registro.

Un saludo.
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

Leer registro de Access desde Word.

Publicado por Ricardo (43 intervenciones) el 27/02/2013 16:41:24
Al final lo he conseguido siguiendo estos pasos:

1.- Crear una plantilla o documento de WORD con unos CONTROLES. La propiedad TÍTULO de estos controles tiene que coincidir con el nombre del control del formulario ACTIVO de ACCESS.

2.- Añadir en WOR la siguiente MACRO:

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
33
34
35
Sub Registro_Access_A_Word()
'
' Recoge los datos del registro activo de un formulario.
'
'
    'Variables para Access
    Dim miForm As Form
    Dim controles As Controls
    'Variables para Word
    Dim objcc As ContentControl
    Dim titulo As String
    Dim numeroControles As Integer
 
    'Devuelve el formulario que tiene el enfoque.
    Set miForm = Screen.ActiveForm
    Set controles = miForm.Controls
    'Número de controles en el documento de Word.
    numeroControles = ActiveDocument.ContentControls.Count - 1
 
    'Recorre los controles del escrito de WORD y le asigna el valor de los controles del formulario.
    For x = 0 To numeroControles
        Set objcc = ActiveDocument.ContentControls.Item(x + 1)
        titulo = ActiveDocument.ContentControls.Item(x + 1).Title
        For y = 0 To controles.Count - 1
            If (controles.Item(y).Name = titulo) Then
                If (IsNull(controles.Item(y).Value)) Then
                    objcc.Range.Text = ""
                Else
                    objcc.Range.Text = controles.Item(y).Value
                End If
 
            End If
        Next y
    Next x
End Sub


Debes de comprobar que en el módulo donde tienes la anterior macro tienes activada la REFERENCIA siguiente: MICROSOFT ACCESS 12.0 OBJECT LIBRARY.

Para probarla, abre el formulario y el documento de Word y ejecuta la MACRO anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Leer registro de Access desde Word.

Publicado por javier (12 intervenciones) el 28/02/2013 00:54:54
Madre mia con lo facil que es hacerlo con una consulta y una macro.
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

Leer registro de Access desde Word.

Publicado por Ricardo (43 intervenciones) el 01/03/2013 09:02:44
¿Y cómo filtras la consulta, desdeWord, para que te salga el registro que tienes activo en el formulario?
¿Y si en la consulta en la que está basada el formulario no tienes campo clave para distinguir cada uno de los registros?

Espero tu respuesta.

Un saludo.
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

Leer registro de Access desde Word.

Publicado por javier (12 intervenciones) el 01/03/2013 11:04:12
Tienes que tener un campo clave o identificador único para hacer lo que quieres.
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 Norberto

Leer registro de Access desde Word.

Publicado por Norberto (432 intervenciones) el 07/03/2013 19:45:06
Hola

J0d€ si era fácil. No se me había ocurrido que, si tienes abierto Access puedes hacer referencia a todos los objetos

Enhorabuena por la solución que has encontrado.

Un saludo.
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

Leer registro de Access desde Word.

Publicado por jesus (4 intervenciones) el 16/04/2013 20:53:39
Muy bueno , gracias
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

Leer registro de Access desde Word.

Publicado por jesus (4 intervenciones) el 16/04/2013 21:31:11
Para los que somos bultos, podrías indicarme que parte del código es la que tengo que personalizar yo.?
Gracias
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

Leer registro de Access desde Word.

Publicado por jesus (4 intervenciones) el 16/04/2013 22:18:50
El error que me da es que no se ha definido el tipo definido por el usuario.

Me temo que no se activar :
Debes de comprobar que en el módulo donde tienes la anterior macro tienes activada la REFERENCIA siguiente: MICROSOFT ACCESS 12.0 OBJECT LIBRARY.

Me dices algo?
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

Leer registro de Access desde Word.

Publicado por Ricardo (43 intervenciones) el 26/04/2013 15:42:05
Como tienes la macro en un documento de Word edita la macro para acceder a VISUAL BASIC o pulsa Alt+F11.

Selecciona el menú HERRAMIENTAS -> REFERENCIAS.
Localiza MICROSOFT ACCESS 12.0 OBJECT LIBRARY y actívala.

Ya no te saldrá ese error.

Un cordial saludo.
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

Leer registro de Access desde Word.

Publicado por deneg_nhj (349 intervenciones) el 16/04/2013 22:55:26
Ricardo, espero que esto aún te sirva.

Yo lo solucionaría así
En el formulario de Access, cuando se active el registro lo marco, por ejemplo con un campo logico, puedes hacer una consulta con los datos y como condición que el campo este marcado.

Desde luego que cuando te cambias de registro desmarcar el registro!

Luego en Word utiliza "Combinar correspondencia", y tomas como origen la consulta con el campo marcado.

Saludos!


www.sgh.com.mx
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

Leer registro de Access desde Word.

Publicado por jesus (4 intervenciones) el 17/04/2013 13:46:52
Ok, gracias Ricardo
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