Solved

How to export Access contact record to vCard?

Posted on 2004-09-24
13
2,941 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
  • 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
 

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
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
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

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

In the article entitled Working with Objects – Part 1 (http://www.experts-exchange.com/Microsoft/Development/MS_Access/A_4942-Working-with-Objects-Part-1.html), you learned the basics of working with objects, properties, methods, and events. In Work…
Introduction The Visual Basic for Applications (VBA) language is at the heart of every application that you write. It is your key to taking Access beyond the world of wizards into a world where anything is possible. This article introduces you to…
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 how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

708 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now