Använda gemensamma dialogrute-API i en databas i Access 2003 eller Access 2007

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Ursprungligt KB-nummer:   888695

INTRODUKTION

I den här artikeln beskrivs hur du använder gemensamma dialogrute-API:er i Microsoft Office Access 2003 eller i Microsoft Office Access 2007 för att ersätta funktionerna i Den gemensamma dialogrutan. Funktionerna ingår endast i Microsoft Office 2000 Developer Edition eller i Microsoft Office XP Developer Edition.

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov.

Steg för att ersätta funktionen Gemensamma dialogruta

Microsoft Office Access 2003

  1. Öppna exempeldatabasen som heter Northwind.mdb i Access.

    Anteckning

    Northwind.mdb-databasen för Access 2003 finns normalt i C:\Program Files\Microsoft Office\OFFICE11\Samples mappen.

  2. Under Objekt i fönstret Northwind-databas klickar du på Formulär .

  3. I verktygsfältet i databasfönstret klickar du på Ny.

  4. I dialogrutan Nytt formulär klickar du på Designvy och sedan på OK.

  5. Lägg till en textruta i Formulär1, högerklicka på textrutan och klicka sedan på Egenskaper.

  6. Klicka på fliken Alla, klicka på Namn, skrivText1 och stäng sedan dialogrutan Egenskaper.

  7. Högerklicka på etikettkontrollen som är kopplad till textrutan Text1, klicka på Egenskaper och sedan på fliken Alla.

  8. Klicka Beskrivning , skriv Text1 och stäng sedan dialogrutan Egenskaper.

  9. Lägg till en kommandoknapp i Formulär1, högerklicka på kommandoknappen, klicka på Egenskaper , klicka på Namn, skriv Kommando1, klicka på Beskrivning och skriv sedan Kommando1.

  10. Klicka på fliken Händelse, klicka på [Händelseprocedur] i listan Vid klickning och klicka sedan på ellipsknappen för att starta Microsoft Visual Basic Editor.

  11. Ändra koden i Command1_Click till följande:

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  12. Klicka på ModulInfoga-menyn och infoga sedan följande kod i Modul1:

    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. På menyn Felsökning klickar du på Kompilering Northwind och stänger sedan Visual Basic Editor.

  14. Klicka på FormulärvyVisa-menyn.

  15. Klicka på Kommando1 och klicka sedan på en fil i fönstret som öppnas.

    Sökvägen till filen visas i textrutan Text1.

Microsoft Office Access 2007

  1. Öppna exempeldatabasen som heter Northwind.accdb i Access 2007.

  2. Klicka på Formulär i gruppen Formulär på fliken Skapa.

  3. På fliken Format klickar du på nedpilen under Visa och sedan på Designvy.

  4. Lägg till en textruta i Formulär1, högerklicka på textrutan och klicka sedan på Egenskaper.

  5. Klicka på fliken Alla, klicka på Namn och skriv sedan Text1.

  6. Högerklicka på etikettkontrollen som är kopplad till textrutan Text1, klicka på Egenskaper och sedan på fliken Alla.

  7. Klicka Beskrivning och skriv sedan Text1.

  8. Lägg till en kommandoknapp i Formulär1, högerklicka på kommandoknappen, klicka på Egenskaper , klicka på Namn, skriv Kommando1, klicka på Beskrivning och skriv sedan Kommando1.

  9. Klicka på fliken Händelse, klicka på [Händelseprocedur] i listan Vid klickning och klicka sedan på ellipsknappen (...) för att starta Microsoft Visual Basic Editor.

  10. Ändra koden i Command1_Click procedur så att den liknar följande kodexempel.

    Private Sub Command1_Click()
     Me!Text1 = LaunchCD(Me)
    End Sub
    
  11. Klicka på ModulInfoga-menyn och infoga sedan kod som liknar följande kodexempel i Modul1.

    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. På menyn Felsökning klickar du på Kompilering Northwind och stänger sedan Visual Basic Editor.

  13. Klicka på nedpilen under Visa på fliken Format och klicka sedan på Formulärsvy.

  14. Klicka på Kommando1 och klicka sedan på en fil i fönstret som öppnas.

    Sökvägen till filen visas i rutan Text1.