Como utilizar a API de Caixa de Diálogo Comum numa base de dados no Access 2003 ou Access 2007
Número original da BDC: 888695
INTRODUÇÃO
Este artigo descreve como utilizar a API de Caixa de Diálogo Comum no Microsoft Office Access 2003 ou no Microsoft Office Access 2007 para substituir a funcionalidade Caixa de Diálogo Comum. A funcionalidade está incluída apenas no Microsoft Office 2000 Developer Edition ou no Microsoft Office XP Developer Edition.
A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.
Passos para substituir a funcionalidade Caixa de Diálogo Comum
Microsoft Office Access 2003
No Access, abra a base de dados de exemplo com o nome Northwind.mdb.
Nota
Normalmente, a base de dados Northwind.mdb para o Access 2003 está localizada na
C:\Program Files\Microsoft Office\OFFICE11\Samples
pasta .Em Objetos na janela Base de Dados northwind, clique em Formulários .
Na barra de ferramentas da janela Base de dados, clique em Novo.
Na caixa de diálogo Novo Formulário , clique em Vista Estrutura e, em seguida, clique em OK.
Adicione uma caixa de texto ao Form1, clique com o botão direito do rato na caixa de texto e, em seguida, clique em Propriedades.
Clique no separador Tudo , clique em Nome, escrevaText1 e, em seguida, feche a caixa de diálogo Propriedades .
Clique com o botão direito do rato no controlo de etiqueta associado à caixa de texto Text1 , clique em Propriedades e, em seguida, clique no separador Tudo .
Clique em Legenda, escreva Texto1 e, em seguida, feche a caixa de diálogo Propriedades .
Adicione um botão de comando ao Form1, clique com o botão direito do rato no botão de comando, clique em Propriedades, clique em Nome, escreva Comando1, clique em Legenda e, em seguida, escreva Comando1.
Clique no separador Evento, clique em [Procedimento de Evento] na lista Ao Clicar e, em seguida, clique no botão de reticências para iniciar a Revisor do Microsoft Visual Basic.
Modifique o código no procedimento Command1_Click para o seguinte:
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
No menu Inserir , clique em Módulo e, em seguida, insira o seguinte código no Módulo1:
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
No menu Depurar, clique em Compilar Northwind e, em seguida, feche o visual Basic Revisor.
No menu Ver , clique em Vista formulário.
Clique em Comando1 e, em seguida, clique num ficheiro na janela que é aberta.
O caminho do ficheiro é apresentado na caixa de texto Text1 .
Microsoft Office Access 2007
No Access 2007, abra a base de dados de exemplo denominada Northwind.accdb.
No separador Criar , clique em Formulário no grupo Formulários .
No separador Formatar , clique na seta para baixo abaixo de Ver e, em seguida, clique em Vista Estrutura.
Adicione uma caixa de texto ao Form1, clique com o botão direito do rato na caixa de texto e, em seguida, clique em Propriedades.
Clique no separador Tudo , clique em Nome e, em seguida, escreva Texto1.
Clique com o botão direito do rato no controlo de etiqueta associado à caixa de texto Text1 , clique em Propriedades e, em seguida, clique no separador Tudo .
Clique em Legenda e, em seguida, escreva Texto1.
Adicione um botão de comando ao Form1, clique com o botão direito do rato no botão de comando, clique em Propriedades, clique em Nome, escreva Comando1, clique em Legenda e, em seguida, escreva Comando1.
Clique no separador Evento, clique em [Procedimento de Evento] na lista Ao Clicar e, em seguida, clique no botão de reticências (...) para iniciar a Revisor do Microsoft Visual Basic.
Modifique o código no procedimento Command1_Click para se assemelhar ao seguinte exemplo de código.
Private Sub Command1_Click() Me!Text1 = LaunchCD(Me) End Sub
No menu Inserir , clique em Módulo e, em seguida, insira código semelhante ao seguinte exemplo de código no Módulo1.
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
No menu Depurar, clique em Compilar Northwind e, em seguida, feche o visual Basic Revisor.
No separador Formatar , clique na seta para baixo abaixo de Ver e, em seguida, clique em Vista formulário.
Clique em Comando1 e, em seguida, clique num ficheiro na janela que é aberta.
O caminho do ficheiro é apresentado na caixa Text1 .
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários