De Common Dialog-API gebruiken in een database in Access 2003 of Access 2007

Origineel KB-nummer: 888695

INLEIDING

In dit artikel wordt beschreven hoe u de Common Dialog API gebruikt in Microsoft Office Access 2003 of in Microsoft Office Access 2007 om de functionaliteit van het algemene dialoogvenster te vervangen. De functionaliteit is alleen opgenomen in de Microsoft Office 2000 Developer Edition of in de Microsoft Office XP Developer Edition.

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

Stappen voor het vervangen van de common dialog-functionaliteit

Microsoft Office Access 2003

  1. Open in Access de voorbeelddatabase met de naam Northwind.mdb.

    Opmerking

    De Northwind.mdb database voor Access 2003 bevindt zich meestal in de C:\Program Files\Microsoft Office\OFFICE11\Samples map.

  2. Klik onder Objecten in het venster Northwind Database op Formulieren .

  3. Klik op de werkbalk van het databasevenster op Nieuw.

  4. Klik in het dialoogvenster Nieuw formulier op Ontwerpweergave en klik vervolgens op OK.

  5. Voeg een tekstvak toe aan Form1, klik met de rechtermuisknop op het tekstvak en klik vervolgens op Eigenschappen.

  6. Klik op het tabblad Alles , klik op Naam, typTekst1 en sluit het dialoogvenster Eigenschappen .

  7. Klik met de rechtermuisknop op het labelbesturingselement dat is gekoppeld aan het tekstvak Tekst1 , klik op Eigenschappen en klik vervolgens op het tabblad Alles .

  8. Klik op Bijschrift, typ Tekst1 en sluit het dialoogvenster Eigenschappen .

  9. Voeg een opdrachtknop toe aan Form1, klik met de rechtermuisknop op de opdrachtknop, klik op Eigenschappen, klik op Naam, typ Command1, klik op Bijschrift en typ vervolgens Command1.

  10. Klik op het tabblad Gebeurtenis, klik op [Gebeurtenisprocedure] in de lijst Bij klikken en klik vervolgens op het beletselteken om de Microsoft Visual Basic-Editor te starten.

  11. Wijzig de code in de Command1_Click procedure in het volgende:

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. Klik in het menu Invoegen op Module en voeg vervolgens de volgende code in Module1 in:

    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
    
  13. Klik in het menu Foutopsporing op Northwind compileren en sluit vervolgens de Visual Basic-Editor.

  14. Klik in het menu Beeld op Formulierweergave.

  15. Klik op Command1 en klik vervolgens op een bestand in het venster dat wordt geopend.

    Het pad van het bestand wordt weergegeven in het tekstvak Tekst1 .

Microsoft Office Access 2007

  1. Open in Access 2007 de voorbeelddatabase met de naam Northwind.accdb.

  2. Klik op het tabblad Maken op Formulier in de groep Formulieren .

  3. Klik op het tabblad Opmaak op de pijl-omlaag onder Weergave en klik vervolgens op Ontwerpweergave.

  4. Voeg een tekstvak toe aan Form1, klik met de rechtermuisknop op het tekstvak en klik vervolgens op Eigenschappen.

  5. Klik op het tabblad Alles , klik op Naam en typ tekst1.

  6. Klik met de rechtermuisknop op het labelbesturingselement dat is gekoppeld aan het tekstvak Tekst1 , klik op Eigenschappen en klik vervolgens op het tabblad Alles .

  7. Klik op Bijschrift en typ tekst1.

  8. Voeg een opdrachtknop toe aan Form1, klik met de rechtermuisknop op de opdrachtknop, klik op Eigenschappen, klik op Naam, typ Command1, klik op Bijschrift en typ vervolgens Command1.

  9. Klik op het tabblad Gebeurtenis, klik op [Gebeurtenisprocedure] in de lijst Bij klikken en klik vervolgens op het beletselteken (...) om de Microsoft Visual Basic-Editor te starten.

  10. Wijzig de code in de Command1_Click procedure zodat deze lijkt op het volgende codevoorbeeld.

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  11. Klik in het menu Invoegen op Module en voeg vervolgens code in die lijkt op het volgende codevoorbeeld in 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
    
  12. Klik in het menu Foutopsporing op Northwind compileren en sluit vervolgens de Visual Basic-Editor.

  13. Klik op het tabblad Opmaak op de pijl-omlaag onder Weergave en klik vervolgens op Formulierweergave.

  14. Klik op Command1 en klik vervolgens op een bestand in het venster dat wordt geopend.

    Het pad van het bestand wordt weergegeven in het vak Tekst1 .