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

  1. 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 .

  2. Em Objetos na janela Base de Dados northwind, clique em Formulários .

  3. Na barra de ferramentas da janela Base de dados, clique em Novo.

  4. Na caixa de diálogo Novo Formulário , clique em Vista Estrutura e, em seguida, clique em OK.

  5. 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.

  6. Clique no separador Tudo , clique em Nome, escrevaText1 e, em seguida, feche a caixa de diálogo Propriedades .

  7. 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 .

  8. Clique em Legenda, escreva Texto1 e, em seguida, feche a caixa de diálogo Propriedades .

  9. 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.

  10. 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.

  11. Modifique o código no procedimento Command1_Click para o seguinte:

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. 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
    
  13. No menu Depurar, clique em Compilar Northwind e, em seguida, feche o visual Basic Revisor.

  14. No menu Ver , clique em Vista formulário.

  15. 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

  1. No Access 2007, abra a base de dados de exemplo denominada Northwind.accdb.

  2. No separador Criar , clique em Formulário no grupo Formulários .

  3. No separador Formatar , clique na seta para baixo abaixo de Ver e, em seguida, clique em Vista Estrutura.

  4. 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.

  5. Clique no separador Tudo , clique em Nome e, em seguida, escreva Texto1.

  6. 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 .

  7. Clique em Legenda e, em seguida, escreva Texto1.

  8. 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.

  9. 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.

  10. 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
    
  11. 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
    
  12. No menu Depurar, clique em Compilar Northwind e, em seguida, feche o visual Basic Revisor.

  13. No separador Formatar , clique na seta para baixo abaixo de Ver e, em seguida, clique em Vista formulário.

  14. Clique em Comando1 e, em seguida, clique num ficheiro na janela que é aberta.

    O caminho do ficheiro é apresentado na caixa Text1 .