Jag har för mig att jag har sett ett exempel här om hur man skapar rapporter i Word med VB, men kan inte hitta det... Det var jag som frågade en gång i tiden och är nu glad att jag kan svara på denna fråga. Tack, det fungerar bra, men hur gör man för att söka i dokumentet? Jag har inte lyckats hitta den metoden än... Kanske ett alternativ då är att skriva till en TXT-fil istället. Då kan läsa från filen och ställa villkor på det som finns i filen. Jag löste det nu. Jag vill ha så att man kan formatera dokumentet i Word och att programmet bara fyller i informationen. Såhär blev det:Rapport i Word från VB
    
    
Jag vill alltså skapa en mall i Word som jag formaterar som jag vill ha den, sedan vill jag kunna placera information från en databas i dokumentet. Antar att man ska använda Word.Application för att göra detta, men hur?
/JohanSv: Rapport i Word från VB
    
    
Dim D As Word.Document 
Dim W As Word.Application
Set W = CreateObject("Word.Application")
Set D = W.Documents.Add
MousePointer = vbHourglass
W.Selection.TypeText ("RAPPORT") 'Rubrik i rapporten
W.Selection.TypeText (vbCrLf) 'Ny rad
W.Selection.TypeText (vbCrLf)
rs.MoveFirst
While Not rs.EOF
If Not IsNull(rs.Fields("NAMN").Value) Then 'Kontrollera att data finns i fältet
   W.Selection.TypeText rs.Fields("NAMN").Value 'Skriv fältets data till Word
End If
W.Selection.TypeText ("  ") 'Gör mellanrum
If Not IsNull(rs.Fields("ADRESS").Value) Then
   W.Selection.TypeText rs.Fields("ADRESS").Value
End If
W.Selection.TypeText (vbCrLf) 'Ny rad
W.Selection.TypeText (vbCrLf)
W.Selection.TypeText (vbCrLf)
rs.MoveNext
Wend
Set D = Nothing
W.Visible = True
MousePointer = vbDefault
I avslutaknappen
W.Quit False
Set W = NothingSv: Rapport i Word från VB
    
    
/JohanSv: Rapport i Word från VB
    
    Sv: Rapport i Word från VB
    
    
<code>
    Dim fldTmp As ADODB.Field
    Dim WordDoc As Word.Document
    Dim WordApp As Word.Application
    Dim WordRange As Word.Range
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(App.Path & "\BrevMall.doc", , True, False)
    For Each fldTmp In rstAdr.Fields
        Set WordRange = WordApp.ActiveDocument.Content
        WordRange.Find.Execute FindText:="<" & fldTmp.Name & ">", Forward:=True
        If WordRange.Find.Found = True Then
            WordRange = fldTmp.Value
        End If
    Next
    
    rstDiv.Open "qryGetTel " & rstAdr("ID"), con, adOpenForwardOnly, adLockReadOnly
    Set WordRange = WordApp.ActiveDocument.Content
    WordRange.Find.Execute FindText:="<Tel>", Forward:=True
    If WordRange.Find.Found = True Then
        WordRange = ""
        Do Until rstDiv.EOF
            WordRange = WordRange & rstDiv("strAnt") & ": " & rstDiv("strTel") & vbCrLf
            rstDiv.MoveNext
        Loop
    End If
    rstDiv.Close
    
    WordApp.Visible = True
    Set WordRange = Nothing
    Set WordDoc = Nothing
    Set WordApp = Nothing
</code>
/Johan