En el siguiente ejemplo se asume que tenemos una base de
datos Access llamada DataBase.mdb y que está almacenada en la carpeta C:\DataBaseFolder.
se asume también que la base de datos contiene una tabla llamada Table_1 y que
esa tabla contiene dos campos llamados Field_1 y Field_2. Finalmente se asume
que Field_1 es un campo numérico mientras que Field_2 es un campo de
texto.
El código revisa el valor en Field_1. y si este valor no es cero se
coloca el texto de Field 2 en el documento activo de Word, en la posición del
cursor
En una situación real podría ser necesario tener
marcadores en el documento (así como una plantilla que los contenga) en lugar
de insertar los ítem en la posición del cursor
Para que el código funcione se debe establecer una
referencia en la plantilla del Word a Microsoft DAO 3.51 Object Library and Microsoft Datasource Interfaces.
Para hacer esto se ingresa a Herramientas, Macros, Editor de Visual Basic y
Referencias
Sub GetDataFromDataBase()
'reserva memoria para el objeto database así como para el registro activo
Dim myDataBase As Database
Dim myActiveRecord As Recordset
'abre la Base de datos
Set myDataBase = OpenDatabase("C:\DataBaseFolder\Database.mdb")
'accesa al primer registro de la tabla
Set myActiveRecord = myDataBase.OpenRecordset("Table_1",
dbOpenForwardOnly)
'busca a través de todos los registros hasta llegar al end-of-file
Do While Not myActiveRecord.EOF
'si el campo #1
contiene un valor distinto de cero
'inserta el
valor del campo #2 en el documento
'en la
posición actual del cursor
If myActiveRecord.Fields("Field_1") <> 0 Then
Selection.InsertAfter myActiveRecord.Fields("Field_2")
End If
'accesa el
registro siguiente
myActiveRecord.MoveNext
Loop
'finalmente cierra la base de datos
myActiveRecord.Close
myDataBase.Close
End Sub