Hummer og kanari
For å bruke programmet nedenfor, må du først få informasjonen over i Access databasen. Kopier postene fra Word til Excel hvor du lager kolonneoverskriftene Fornavn, Etternavn, Fødselsdato og Epost. Deretter kan du importere postene til Access: Fil → Hent eksterne data → Importer... og følge veiviseren. Pass på å huke av for første rad inneholder kolonne overskrifter, og at du vil lagre dataene i en eksisterende tabell: Venner.
Overføre data fra Access til Outlook
I Microsoft Access fila tilOutlook.mdb er det laget et program som overfører data fra felt i en Access tabell til egenskaper i et Outlook objekt:
Når vi oppretter et kontakt objekt med fødselsdag, legger Outlook automatisk inn fødselsdag som årlig hendelse (Avtale objekt). Programmet endrer to av egenskapene til til disse årlige hendelsene slik at plasseringen blir satt til Venner og påmindelse satt til 1 dag.
ACCESS | OUTLOOK | |
Tabell Venner | Kontakt objekter | |
Egendefinerte felt | Forhåndsdefinerte egenskaper | |
Fornavn | → | FirstName |
Etternavn | → | LastName |
Fødselsdato | → | Birthday |
Epost | → | Email1Address |
Når du har lagt inn vennene dine i databasen, kan du klikke Overfør knappen som kaller overførDataTilOutLook() subrutinen i Overføringsprogram modulen. Har overføringen vært vellykket skal du se en melding som den nedenfor:
Gå til Kontakter mappen i Outlook og sjekk at kontaktene er lagt inn.
Etterpå kan du gå til Kalender mappen og sjekke at hendelsene er lagt inn:
Sjekk at plasseringen er Venner.
Dobbeltklikk en hendelse og sjekk at Påminnelse er satt til 1 dag.
Access databasen tilOutlook.mdb er satt til å vise skjemaet Venner og skjule databasevinduet ved oppstart:
Hvis du får feilmeldingen av typen til venstre, har du sannsynligvis ikke startet Outlook
Hvis du klipper og limer programmet nedenfor i stedet for å bruke tilOutlook.mdb kan du få feilmeldingen av typen til venstre. Da må du velge Tools References fra menylinja i Visual Basic å huke av for valgene som vist i dialogboksen nedenfor (Fjern Microsoft DAO 3.6 Object Library).
Programmet ser slik ut:
Option Explicit
Global myNameSpace As NameSpace
Global dbs As Object
Global rstVenner As Object
Public Sub overførDataTilOutLook()
On Error GoTo StartError
Dim myOlApp As Object
Dim myNameSpace As NameSpace
Dim myFolder As Object
Dim OutlookContact As Object
Dim dbs As Object
Dim rstVenner As Object
Dim myAppts As Items
Dim myAppt As AppointmentItem
Dim strSubject As String
'Opprett et Microsoft Outlook objekt.
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set dbs = CurrentDb
'Dette er tabellen i Access
Set rstVenner = dbs.OpenRecordset("Venner")
'Legg inn nye kontakter
'som også automatisk legger inn fødselsdag som årlig hendelse
Do While Not rstVenner.EOF
'Opprett og åpne en ny kontakt for input
Set OutlookContact = myOlApp.CreateItem(olContactItem)
With OutlookContact
.FirstName = rstVenner!Fornavn
.LastName = rstVenner!Etternavn
.Birthday = rstVenner!Fødselsdato
.Email1Address = rstVenner!Epost
.Save
End With
rstVenner.MoveNext
Loop
'I hendelser:
'Endre påminnelse til 1 dag (60 * 24 = 1440 min)
'Og legge inn Plassering (Location)
Set myAppts = myNameSpace.Folders("Personlige Mapper").Folders("Kalender").Items
Set myAppt = myAppts.GetFirst
'Scan gjennom påminnelser for å finne den riktige
Do While TypeName(myAppt) <> "Nothing"
rstVenner.MoveFirst
Do While Not rstVenner.EOF
strSubject = rstVenner!Fornavn + " " + rstVenner!Etternavn + "s Fødselsdag"
If strSubject = myAppt.Subject Then
myAppt.ReminderMinutesBeforeStart = 1440
myAppt.Location = "Venner"
myAppt.Save
Exit Do
End If
rstVenner.MoveNext
Loop
Set myAppt = myAppts.GetNext
Loop
MsgBox rstVenner.RecordCount & " poster fra tabellen Venner er overført til " _
& rstVenner.RecordCount & " nye kontakter i Outlook", _
vbInformation, "Operasjonen var vellykket"
rstVenner.Close
'Quit Microsoft Outlook.
Set myOlApp = Nothing
Exit Sub
StartError:
MsgBox "Error: " & Err & " " & Error
Exit Sub
End Sub