Avatar billede schoesler Nybegynder
21. december 2004 - 22:34 Der er 4 kommentarer og
1 løsning

Eksport Excell ark til Access via en knap i outlook

Modtager nogle records i Excell som vedhæftet filer, kan jeg lave en knap så de eksporteres til Access direkte?

Jan
Avatar billede schoesler Nybegynder
21. december 2004 - 22:37 #1
Går udfra at der kan laves en vba kode som kan gøre dette, men hvordan?
Avatar billede supertekst Ekspert
23. december 2004 - 10:31 #2
Har prøvet at konstruere et forslag:

Et Worddokument indeholder VBA-kode, som gør følgende:

- indbakke i OutLook gennemlæses
- alle ikke læste mails med en vedhæftet .xls udvælges
- en meddelelsesboks beskriver filens navn samt mailens afsendernavn - der spørges
--om der skal eksporteres til en DB
- Hvis Ja gemmes den vedhft. fil i systemmappen - en post skrives i en arbejdestabel
--i databasen. Denne indeholder stien til filen.
- databasen kaldes - et kodemodul undersøger om der er tale om en import - d.v.s. at
--der er en post i arbejdstabellen.
---er dette tilfældet importeres regnearksfilen i en ny tabel og posten i
----arbejdstabellen slettes - access lukkes.
---er dette ikke tilfældet åbnes databasevinduet i access - i en dummyformular, som
----indeholder ovennævnte kodning.

kode i Worddokumentet ser således ud:
Rem =========================
Rem Referencer: DAO & OutLook
Rem =========================
Const dbNavn = "db1.mdb"                    '<<<<<< NAVN PÅ DB

Public xSti, xDB, xTabel
Sub StartProgram()
    xSti = ActiveDocument.Path
   
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
   
    testIndbakke
End Sub
Private Sub eksporterTilDb(vf)
Dim db As Object
    klargoerDB vf
   
    Set db = GetObject(xSti + dbNavn)
End Sub
Sub testIndbakke()
Dim m, antalMails, vf, afil As Attachment, sv
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")
    Set indbakke = Namespace.GetDefaultFolder(olFolderInbox)
   
Rem Gennemløb af indbakke
    antalMails = LTrim(Str(indbakke.Items.Count))
   
    If antalMails > 0 Then
        For m = 1 To Val(antalMails)
          With indbakke.Items(m)
'                If .UnRead = True Then            'er mailen behandlet (læst)
                    If indbakke.Items(m).Attachments.Count > 0 Then
                        vf = LCase(indbakke.Items(m).Attachments(1).FileName)
                       
                        If LCase(Right(vf, 4)) = ".xls" Then
                            sv = MsgBox("Filen " + vf + " er vedhft. Fra " + indbakke.Items(m).SenderName, vbYesNo, "Eksporter til DataBase?")
                            If sv = 6 Then
                                Set afil = indbakke.Items(m).Attachments(1)
                                afil.SaveAsFile xSti + vf
                                eksporterTilDb vf
                                .UnRead = False        'marker som læst
                                .Save                  'gem
                            End If
                      End If
                    End If
'                End If
            End With
        Next m
    End If
End Sub
Private Sub klargoerDB(vf)                          'opretter enn post i xtabel
    Set xDB = OpenDatabase(xSti + dbNavn)          'med sti+filnavn
    Set xTabel = xDB.OpenRecordset("xtabel")
   
    With xTabel
        .AddNew
        .Fields(0) = xSti + vf
        .Update
    End With
   
    xDB.Close
End Sub

Du kan få en kopi af databsen, hvis du er interesseret.

Er udarbejdet i Office97!
Avatar billede schoesler Nybegynder
23. december 2004 - 16:00 #3
Tak for foreslag, vil gerne se databasen. jan@schoesler.com
Avatar billede schoesler Nybegynder
03. februar 2005 - 19:58 #4
Fik aldrig nogen db
Avatar billede supertekst Ekspert
04. februar 2005 - 08:22 #5
Beklager - har ikke fået din kommentar pr. 23.12.04 - ser den først nu.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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