By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,190 Members | 769 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,190 IT Pros & Developers. It's quick & easy.

OE Address Book interface not too friendly with exporting - Seeking A97 solution to read it

P: n/a
MLH
Anyone ever experiement importing WAB data
directly into A97? Would lke a chance to look
at any work done in this arena.
Apr 8 '06 #1
Share this Question
Share on Google+
11 Replies


P: n/a
MLH
With respect to this objective, has anyone ever
tried the A97 database posted at
http://www.spahn-web.de/sonstiges/oekontaktedemo/
< OEKontakteDemo.zip (178 KB) >

???

I couldn't get it to work for me.
Apr 8 '06 #2

P: n/a
On Sat, 08 Apr 2006 15:03:31 -0400, MLH <CR**@NorthState.net> wrote:
Anyone ever experiement importing WAB data
directly into A97? Would lke a chance to look
at any work done in this arena.


Out of interest did a google groups search on "wab oe a97" and the first page started :

OE Address Book interface not too friendly with exporting ...
Anyone ever experiement importing WAB data directly into A97? Would
lke a chance to look at any work done in this arena.
comp.databases.ms-access - Apr 8, 11:03 pm by MLH - 1 message - 1 author

Access and Windows Address Book
Is there a way to access the windows address book (.WAB) from A97? I'd like to
synchronise addresses in my A97 application with the WAB from Outlook Express. ...
microsoft.public.access.modulesdaovba - Feb 22 2001, 11:10 am by Christoph Keller - 1 message - 1
author

mds87.jpg, part 2/4
.... W]?U<TIU72J*K'=._W M:Z67_ [=#]#_ (%_&=_%WAB#5VE:/S ... 2%UF9IM2O1O4W-Q\FYR"Q"
M-$%"\85LY[<>L^&[NST6R,5B&"*OE*67<6 ... Y6FSU%AO834).\&]O/7:^WT?2_H:?A_7M1\) MW$=M?:A97] ...
alt.sex.fetish.feet - Mar 22 1995, 5:19 am by MDoc - 1 message - 1 author

Best nudists photos series - nl_059.jpg
.... PB[W2)RR_$JG_A% M<!&DMW;^X3/M:6THHJJ.D>%>`ICEOBP[KU+A97>SPK(MW ... GA"513 MMQB+7\ZN\BO*
H2#(D'4PR;5P6F*:WAB;N4%++,^Q& ... H(G`VJTCG2*YB>9.9!(M0@0AL MZ<S:O3A71KJ/]OE.V5\"5W ...
alt.sex.wanted.escorts.ads - Dec 2 1999, 12:19 am by Dr. N - 1 message - 1 author

Nasty Story: (M/fffff Extreme NC, Snuff, Torture, Tots, Blood ...
.... K`*?;1.*R7G1&E= M5U5/K1!$P.2B(\(7CJNI(_<7.\WAB$GOUJ)69V ... H+I9=^:S=%9AOOD$*QDW[2+BSDTLV?
6XUEZ/FL154F1 M(3>OE=5<(D8T ... 0^R>E/("7_FK+EP]C<8JESTW >MB?YP@<A97(QJNR8W3G:A+ ...
alt.sex.bondage - Nov 30 1996, 4:42 pm by doc - 1 message - 1 author

Um!

You can write something yourself based on:

Exporting OE's Addressbook (Text/CSV)
http://www.steve.maurer.net/tutorial...essbookCSV.htm

cheers

Apr 8 '06 #3

P: n/a
MLH <CR**@NorthState.net> wrote in news:h15g321qsb694vne30imjdms8d6jn1agea@
4ax.com:
With respect to this objective, has anyone ever
tried the A97 database posted at
http://www.spahn-web.de/sonstiges/oekontaktedemo/
< OEKontakteDemo.zip (178 KB) >

???

I couldn't get it to work for me.


I tried it before it existed.

--
Lyle Fairfield
Apr 8 '06 #4

P: n/a
MLH
Bully for you. My searches turned up some promising
gems. One called useOEWAB.dll, I cannot seem to
find anything about. Anyone know of it? I'm seeking
documentation on it. I can't find anything.
Apr 8 '06 #5

P: n/a
As usual, we have to ask you, wtf do you want to do? If you want to
find out Fred Jones WAB address and Fred Jones is in your WAB then this
(first posted may years ago) may do it.

Option Explicit

Type MAPIRecip
Reserved As Long
RecipClass As Long
Name As String
Address As String
EIDSize As Long
EntryID As String
End Type

Declare Function MAPIResolveName _
Lib "c:\program files\outlook express\msoe.dll" _
Alias "BMAPIResolveName" ( _
ByVal Session As Long, _
ByVal UIParam As Long, _
ByVal UserName As String, _
ByVal Flags As Long, _
ByVal Reserved As Long, _
ByVal Recipient As Long) As Long

Public Function GetEmailAddressThroughOE(ByVal strName As String) As
String
' should bring up resolve name dialog if name not found
Dim r As MAPIRecip
MAPIResolveName 0, 0, strName, MAPI_DIALOG, 0, VarPtr(r)
GetEmailAddressThroughOE = StrConv(r.Address, vbUnicode)
End Function

Public Sub Test()
Debug.Print GetEmailAddressThroughOE("Candace Bergen")
End Sub

Apr 8 '06 #6

P: n/a
rkc
Lyle Fairfield wrote:
MLH <CR**@NorthState.net> wrote in news:h15g321qsb694vne30imjdms8d6jn1agea@
4ax.com:

With respect to this objective, has anyone ever
tried the A97 database posted at
http://www.spahn-web.de/sonstiges/oekontaktedemo/
< OEKontakteDemo.zip (178 KB) >

???

I couldn't get it to work for me.

I tried it before it existed.


One of the many modules in my testingLylesShit.mdb file.

Apr 8 '06 #7

P: n/a
MLH
Sorry about the 'usual' - my mistake. Here is precisely
what I want to do. I want to modify Michael Spahn's
global module (below) enabling it to extract the WAB
file [business address | city | state | zip] fields. Trouble
is - I don't know anything about useOEWAB.dll

I thought lines like
Private Declare Function oe_getWABAddress Lib "useOEWAB.dll" Alias
"getWABAddress" (ByVal idx As Long, ByVal strBuffer As String) As Long
Private Declare Function oe_getWABPhone Lib "useOEWAB.dll" Alias
"getWABPhone" (ByVal idx As Long, ByVal strBuffer As String) As Long
Private Declare Function oe_getWABZipCode Lib "useOEWAB.dll" Alias
"getWABZipCode" (ByVal idx As Long, ByVal strBuffer As String) As Long
would likely be supported - in the useOEWAB library - I just don't
know.

Michael's complete OEKontakteDemo.zip (178 KB) file can be found at
http://www.spahn-web.de/sonstiges/oekontaktedemo/

Option Compare Database
Option Explicit

'
+-------------------------------------------------------------------------------
' | Zugriff auf "Address Book"-Kontakte von "Outlook Express" via
API-Calls
'
+-------------------------------------------------------------------------------
' |
' | Für den Zugriff auf die Outlook-Express-Kontakte wird die eine
zusätzliche
' | DLL-Datei benötigt:
' |
' | - Die DLL-Datei "useOEWAB.dll" muß gefunden werden, d.h. daß sie
' | nötigenfalls in den Pfad gesetzt oder in das Windows-System-
' | Verzeichnis kopiert werden muß.
' |
'
+-------------------------------------------------------------------------------
' |
' | Hinter der hier verwendeten DLL und dieser Demo-Datenbank stand
nicht die
' | Intension alle Funktionen des Adressbuches zu kapseln, sondern auf
ein paar
' | wenige Felder des Standard-Adressbuches möglichst simpel
zuzugreifen.
' |
' | Prinzipiell könnte man die DLL um Zugriffsmöglichkeiten für alle
Felder des
' | Adressbuches erweitern, sowie schreibende Zugriffe und das Löschen
und Neu-
' | anlegen von Kontakten.
' |
' | Aber da ich eben nur einige wenige Funktionalitäten benötigt habe,
habe ich
' | es auch dabei belassen. :-)
' |
' | Die DLL entstand sozusagen nur aus der Notwendigkeit heraus, daß
Outlook-
' | Express im Gegensatz zu Outlook keine Automation unterstützt. :-(
' |
'
+-------------------------------------------------------------------------------
' |
' | Diese Access97-Demo-Datenbank, der darin enthaltene Code sowie die
DLL-Datei
' | "useOEWAB.dll" dürfen frei weitergegeben werden, solange keine der
' | Dateien verändert und/oder der Copyright-Hinweis entfernt wird.
' |
' | Eine Nutzung des Codes in eigenen Programmen ist gestattet,
solange Module
' | vollständig(!) und unverändert(!) übernommen werden und somit auch
der
' | Copyright-Hinweis unverändert bestehen bleibt.
' |
' | Michael Spahn,
' | sp***@michael-spahn.de
' |
'
+-------------------------------------------------------------------------------
' | (C) 01.03.2002, Michael Spahn
'
+-------------------------------------------------------------------------------

'DLL-Deklarationen:
'------------------

Private Declare Function oe_initWAB Lib "useOEWAB.dll" Alias
"initUseOfWAB" () As Long
Private Declare Sub oe_endWAB Lib "useOEWAB.dll" Alias
"endUseOfWAB" ()
Private Declare Function oe_getWABDLLInfo Lib "useOEWAB.dll" Alias
"getWABDLLInfo" (ByVal strBuffer As String) As Long
Private Declare Function oe_getWABStdFile Lib "useOEWAB.dll" Alias
"getWABStdFile" (ByVal strBuffer As String) As Long
Private Declare Function oe_getWABCount Lib "useOEWAB.dll" Alias
"getWABCount" () As Long
Private Declare Function oe_getWABName Lib "useOEWAB.dll" Alias
"getWABName" (ByVal idx As Long, ByVal strBuffer As String) As Long
Private Declare Function oe_getWABEMail Lib "useOEWAB.dll" Alias
"getWABEMail" (ByVal idx As Long, ByVal strBuffer As String) As Long
Private Declare Function oe_getWABHomepage Lib "useOEWAB.dll"
Alias "getWABHomepage" (ByVal idx As Long, ByVal strBuffer As String)
As Long

Public Function initWAB() As Boolean
'--------------------------------------------------------------------------------
' Initialisierung der DLL, Öffnen des Standard-Adressbuches.
' Gibt true zurück, falls erfolgreich, sonst false.
'
' Anmerkung: Falls eine Initialisierung bereits erfolgreich
stattgefunden hat, so
' gelingt keine weitere Initialisierung bevor nicht mit endWAB das
Standard-
' Adressbuch wieder geschlossen wurde.
'
' Returncodes von "oe_initWAB":
' 0 = Standard-Adressbuch neu geöffnet
' -1 = Standard-Adressbuch ist bereits geöffnet

'--------------------------------------------------------------------------------

Dim intResult As Long

intResult = oe_initWAB()
If intResult = 0 Then
initWAB = True
Else
initWAB = False
End If

End Function

Public Sub endWAB()
'--------------------------------------------------------------------------------
' Schliessen des Standard-Adressbuches, freigeben von Ressourcen

'--------------------------------------------------------------------------------

Call oe_endWAB

End Sub

Public Function getWABDLLInfo() As String
'--------------------------------------------------------------------------------
' About-Information der DLL zurückgeben.
' Gut um zu testen, ob der DLL-Zugriff überhaupt funktioniert,
' da hier keine WAB-Funktionen aufgerufen werden.

'--------------------------------------------------------------------------------

Dim strResult As String
Dim intLaenge As Long

strResult = String$(255, 0)
intLaenge = oe_getWABDLLInfo(strResult)
getWABDLLInfo = Left$(strResult, intLaenge)

End Function

Public Function getWABStdFile() As String
'--------------------------------------------------------------------------------
' Gebe den Dateinamen des geöffneten Standard-Adressbuches zurück.
Dies ist
' eine zusätzliche Angabe, die zum Öffnen des
Standard-Adressbuches nicht
' nötig ist, jedoch evtl. in der Registry an folgender Position
gewonnen
' werden kann:
'
' "HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4 \Wab File Name"
'
' Wird dort keine Angabe gemacht, so kann zwar das
Standard-Adressbuch
' über die API geöffnet werden, aber es ist nicht bekannt, welche
Datei
' dabei geöffnet wird.
'
' Voraussetzung: WAB wurde zuvor erfolgreich initialisiert (siehe
"initWAB")

'--------------------------------------------------------------------------------

Dim strResult As String
Dim intLaenge As Long

strResult = String$(255, 0)
intLaenge = oe_getWABStdFile(strResult)
If intLaenge > 0 Then
getWABStdFile = Left$(strResult, intLaenge)
Else
getWABStdFile = ""
End If

End Function

Public Function getWABCount() As Long
'--------------------------------------------------------------------------------
' Gibt die Anzahl der Einträge im Standard-Adressbuch zurück. Wird
-1 zurück-
' geliefert, so ist momentan kein Adressbuch geöffnet. Man
beachte, daß der
' höchste Index, den man für Zugriffe auf das Standard-Adressbuch
verwenden
' kann die Anzahl der Einträge - 1 ist, da der Index bei 0
beginnt.
'
' Voraussetzung: WAB wurde zuvor erfolgreich initialisiert (siehe
"initWAB")

'--------------------------------------------------------------------------------

Dim intLaenge As Long

intLaenge = oe_getWABCount()
getWABCount = intLaenge

End Function

Public Function getWABName(idx As Long) As String
'--------------------------------------------------------------------------------
' Gebe den Namen des Eintrages mit Index idx zurück.
' Wird der höchste zulässige Index (siehe getWABCount)
überschritten,
' so wird eine leere Zeichenfolge geliefert. Liegt der Index im
erlaubten
' Bereich und wird trotzdem eine leere Zeichenfolge geliefert, so
ist die
' gewünschte Information in dem Eintrag mit dem Index wirklich
nicht vorhanden.
'
' Voraussetzung: WAB wurde zuvor erfolgreich initialisiert (siehe
"initWAB")

'--------------------------------------------------------------------------------

Dim strResult As String
Dim intLaenge As Long

strResult = String$(255, 0)
intLaenge = oe_getWABName(idx, strResult)
If intLaenge > 0 Then
getWABName = Left$(strResult, intLaenge)
Else
getWABName = ""
End If

End Function

Public Function getWABEMail(idx As Long) As String
'--------------------------------------------------------------------------------
' Gebe die E-Mail-Adresse des Eintrages mit Index idx zurück.
' Wird der höchste zulässige Index (siehe getWABCount)
überschritten,
' so wird eine leere Zeichenfolge geliefert. Liegt der Index im
erlaubten
' Bereich und wird trotzdem eine leere Zeichenfolge geliefert, so
ist die
' gewünschte Information in dem Eintrag mit dem Index wirklich
nicht vorhanden.
'
' Voraussetzung: WAB wurde zuvor erfolgreich initialisiert (siehe
"initWAB")

'--------------------------------------------------------------------------------

Dim strResult As String
Dim intLaenge As Long

strResult = String$(255, 0)
intLaenge = oe_getWABEMail(idx, strResult)
If intLaenge > 0 Then
getWABEMail = Left$(strResult, intLaenge)
Else
getWABEMail = ""
End If

End Function

Public Function getWABHomepage(idx As Long) As String
'--------------------------------------------------------------------------------
' Gebe die Homepage-Adresse des Eintrages mit Index idx zurück.
' Wird der höchste zulässige Index (siehe getWABCount)
überschritten,
' so wird eine leere Zeichenfolge geliefert. Liegt der Index im
erlaubten
' Bereich und wird trotzdem eine leere Zeichenfolge geliefert, so
ist die
' gewünschte Information in dem Eintrag mit dem Index wirklich
nicht vorhanden.
'
' Voraussetzung: WAB wurde zuvor erfolgreich initialisiert (siehe
"initWAB")

'--------------------------------------------------------------------------------

Dim strResult As String
Dim intLaenge As Long

strResult = String$(255, 0)
intLaenge = oe_getWABHomepage(idx, strResult)
If intLaenge > 0 Then
getWABHomepage = Left$(strResult, intLaenge)
Else
getWABHomepage = ""
End If

End Function

Apr 8 '06 #8

P: n/a
MLH
rkc - sounds like you've collectied a lot over the years.
Lyle's written some good stuff. No doubt about that.
But I'm trying to extract and modify certain portions of
the OEKontakteDemo.zip database from Michael Spahn's
website, adapting portions of it for my own purpose. It
seems to rely heavily on one main DLL and I can find
no documentation on it. If you have any, I'm interested -
regardless of how old it may be.

Thx.
Apr 8 '06 #9

P: n/a
rkc
MLH wrote:
rkc - sounds like you've collectied a lot over the years.


Nope. Only Lyle's stuff.
Apr 8 '06 #10

P: n/a
MLH
How did you intend MAPI_DIALOG to be defined?
Apr 9 '06 #11

P: n/a
"Lyle Fairfield" <ly***********@aim.com> wrote in
news:11*********************@i39g2000cwa.googlegro ups.com:
As usual, we have to ask you, wtf do you want to do? If you want to
find out Fred Jones WAB address and Fred Jones is in your WAB then this
(first posted may years ago) may do it.

Option Explicit

Type MAPIRecip
Reserved As Long
RecipClass As Long
Name As String
Address As String
EIDSize As Long
EntryID As String
End Type

Declare Function MAPIResolveName _
Lib "c:\program files\outlook express\msoe.dll" _
Alias "BMAPIResolveName" ( _
ByVal Session As Long, _
ByVal UIParam As Long, _
ByVal UserName As String, _
ByVal Flags As Long, _
ByVal Reserved As Long, _
ByVal Recipient As Long) As Long
Private Const MAPI_DIALOG As Long = &H8
Public Function GetEmailAddressThroughOE(ByVal strName As String) As
String
' should bring up resolve name dialog if name not found
Dim r As MAPIRecip
MAPIResolveName 0, 0, strName, MAPI_DIALOG, 0, VarPtr(r)
GetEmailAddressThroughOE = StrConv(r.Address, vbUnicode)
End Function

Public Sub Test()
Debug.Print GetEmailAddressThroughOE("Candace Bergen")
End Sub


--
Lyle Fairfield
Apr 9 '06 #12

This discussion thread is closed

Replies have been disabled for this discussion.