Jak używać interfejsu API wspólnego okna dialogowego w bazie danych programu Access 2003 lub Access 2007
Oryginalny numer KB: 888695
WPROWADZENIE
W tym artykule opisano sposób używania interfejsu API wspólnego okna dialogowego w programie Microsoft Office Access 2003 lub Microsoft Office Access 2007 w celu zastąpienia funkcji wspólnego okna dialogowego. Ta funkcja jest dostępna tylko w wersji Microsoft Office 2000 Developer Edition lub Microsoft Office XP Developer Edition.
Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.
Kroki zastępowania funkcji wspólnego okna dialogowego
Microsoft Office Access 2003
W programie Access otwórz przykładową bazę danych o nazwie Northwind.mdb.
Uwaga
Baza danych Northwind.mdb programu Access 2003 zwykle znajduje się w folderze
C:\Program Files\Microsoft Office\OFFICE11\Samples
.W obszarze Obiekty w oknie Baza danych Northwind kliknij pozycję Formularze .
Na pasku narzędzi okna Baza danych kliknij pozycję Nowy.
W oknie dialogowym Nowy formularz kliknij pozycję Widok projektu, a następnie kliknij przycisk OK.
Dodaj pole tekstowe do formularza Form1, kliknij prawym przyciskiem myszy pole tekstowe, a następnie kliknij pozycję Właściwości.
Kliknij kartę Wszystkie , kliknij pozycję Nazwa, wpiszTekst1, a następnie zamknij okno dialogowe Właściwości .
Kliknij prawym przyciskiem myszy kontrolkę etykiety skojarzoną z polem tekstowym Text1 , kliknij pozycję Właściwości, a następnie kliknij kartę Wszystkie .
Kliknij pozycję Podpis, wpisz Tekst1, a następnie zamknij okno dialogowe Właściwości .
Dodaj przycisk polecenia do formularza Form1, kliknij prawym przyciskiem myszy przycisk polecenia, kliknij pozycję Właściwości, kliknij pozycję Nazwa, wpisz polecenie Command1, kliknij pozycję Podpis, a następnie wpisz polecenie Command1.
Kliknij kartę Zdarzenie, kliknij pozycję [Procedura zdarzeń]na liście Kliknięcie, a następnie kliknij przycisk wielokropka, aby uruchomić Redaktor Microsoft Visual Basic.
Zmodyfikuj kod w procedurze Command1_Click na następujące:
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
W menu Wstawianie kliknij pozycję Moduł, a następnie wstaw następujący kod do modułu 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
W menu Debugowanie kliknij pozycję Kompiluj aplikację Northwind, a następnie zamknij Redaktor Visual Basic.
W menu Widok kliknij pozycję Widok formularza.
Kliknij pozycję Command1, a następnie kliknij plik w otwieranym oknie.
Ścieżka pliku zostanie wyświetlona w polu tekstowym Text1 .
Microsoft Office Access 2007
W programie Access 2007 otwórz przykładową bazę danych o nazwie Northwind.accdb.
Na karcie Tworzenie kliknij pozycję Formularz w grupie Formularze .
Na karcie Format kliknij strzałkę w dół poniżej pozycji Widok, a następnie kliknij pozycję Widok projektu.
Dodaj pole tekstowe do formularza Form1, kliknij prawym przyciskiem myszy pole tekstowe, a następnie kliknij pozycję Właściwości.
Kliknij kartę Wszystkie , kliknij pozycję Nazwa, a następnie wpisz Tekst1.
Kliknij prawym przyciskiem myszy kontrolkę etykiety skojarzoną z polem tekstowym Text1 , kliknij pozycję Właściwości, a następnie kliknij kartę Wszystkie .
Kliknij pozycję Podpis, a następnie wpisz Tekst1.
Dodaj przycisk polecenia do formularza Form1, kliknij prawym przyciskiem myszy przycisk polecenia, kliknij pozycję Właściwości, kliknij pozycję Nazwa, wpisz polecenie Command1, kliknij pozycję Podpis, a następnie wpisz polecenie Command1.
Kliknij kartę Zdarzenie, kliknij pozycję [Procedura zdarzeń]na liście Kliknięcie, a następnie kliknij przycisk wielokropka (...), aby uruchomić Redaktor Programu Microsoft Visual Basic.
Zmodyfikuj kod w procedurze Command1_Click, aby przypominał poniższy przykład kodu.
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
W menu Wstaw kliknij pozycję Moduł, a następnie wstaw kod podobny do poniższego przykładu kodu w module 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
W menu Debugowanie kliknij pozycję Kompiluj aplikację Northwind, a następnie zamknij Redaktor Visual Basic.
Na karcie Format kliknij strzałkę w dół poniżej pozycji Widok, a następnie kliknij pozycję Widok formularza.
Kliknij pozycję Command1, a następnie kliknij plik w otwieranym oknie.
Ścieżka pliku zostanie wyświetlona w polu Text1 .
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla