Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поле со списком... / 2 сообщений из 2, страница 1 из 1
06.02.2003, 15:14
    #32102368
Kroy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле со списком...
Может кто подскажет?
Как в Access97 в поле со списком в качестве источника строк вывести адресатов из Адресной Книги?
Если кто реализовывал, напишите пожалуйста код.
Заранее большое спасибо!!
...
Рейтинг: 0 / 0
08.02.2003, 11:25
    #32103366
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле со списком...
Посмотрите
http://www.microsoft.com/downloads/details.aspx?FamilyID=a96b2b7b-cf00-4606-b196-0d9d198ba6e2&DisplayLang=en

А еще из адресной книги я вытаскивал имена, способом,
предложенным Lyle Fairfield, адреса не пробовал, но думаю, что можно.
Но процесс достаточно долгий.
Как это вставлять в поле со списком, я думаю, сами сделаете.

Private 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&, ByVal UIParam&, ByVal UserName$, ByVal Flags&, ByVal Reserved&, Recipient As MapiRecip) As Long

Const FullPath As String = "c:\Documents and Settings\Administrator\Application Data\Microsoft\Address Book\Administrator.wab"

Public Sub GetNames()
Dim BeginningPosition As Long
Dim Buffer As String
Dim Counter As Long
Dim EndPosition As Long
Dim FileHandle As Long
Dim MR As MapiRecip
Dim Name As String
Dim TruncatePosition As Long
FileHandle = FreeFile()
Open FullPath For Binary As #FileHandle
Buffer = Input(FileLen(FullPath), #FileHandle)
Close #FileHandle
Buffer = StrConv(Buffer, vbFromUnicode)
BeginningPosition = InStr(BeginningPosition + 1, Buffer, ":")
BeginningPosition = InStr(BeginningPosition + 1, Buffer, ":")
TruncatePosition = InStr(BeginningPosition + 1, Buffer, ":")
Do While EndPosition < TruncatePosition
EndPosition = InStr(BeginningPosition + 1, Buffer, String(2, vbNullChar))
MAPIResolveName 0, 0, Mid$(Buffer, BeginningPosition + 5, EndPosition - BeginningPosition - 1), 0, 0, MR
With MR
If Name <> .Name Then
Name = .Name
Counter = Counter + 1
Debug.Print Counter, Name
End If
End With
BeginningPosition = EndPosition + 2
Loop
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поле со списком... / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]