Habría que crear un nuevo módulo de clase (no un módulo normal) en
Insertar->Módulo de clase; yo le he llamado clsContratro. Luego pegas el
siguiente código:

Option Compare Database
Option Explicit

Public Nombredoc As String, Guardar As Boolean, stPath As String,
stPlantilla As String
Public Campos As Variant
Dim stSQL As String
Dim appWd As Word.Application
Dim WordDoc As Word.Document
Public Sub Nuevo()
Dim template As String, mipath As String, i As Integer
mipath = stPath & Nombredoc & ".doc"
template = stPlantilla
On Error Resume Next 'Vemos si word está abierto
   Set appWd = GetObject(, "Word.Application.8")
    If Err.Number <> 0 Then 'Word no esta abierto
      Err.Clear   ' borramos el error.
      'Creamos una nueva instancia de Word
      Set appWd = CreateObject("Word.Application.8")
      'Creamos una instancia de Word
    Else
        appWd.Activate
    End If
On Error GoTo Err_Nuevo
    With appWd
        'Seleccionamos la plantilla
        .Documents.Add template:=Chr(34) & template & Chr(34)

        Dim marca As Bookmark
        i = 0
        'Recorremos los Campos
        For Each marca In .ActiveDocument.Bookmarks
             marca.select
            'Asignamos el valor del campo correspondiente que tenemos en la
matriz "Campos"
            .Selection.InsertAfter Nz(Campos(i, 0))
            i = i + 1
        Next
        If Guardar = True Then
            .ActiveDocument.SaveAs mipath
        End If
        .Visible = True
        .WindowState = wdWindowStateMaximize
    End With

Exit_Nuevo:
    Exit Sub

Err_Nuevo:
   If Err.Number = 5941 Then
        appWd.Quit
        GoTo Exit_Nuevo
    Else

        appWd.Quit
        GoTo Exit_Nuevo
    End If
End Sub
Public Property Get TextoSQL() As String
TextoSQL = stSQL
End Property

Public Property Let TextoSQL(ByVal stNewValue As String)
stSQL = stNewValue
Dim rst As Recordset
'Abrimos un recordset con la sentencia SQL
Set rst = CurrentDb.OpenRecordset(stSQL, dbOpenSnapshot)
With rst
    ' Pasamos el recordset a una matriz llamada "Campos"
    Campos = .GetRows(1)
    .Close
End With
Set rst = Nothing

End Property

Ahora, queda llamarlo desde un formulario. Podría ser así:

Private Sub Comando0_Click()
'Dimensionamos una nueva instancia de la clase
Dim Contrato As New ClsContrato, misql As String
' Hacemos el Select poniendo los campos en el mismo orden que estén los
marcadores
' en la plantilla de word. Si un campo se repite en la plantilla, también lo
debemos repetir en el Select.
' Lo más sencillo es usar el generador de consultas y
' luego copiar el texto SQL.
' Debemos añadir una clausula Where que restrinja los datos a un solo
registro

misql = "SELECT Contratos_contrato.PrefijoCCC, Contratos_contrato.CCC,
Contratos_contrato.SufijoCCC, 'FULANITO DE TAL' AS Gerente,
Contratos_contrato.Nombre_Trabajador,
Contratos_contrato.Numero_afiliación_Seg,
Contratos_contrato.Nivel_de_Estudi, Contratos_contrato.Fecha_Nacimiento,
Contratos_contrato.DNI_Traba, Contratos_contrato.Dirección,
Contratos_contrato.Denominación, Contratos_contrato.Número_Curso_FPO,
Contratos_contrato.Importe_pesetas_hora, Contratos_contrato.inicio,
Contratos_contrato.Periodo_maximo_de_duracion, [gerente] AS Gerente2,
Contratos_contrato.Nombre_Trabajador AS Firma, Contratos_contrato.[Horas
lectivas] FROM Contratos_contrato "
misql = misql & "WHERE (((Contratos_contrato.id_contrato)=" & Me.id_contrato
& "));"

With Contrato
    'indicamos el txto SQL del que obtenemos los campos
    .TextoSQL = misql
    'indicamos el nombre con el que se guardará el documento
    .Nombredoc = "Pruebas word"
    ' .. y la ruta
    .stPath = "P:\XXX\pid\access\Formación\ContratosW\"
    '... y la plantilla que vamos a usar
    .stPlantilla = "P:\XXX\pid\access\Formación\ContratosW\pruebas word.dot"
    ' Le decimos que guarde el documento que se genera (usará el nombre que
hemos dado antes)
    .Guardar = True
    ' Y lo ponemos en marcha
    .Nuevo
End With
' Destruimos la clase
Set Contrato = Nothing


End Sub


--
Saludos.

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)