Использование API common Dialog в базе данных в Access 2003 или Access 2007
Исходный номер базы знаний: 888695
ВВЕДЕНИЕ
В этой статье описывается, как использовать API common dialog в Microsoft Office Access 2003 или Microsoft Office Access 2007 для замены функций общего диалогового окна. Эта функция включена только в выпуск Microsoft Office 2000 developer или Microsoft Office XP Developer Edition.
Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.
Действия по замене функции "Общий диалог"
Microsoft Office Access 2003
В Access откройте пример базы данных с именем Northwind.mdb.
Примечание.
База данных Northwind.mdb для Access 2003 обычно находится в папке
C:\Program Files\Microsoft Office\OFFICE11\Samples
.В разделе Объекты в окне Базы данных Northwind щелкните Формы .
На панели инструментов окна База данных нажмите кнопку Создать.
В диалоговом окне Создать форму щелкните Конструктор, а затем нажмите кнопку ОК.
Добавьте текстовое поле в Form1, щелкните его правой кнопкой мыши и выберите пункт Свойства.
Перейдите на вкладку Все , щелкните Имя, введитеText1 и закройте диалоговое окно Свойства .
Щелкните правой кнопкой мыши элемент управления меткой, связанный с текстовым полем Text1 , выберите пункт Свойства и перейдите на вкладку Все .
Щелкните Заголовок, введите Текст1 и закройте диалоговое окно Свойства .
Добавьте кнопку команды в Form1, щелкните ее правой кнопкой мыши, выберите пункт Свойства, выберите имя, введите Command1, выберите пункт Заголовок, а затем введите Command1.
Перейдите на вкладку Событие, щелкните [Процедура события] в списке On Click (Щелкните), а затем нажмите кнопку с многоточием, чтобы запустить Редактор Microsoft Visual Basic.
Измените код в процедуре Command1_Click следующим образом:
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
В меню Вставка выберите модуль и вставьте следующий код в Module1:
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Function LaunchCD(strform As Form) As String Dim OpenFile As OPENFILENAME Dim lReturn As Long Dim sFilter As String OpenFile.lStructSize = Len(OpenFile) OpenFile.hwndOwner = strform.hwnd sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _ "JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) OpenFile.lpstrFilter = sFilter OpenFile.nFilterIndex = 1 OpenFile.lpstrFile = String(257, 0) OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1 OpenFile.lpstrFileTitle = OpenFile.lpstrFile OpenFile.nMaxFileTitle = OpenFile.nMaxFile OpenFile.lpstrInitialDir = "C:\" OpenFile.lpstrTitle = "Select a file using the Common Dialog DLL" OpenFile.flags = 0 lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then MsgBox "A file was not selected!", vbInformation, _ "Select a file using the Common Dialog DLL" Else LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1)) End If End Function
В меню Отладка выберите команду Скомпилировать Northwind и закройте Редактор Visual Basic.
В меню Вид выберите пункт Представление формы.
Щелкните Command1 и щелкните файл в открывавшемся окне.
Путь к файлу отображается в текстовом поле Text1 .
Microsoft Office Access 2007
В Access 2007 откройте пример базы данных с именем Northwind.accdb.
На вкладке Создать щелкните Форма в группе Формы .
На вкладке Формат щелкните стрелку вниз под представлением и выберите конструктор.
Добавьте текстовое поле в Form1, щелкните его правой кнопкой мыши и выберите пункт Свойства.
Перейдите на вкладку Все , щелкните Имя и введите Text1.
Щелкните правой кнопкой мыши элемент управления меткой, связанный с текстовым полем Text1 , выберите пункт Свойства и перейдите на вкладку Все .
Щелкните Заголовок и введите Text1.
Добавьте кнопку команды в Form1, щелкните ее правой кнопкой мыши, выберите пункт Свойства, выберите имя, введите Command1, выберите пункт Заголовок, а затем введите Command1.
Перейдите на вкладку Событие, щелкните [Процедура события] в списке On Click (On Click), а затем нажмите кнопку с многоточием (...), чтобы запустить microsoft Visual Basic Редактор.
Измените код в процедуре Command1_Click так, чтобы он выглядел так, как показано в следующем примере кода.
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
В меню Вставка выберите пункт Модуль, а затем вставьте код, похожий на приведенный ниже пример кода, в Module1.
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Function LaunchCD(strform As Form) As String Dim OpenFile As OPENFILENAME Dim lReturn As Long Dim sFilter As String OpenFile.lStructSize = Len(OpenFile) OpenFile.hwndOwner = strform.hwnd sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _ "JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) OpenFile.lpstrFilter = sFilter OpenFile.nFilterIndex = 1 OpenFile.lpstrFile = String(257, 0) OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1 OpenFile.lpstrFileTitle = OpenFile.lpstrFile OpenFile.nMaxFileTitle = OpenFile.nMaxFile OpenFile.lpstrInitialDir = "C:\" OpenFile.lpstrTitle = "Select a file using the Common Dialog DLL" OpenFile.flags = 0 lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then MsgBox "A file was not selected!", vbInformation, _ "Select a file using the Common Dialog DLL" Else LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1)) End If End Function
В меню Отладка выберите команду Скомпилировать Northwind и закройте Редактор Visual Basic.
На вкладке Формат щелкните стрелку вниз под представлением и выберите пункт Представление формы.
Щелкните Command1 и щелкните файл в открывавшемся окне.
Путь к файлу отображается в поле Текст1 .
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по