En este artículo se describe cómo utilizar la API de diálogo comunes en Microsoft Office Access 2003 o en Microsoft Office Access 2007 para reemplazar la funcionalidad de cuadro de diálogo comunes que se incluye sólo en Microsoft Office 2000 Developer Edition o en Office XP Developer Edition.
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan 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 que cumplan sus requisitos específicos.
Pasos para reemplazar la funcionalidad de Common Dialog
Microsoft Office Access 2003
En Access, abra la base de datos ejemplo que se denomina Neptuno.mdb.
Nota Normalmente se encuentra la base de datos Neptuno.mdb para Access 2003 en Office\OFFICE11\Samples de programa\Microsoft c:\Archivos carpeta.
Bajo objetos en la ventana base de datos Neptuno, 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ño y, a continuación, haga clic en Aceptar .
Agregue un cuadro de texto a Form1, haga clic con el botón secundario del mouse en el cuadro de texto y, a continuación, haga clic en Propiedades .
Haga clic en la ficha todas , haga clic en nombre , escriba Text1 y, a continuación, cerrar el cuadro de diálogo de Propiedades .
Haga clic con el botón secundario en el control de etiqueta que está asociado con el cuadro de texto Text1 , haga clic en Propiedades y, a continuación, haga clic en la ficha todas .
Haga clic en título , escriba Text1 y, a continuación, cerrar el cuadro de diálogo de Propiedades .
Agregue un botón de comando a Form1 , haga clic con el botón secundario del mouse en el botón de comando, haga clic en Propiedades , haga clic en nombre , escriba Command1 , haga clic en título y, a continuación, escriba Command1 .
Haga clic en la ficha 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 en el procedimiento Command1_Click al siguiente:
Private Sub Command1_Click()
Me!Text1 = LaunchCD(Me)
End Sub
On the Insert menu, click Module, and then insert the following code into 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 Neptuno y, a continuación, cierre el Editor de Visual Basic.
En el menú Ver , haga clic en formulario Ver .
Haga clic en Command1 y, a continuación, haga clic en un archivo en la ventana que se abre.
La ruta de archivo aparece en el cuadro de texto Text1 .
Microsoft Office Access 2007
En Access 2007, abra la base de datos ejemplo que se denomina Northwind.accdb.
En la ficha crear , haga clic en formulario en el grupo formularios .
En la ficha formato , haga clic en la flecha abajo situada debajo de vista y, a continuación, haga clic en Vista Diseño .
Agregue un cuadro de texto a Form1, haga clic con el botón secundario del mouse en el cuadro de texto y, a continuación, haga clic en Propiedades .
Haga clic en la ficha todas , haga clic en nombre y, a continuación, escriba Text1 .
Haga clic con el botón secundario en el control de etiqueta que está asociado con el cuadro de texto Text1 , haga clic en Propiedades y, a continuación, haga clic en la ficha todas .
Haga clic en título y, a continuación, escriba Texto1 .
Agregue un botón de comando a Form1 , haga clic con el botón secundario del mouse en el botón de comando, haga clic en Propiedades , haga clic en nombre , escriba Command1 , haga clic en título y, a continuación, escriba Command1 .
Haga clic en la ficha 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 en el procedimiento Command1_Click similar al siguiente ejemplo de código.
Private Sub Command1_Click()
Me!Text1 = LaunchCD(Me)
End Sub
On the Insert menu, click Module, and then insert code that resembles the following code example into 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 Neptuno y, a continuación, cierre el Editor de Visual Basic.
En la ficha formato , haga clic en la flecha abajo situada debajo de vista y, a continuación, haga clic en Vista formulario .
Haga clic en Command1 y, a continuación, haga clic en un archivo en la ventana que se abre.
La ruta del archivo aparece en el cuadro de Text1 .
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 888695
¡Muchas gracias! Sus comentarios nos ayudarán a mejorar los contenidos de soporte. Para más opciones de asistencia, visite la página de Ayuda y soporte técnico.