Come usare l'API Common Dialog in un database in Access 2003 o Access 2007

Numero KB originale: 888695

INTRODUZIONE

Questo articolo descrive come usare l'API Common Dialog in Microsoft Office Access 2003 o in Microsoft Office Access 2007 per sostituire la funzionalità Common Dialog Box. La funzionalità è inclusa solo in Microsoft Office 2000 Developer Edition o in Microsoft Office XP Developer Edition.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

Passaggi per sostituire la funzionalità Common Dialog

Microsoft Office Access 2003

  1. In Access aprire il database di esempio denominato Northwind.mdb.

    Nota

    Il database Northwind.mdb per Access 2003 si trova in genere nella C:\Program Files\Microsoft Office\OFFICE11\Samples cartella .

  2. In Oggetti nella finestra Database Northwind fare clic su Moduli .

  3. Nella barra degli strumenti della finestra Database fare clic su Nuovo.

  4. Nella finestra di dialogo Nuovo modulo fare clic su Visualizzazione struttura e quindi su OK.

  5. Aggiungere una casella di testo a Form1, fare clic con il pulsante destro del mouse sulla casella di testo e quindi scegliere Proprietà.

  6. Fare clic sulla scheda Tutto , fare clic su Nome, digitareText1 e quindi chiudere la finestra di dialogo Proprietà .

  7. Fare clic con il pulsante destro del mouse sul controllo etichetta associato alla casella di testo Text1 , scegliere Proprietà e quindi fare clic sulla scheda Tutto .

  8. Fare clic su Didascalia, digitare Text1 e quindi chiudere la finestra di dialogo Proprietà .

  9. Aggiungere un pulsante di comando a Form1, fare clic con il pulsante destro del mouse sul pulsante di comando, scegliere Proprietà, fare clic su Nome, digitare Command1, fare clic su Didascalia e quindi digitare Command1.

  10. Fare clic sulla scheda Evento, fare clic su [Routine evento] nell'elenco Su clic e quindi fare clic sul pulsante con i puntini di sospensione per avviare la Editor di Microsoft Visual Basic.

  11. Modificare il codice nella routine Command1_Click nel modo seguente:

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. Nel menu Inserisci fare clic su Modulo e quindi inserire il codice seguente 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
    
  13. Scegliere Compila Northwind dal menu Debug e quindi chiudere la Editor di Visual Basic.

  14. Scegliere Visualizzazione modulo dal menu Visualizza.

  15. Fare clic su Comando1 e quindi su un file nella finestra visualizzata.

    Il percorso del file viene visualizzato nella casella di testo Text1 .

Microsoft Office Access 2007

  1. In Access 2007 aprire il database di esempio denominato Northwind.accdb.

  2. Nella scheda Crea fare clic su Maschera nel gruppo Moduli .

  3. Nella scheda Formato fare clic sulla freccia giù sotto Visualizza e quindi fare clic su Visualizzazione struttura.

  4. Aggiungere una casella di testo a Form1, fare clic con il pulsante destro del mouse sulla casella di testo e quindi scegliere Proprietà.

  5. Fare clic sulla scheda Tutto , fare clic su Nome e quindi digitare Text1.

  6. Fare clic con il pulsante destro del mouse sul controllo etichetta associato alla casella di testo Text1 , scegliere Proprietà e quindi fare clic sulla scheda Tutto .

  7. Fare clic su Didascalia e quindi digitare Text1.

  8. Aggiungere un pulsante di comando a Form1, fare clic con il pulsante destro del mouse sul pulsante di comando, scegliere Proprietà, fare clic su Nome, digitare Command1, fare clic su Didascalia e quindi digitare Command1.

  9. Fare clic sulla scheda Evento, fare clic su [Routine evento] nell'elenco Su clic e quindi fare clic sul pulsante con i puntini di sospensione (...) per avviare la Editor di Microsoft Visual Basic.

  10. Modificare il codice nella routine Command1_Click in modo analogo all'esempio di codice seguente.

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  11. Nel menu Inserisci fare clic su Modulo e quindi inserire codice simile all'esempio di codice seguente 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. Scegliere Compila Northwind dal menu Debug e quindi chiudere la Editor di Visual Basic.

  13. Nella scheda Formato fare clic sulla freccia giù sotto Visualizza e quindi su Visualizzazione maschera.

  14. Fare clic su Comando1 e quindi su un file nella finestra visualizzata.

    Il percorso del file viene visualizzato nella casella Text1 .