Solved

How to export Access contact record to vCard?

Posted on 2004-09-24
13
3,244 Views
Last Modified: 2016-11-19
Hello - how would one go about exporting a typical contact record from an Access (XP) table to a vCard?

Thanks

Mark
0
Comment
Question by:mlagrange
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 3
  • +1
13 Comments
 
LVL 41

Expert Comment

by:shanesuebsahakarn
ID: 12144337
Can you export it as a CSV file (File->Export) and import it into your target application?
0
 

Author Comment

by:mlagrange
ID: 12144737
Well, my impression of the whole vCard thing was that all the recepient had to do was click on the vCard icon, and it would automatically import the contact info into Outlook.

After looking at the contents of a .vcf file, I can imagine that there must be some rules about field names, multiple values for a given field, etc.

Not to mention how to attach it to an e-mail so it would get processed like a vCard...

That's what I'm really looking for

Thanks

Mark
0
 
LVL 41

Expert Comment

by:shanesuebsahakarn
ID: 12144760
Sorry, I'm not really familiar with vcf files. You'd have to write some kind of VBA function to export the record in the format desired, but I don't know of any pre-written code offhand. How familiar are you with VBA coding?
0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 

Author Comment

by:mlagrange
ID: 12144868
familiar with VBA coding: yes... oh, yes...
familiar with vcf files: no
0
 
LVL 15

Expert Comment

by:will_scarlet7
ID: 12145041
Here are the official specs for vCards:

http://www.imc.org/pdi/
0
 
LVL 41

Expert Comment

by:shanesuebsahakarn
ID: 12145940
Hmm, it seems that Access 2003 can export directly to a .vcf file, but Access 2002 (XP) can't. Briefly scanning the spec, it seems reasonably straightforwards to create one programmatically but I don't really have time to investigate the full spec document.

In brief though, you'd open a file programmatically, open a recordset with the record you want to export and then write out each field in the format required - placing the header and footer information as required.
0
 
LVL 15

Accepted Solution

by:
will_scarlet7 earned 250 total points
ID: 12146206
I would reccomend you either create a VCard file from Outllook or just view one that you have and copy the template in your code to determine to properties that you need to export. I took one (it had bare minimum data) and copied it to create the following:

Sub CreateVCard()

    Dim c As ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim vcInfo As String
   
    'Set the provider name
    Set c = CurrentProject.Connection
    'Open a recordset with a keyset cursor
    rs.Open "Select Top 3 * From [CompiledInfo]", c, adOpenKeyset, adLockPessimistic

    If Not rs.EOF And Not rs.BOF Then
        rs.MoveFirst
        Do Until rs.EOF
            vcInfo = "BEGIN:VCARD" & vbCrLf
            vcInfo = vcInfo & "VERSION:2.1" & vbCrLf
            vcInfo = vcInfo & "N:" & rs!LastName & ";" & rs!Title & rs!FirstName & rs!MiddleName & ";" & rs!FullName & vbCrLf
            vcInfo = vcInfo & "FN:" & rs!FullName & vbCrLf
            vcInfo = vcInfo & "EMAIL;PREF;INTERNET:" & rs!Email1Address & vbCrLf
            vcInfo = vcInfo & "END:VCARD"
            Call PrintVCard(vcInfo, rs!FullName)
            rs.MoveNext
        Loop
    End If

    rs.Close
    Set rs = Nothing
    Set c = Nothing
   
End Sub

Function PrintVCard(vcInfo As String, flName As String)
    Open "C:\Temp\" & flName & ".vcf" For Output As #1    ' Open file for output.
    Print #1, vcInfo
    Close #1
End Function
0
 

Author Comment

by:mlagrange
ID: 12147415
Great, and thank you.

Now, is there a trick to get this attached to a mail message, so that it functions like a vCard for the recipient?

Thanks

Mark
0
 
LVL 15

Expert Comment

by:will_scarlet7
ID: 12147997
The  code above creates a VCard, so all you'd need to do is write the code for creating youremail object then add the attachment sort of like this:

myMailObject.Attachments.add "C:\Temp\ & flName & ".vcf"
0
 
LVL 15

Expert Comment

by:will_scarlet7
ID: 12149579
ThanX for the points! Glad I could help.

God bless!

Sam
0
 

Author Comment

by:mlagrange
ID: 12150352
Hey, Thank You!

I'm glad you could help, too!  :-D

Mark
0
 
LVL 15

Expert Comment

by:will_scarlet7
ID: 12150416
I realised I was a little short on help about creating the e-mail. I appologise for that. I was on my way to bed (it was midnight). If you need help creating an e-mail in code let me know and I can post some more details.
0
 

Expert Comment

by:Charles Pendrigh
ID: 41894245
Don't you just love it when a 'Best Solution' award is given to a post which doesn't answer the question.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question