Comment utiliser l’API Common Dialog dans une base de données dans Access 2003 ou Access 2007

Numéro de la base de connaissances d’origine : 888695

INTRODUCTION

Cet article explique comment utiliser l’API Boîte de dialogue commune dans Microsoft Office Access 2003 ou Microsoft Office Access 2007 pour remplacer la fonctionnalité Boîte de dialogue commune. La fonctionnalité est incluse uniquement dans Microsoft Office 2000 Developer Edition ou dans Microsoft Office XP Developer Edition.

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d’une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

Étapes de remplacement de la fonctionnalité de boîte de dialogue commune

Microsoft Office Access 2003

  1. Dans Access, ouvrez l’exemple de base de données nommé Northwind.mdb.

    Remarque

    La base de données Northwind.mdb pour Access 2003 se trouve généralement dans le C:\Program Files\Microsoft Office\OFFICE11\Samples dossier .

  2. Sous Objets dans la fenêtre Base de données Northwind, cliquez sur Formulaires .

  3. Dans la barre d’outils de la fenêtre Base de données , cliquez sur Nouveau.

  4. Dans la boîte de dialogue Nouveau formulaire , cliquez sur Mode Création, puis sur OK.

  5. Ajoutez une zone de texte à Form1, cliquez avec le bouton droit sur la zone de texte, puis cliquez sur Propriétés.

  6. Cliquez sur l’onglet Tout , cliquez sur Nom, tapezText1, puis fermez la boîte de dialogue Propriétés .

  7. Cliquez avec le bouton droit sur le contrôle label associé à la zone de texte Text1 , cliquez sur Propriétés, puis sur l’onglet Tout .

  8. Cliquez sur Légende, tapez Texte1, puis fermez la boîte de dialogue Propriétés .

  9. Ajoutez un bouton de commande à Form1, cliquez avec le bouton droit sur le bouton de commande, cliquez sur Propriétés, cliquez sur Nom, tapez Commande1, cliquez sur Légende, puis tapez Command1.

  10. Cliquez sur l’onglet Événement, cliquez sur [Procédure événementielle] dans la liste Sur clic, puis cliquez sur le bouton de sélection pour démarrer l’Rédacteur Microsoft Visual Basic.

  11. Modifiez le code de la procédure Command1_Click comme suit :

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. Dans le menu Insérer , cliquez sur Module, puis insérez le code suivant dans 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
    
  13. Dans le menu Déboguer, cliquez sur Compiler Northwind, puis fermez le Rédacteur Visual Basic.

  14. Dans le menu Affichage , cliquez sur Mode Formulaire.

  15. Cliquez sur Commande1, puis sur un fichier dans la fenêtre qui s’ouvre.

    Le chemin d’accès du fichier s’affiche dans la zone de texte Text1 .

Microsoft Office Access 2007

  1. Dans Access 2007, ouvrez l’exemple de base de données nommé Northwind.accdb.

  2. Sous l’onglet Créer , cliquez sur Formulaire dans le groupe Formulaires .

  3. Sous l’onglet Format , cliquez sur la flèche vers le bas sous Affichage, puis cliquez sur Mode Création.

  4. Ajoutez une zone de texte à Form1, cliquez avec le bouton droit sur la zone de texte, puis cliquez sur Propriétés.

  5. Cliquez sur l’onglet Tout , cliquez sur Nom, puis tapez Texte1.

  6. Cliquez avec le bouton droit sur le contrôle label associé à la zone de texte Text1 , cliquez sur Propriétés, puis sur l’onglet Tout .

  7. Cliquez sur Légende, puis tapez Texte1.

  8. Ajoutez un bouton de commande à Form1, cliquez avec le bouton droit sur le bouton de commande, cliquez sur Propriétés, cliquez sur Nom, tapez Commande1, cliquez sur Légende, puis tapez Command1.

  9. Cliquez sur l’onglet Événement, cliquez sur [Procédure événementielle] dans la liste Sur clic, puis cliquez sur le bouton de sélection (...) pour démarrer l’Rédacteur Microsoft Visual Basic.

  10. Modifiez le code dans la procédure Command1_Click pour qu’il ressemble à l’exemple de code suivant.

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  11. Dans le menu Insertion , cliquez sur Module, puis insérez du code qui ressemble à l’exemple de code suivant dans 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. Dans le menu Déboguer, cliquez sur Compiler Northwind, puis fermez le Rédacteur Visual Basic.

  13. Sous l’onglet Format , cliquez sur la flèche vers le bas sous Affichage, puis cliquez sur Mode Formulaire.

  14. Cliquez sur Commande1, puis sur un fichier dans la fenêtre qui s’ouvre.

    Le chemin d’accès du fichier s’affiche dans la zone Texte1 .