Start Skype fra MS Access

January 26, 2010 in Programmering, windows by Nick Frederiksen

For leden fik kom en af mine kollegaer og beklagede sig over at han ikke var i stand til at klikke på en knap i Microsoft Access, som så åbnede Skype og ringede op til et telefon nummer, der er angivet i et felt på formularen.

Jeg fandt, så hurtigt på en løsning. Ved at tilføje en lille stump VB kode til en knap, kan jeg starte Skype og ringe op, helt uden at skulle klippe eller klistre.

Metoden er ganske simpel:

1. Starter med en tabel:

Først opretter vi en tabel med to felter: ID (autonummereret) og telephonenumber (datatypen er underordnet!)

2. Opret formular:

Så opretter vi en formular til at indtaste vores data og vise vores data. Du kan bare bruge auto genereringen hvis ikke du vil designe den fra bunden.

3. Tilføj knap:

Så tilføjer vi en knap på formen, lettest at gøre i layout visningen.

4. Tilpasser knappen:

Gør knappen mere brugervenlig med et lille ikon, fremfor teksten:

I egenskabsfeltet, slet teksten i "Caption" eller "Tekst" feltet, alt efter versionen af Access du har (Der skulle gerne stå noget i stil med "Command" eller "Kommando" efterfulgt af et nummer.

Klik på knappen med de tre prikker ud for feltet "Picture" eller "Billede" og vælg "Phone" eller "Telefon" på listen.

Klik OK.

5. Tilføj handling (Event):

Klik på fanen handling, eller event, og klik på knappen med tre prikker ud for feltet "on click" eller "ved klik".

6. Tilføj VB script, og du er kørende:

Du skulle gerne få et vindue, hvor indholdet minder om dette:

Private Sub Command14_Click()

End Sub


I mellemrummet skal du tilføje denne kode:

Dim Cmd As String
Dim Dir64 As String
Dim Dir32 As String
Dim CountryCode As String
Dim PhoneNumberField As String

' Name of the field, containing the phonenumber:
PhoneNumberField = "telephone"

' Country code. +45 for Denmark.
CountryCode = "+45"

' Skype default install dir, on both 32 and 64 bit Windows.
Dir32 = "C:\Program Files\Skype\Phone\Skype.exe"
Dir64 = "C:\Program Files (x86)\Skype\Phone\Skype.exe"

' Do not edit below this line!

Me(PhoneNumberField).SetFocus

Cmd = " /callto:" + CountryCode + Me(PhoneNumberField).Text

If Dir$(Dir32) <> "" Then

    Shell (Dir32 + Cmd)
Else
If Dir$(Dir64) <> "" Then

    Shell (Dir64 + Cmd)

Else
    MsgBox ("Skype Client was not found in default install dir!")
End If
End If

Lig mærke til felterne PhoneNumberField og CountryCode.

PhoneNumberField, skal være navnet på det felt, hvor telefonnummeret findes, i dette tilfælde “telephone” og CountryCode, skal være landekoden for modtageren af opkaldet. Skype spørger dog selv, om landekoden, men vil ikke starte uden.