Avatar billede omp Novice
19. oktober 2001 - 14:02 Der er 3 kommentarer og
1 løsning

Mere Brevflet med Access - Thomas Jeppesen

Hej!
Nedenstående kode er \"lånt\" fra Thomas Jeppesen\'s tidligere svar af 18-5-01 \"Brevflet med Access\" og virker som det skal.
Mit problem er bare, at der ikke altid der er data i en  de felter som jeg ønsker at \"sende\" til Word.
Er det muligt at få Access til checke om feltet indeholder information eller ej. Hvis ikke skal den bare \"løbe\" videre, og eventuelt skrive i Word \"Ikke oplyst\".
Jeg får fejlkoden \"Null er brugt ugyldigt\" hvis ikke feltet er udfyldt.

Er der en som har en god idé ?????


Function Brevflet1()
    Dim objWord As New Word.Application
    Dim WordDoc As New Word.Document
    Set WordDoc = objWord.Documents.Add(\"C:\\Skabelon1.dot\")
    Call InsertAtBookmark(WordDoc, \"Firmanavn\", Forms!deltagerliste![Firmanavn])
    Call InsertAtBookmark(WordDoc, \"Adresse_1\", Forms!deltagerliste![Adresse_1])
    Call InsertAtBookmark(WordDoc, \"Fornavn\", Forms!deltagerliste![Fornavn])
   
    objWord.Visible = True
    DoCmd.Hourglass False
End Function
Function InsertAtBookmark(objWordDoc As Word.Document, strBookmark As String, strText As String) As Boolean
    With objWordDoc.Bookmarks
        If .Exists(strBookmark) Then
            .Item(strBookmark).Range.Text = strText
            InsertAtBookmark = True
        End If
    End With
End Function

Mvh.
OMP
19. oktober 2001 - 14:16 #1
Function Brevflet1()
    Dim objWord As New Word.Application
    Dim WordDoc As New Word.Document
    Set WordDoc = objWord.Documents.Add(\"C:\\Skabelon1.dot\")
    if Forms!deltagerliste![Firmanavn] <> \"\" then Call InsertAtBookmark(WordDoc, \"Firmanavn\", Forms!deltagerliste![Firmanavn])
    if Forms!deltagerliste![Adresse_1] <> \"\" then Call InsertAtBookmark(WordDoc, \"Adresse_1\", Forms!deltagerliste![Adresse_1])
    if Forms!deltagerliste![Fornavn] <> \"\" then Call InsertAtBookmark(WordDoc, \"Fornavn\", Forms!deltagerliste![Fornavn])
   
    objWord.Visible = True
    DoCmd.Hourglass False
End Function
Avatar billede omp Novice
19. oktober 2001 - 14:27 #2
- virker !
- du er genie !
Tak
Ikke for at være urimelig, men ville det ikke være enklere at lave en Function som er lig med den for Bookmarks.
Så undgår man at skulle Kode for hvert felt ???
Kan det lade sig gøre ?

OMP
19. oktober 2001 - 14:44 #3
jo, det kan du godt - nu vidste jeg ikke hvor mange felter vi snakkede om. Hvis det kun var 3-5 felter, så kan det måske ikke betale sig. Men ellers ja.

Du kan også bare fange det vha fejlhåndtering:

Function Brevflet1()
    on error resume next
    Dim objWord As New Word.Application
    Dim WordDoc As New Word.Document
    Set WordDoc = objWord.Documents.Add(\"C:\\Skabelon1.dot\")
    Call InsertAtBookmark(WordDoc, \"Firmanavn\", Forms!deltagerliste![Firmanavn])
    Call InsertAtBookmark(WordDoc, \"Adresse_1\", Forms!deltagerliste![Adresse_1])
    Call InsertAtBookmark(WordDoc, \"Fornavn\", Forms!deltagerliste![Fornavn])
   
    objWord.Visible = True
    DoCmd.Hourglass False
End Function

/Thomas
Avatar billede omp Novice
19. oktober 2001 - 14:48 #4
Det drejer sig om ca. 15-20 felter (Ejendomsoplysninger) hvor ikke alle informationer er tilstede ved indtastningen.
Jeg prøver.
På forhånd tak.
Mvh
OMP
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester