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
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 .En Objetos de la ventana Base de datos de Northwind, haga clic en Formularios .
En la barra de herramientas de la ventana Base de datos , haga clic en Nuevo.
En el cuadro de diálogo Nuevo formulario , haga clic en Vista diseñoy, a continuación, haga clic en Aceptar.
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.
Haga clic en la pestaña Todo , haga clic en Nombre, escribaText1y, a continuación, cierre el cuadro de diálogo Propiedades .
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 .
Haga clic en Título, escriba Text1 y, a continuación, cierre el cuadro de diálogo Propiedades .
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.
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.
Modifique el código del procedimiento de Command1_Click a lo siguiente:
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
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
En el menú Depurar, haga clic en Compilar Northwind y, a continuación, cierre la Editor de Visual Basic.
En el menú Ver , haga clic en Vista de formulario.
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
En Access 2007, abra la base de datos de ejemplo denominada Northwind.accdb.
En la pestaña Crear , haga clic en Formulario en el grupo Formularios .
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.
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.
Haga clic en la pestaña Todo , haga clic en Nombrey, a continuación, escriba Text1.
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 .
Haga clic en Títuloy, a continuación, escriba Text1.
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.
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.
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
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
En el menú Depurar, haga clic en Compilar Northwind y, a continuación, cierre la Editor de Visual Basic.
En la pestaña Formato , haga clic en la flecha abajo debajo de Vista y, a continuación, haga clic en Vista de formulario.
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 .
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de