Uso de Common Dialog API en una base de datos en Access 2003 o Access 2007

Número de KB original: 888695

INTRODUCCIÓN

En este artículo se describe cómo usar Common Dialog API en Microsoft Office Access 2003 o en Microsoft Office Access 2007 para reemplazar la funcionalidad del cuadro de diálogo común. La funcionalidad solo se incluye en Microsoft Office 2000 Developer Edition o en Microsoft Office XP Developer Edition.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

Pasos para reemplazar la funcionalidad del cuadro de diálogo común

Microsoft Office Access 2003

  1. En Access, abra la base de datos de ejemplo denominada Northwind.mdb.

    Nota:

    La base de datos Northwind.mdb de Access 2003 se encuentra normalmente en la C:\Program Files\Microsoft Office\OFFICE11\Samples carpeta .

  2. En Objetos de la ventana Base de datos de Northwind, haga clic en Formularios .

  3. En la barra de herramientas de la ventana Base de datos , haga clic en Nuevo.

  4. En el cuadro de diálogo Nuevo formulario , haga clic en Vista diseñoy, a continuación, haga clic en Aceptar.

  5. Agregue un cuadro de texto a Form1, haga clic con el botón derecho en el cuadro de texto y, a continuación, haga clic en Propiedades.

  6. Haga clic en la pestaña Todo , haga clic en Nombre, escribaText1y, a continuación, cierre el cuadro de diálogo Propiedades .

  7. Haga clic con el botón derecho en el control de etiqueta asociado al cuadro de texto Text1 , haga clic en Propiedadesy, a continuación, haga clic en la pestaña Todo .

  8. Haga clic en Título, escriba Text1 y, a continuación, cierre el cuadro de diálogo Propiedades .

  9. Agregue un botón de comando a Form1, haga clic con el botón derecho en el botón de comando, haga clic en Propiedades, haga clic en Nombre, escriba Comando1, haga clic en Títuloy, a continuación, escriba Comando1.

  10. Haga clic en la pestaña Evento, haga clic en [Procedimiento de evento] en la lista Al hacer clic y, a continuación, haga clic en el botón de puntos suspensivos para iniciar la Editor de Microsoft Visual Basic.

  11. Modifique el código del procedimiento de Command1_Click a lo siguiente:

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. En el menú Insertar , haga clic en Móduloy, a continuación, inserte el código siguiente en 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. En el menú Depurar, haga clic en Compilar Northwind y, a continuación, cierre la Editor de Visual Basic.

  14. En el menú Ver , haga clic en Vista de formulario.

  15. Haga clic en Comando1 y, a continuación, haga clic en un archivo en la ventana que se abre.

    La ruta de acceso del archivo aparece en el cuadro de texto Text1 .

Microsoft Office Access 2007

  1. En Access 2007, abra la base de datos de ejemplo denominada Northwind.accdb.

  2. En la pestaña Crear , haga clic en Formulario en el grupo Formularios .

  3. En la pestaña Formato , haga clic en la flecha abajo debajo de Vista y, a continuación, haga clic en Vista de diseño.

  4. Agregue un cuadro de texto a Form1, haga clic con el botón derecho en el cuadro de texto y, a continuación, haga clic en Propiedades.

  5. Haga clic en la pestaña Todo , haga clic en Nombrey, a continuación, escriba Text1.

  6. Haga clic con el botón derecho en el control de etiqueta asociado al cuadro de texto Text1 , haga clic en Propiedadesy, a continuación, haga clic en la pestaña Todo .

  7. Haga clic en Títuloy, a continuación, escriba Text1.

  8. Agregue un botón de comando a Form1, haga clic con el botón derecho en el botón de comando, haga clic en Propiedades, haga clic en Nombre, escriba Comando1, haga clic en Títuloy, a continuación, escriba Comando1.

  9. Haga clic en la pestaña Evento, haga clic en [Procedimiento de evento] en la lista Al hacer clic y, a continuación, haga clic en el botón de puntos suspensivos (...) para iniciar el Editor de Microsoft Visual Basic.

  10. Modifique el código del procedimiento Command1_Click para que se parezca al ejemplo de código siguiente.

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  11. En el menú Insertar , haga clic en Móduloy, a continuación, inserte código similar al ejemplo de código siguiente en 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. En el menú Depurar, haga clic en Compilar Northwind y, a continuación, cierre la Editor de Visual Basic.

  13. En la pestaña Formato , haga clic en la flecha abajo debajo de Vista y, a continuación, haga clic en Vista de formulario.

  14. Haga clic en Comando1 y, a continuación, haga clic en un archivo en la ventana que se abre.

    La ruta de acceso del archivo aparece en el cuadro Text1 .