sql >> Databáze >  >> RDS >> Access

Náhled dokumentů ve formuláři Microsoft Access

Náhled dokumentů ve formuláři Microsoft Access

Rozsah projektu

Nedávno jsme do projektu přidali centrum dokumentů, které uživatelům umožňuje připojovat k projektu dokumenty jako pdf, word, txt a obrázky. Navíc budou mít nastavený automatický proces pro čtení příchozích e-mailů a ukládání e-mailových příloh na síťový disk. Cílem je umožnit uživateli zobrazit nové dokumenty, které byly přijaty, a uložit je na správné místo. Samozřejmě budeme řídit proces extrahování informací, jako je předmět a kdo dokument pochází, aby uživatel porozuměl obecným informacím o dokumentu a ty budou uloženy do tabulky. Kromě toho musí mít uživatel možnost dokument prohlížet, aby si mohl přečíst jeho obsah.

Řešení

Můžeme samozřejmě spouštět další aplikace z přístupu k prohlížení dokumentů Word ve Wordu a pdf v Adobe Acrobat atd.  Pokud má však uživatel k dispozici pouze jednu obrazovku, znamená to přepínání z jedné aplikace do druhé a pokud existuje více typů dokumentů, pak to samozřejmě znamená otevření více aplikací. Poskytli jsme proto jednoduché řešení, které by spustilo dokument v nové přístupové podobě s rozložením karet, které uživateli umožní snadnou správu systému. V níže uvedeném příkladu používám kód, který načte soubor z dané cesty, ke které bude uživatel potřebovat přístup na svém počítači. Alternativně, pokud je dokument uložen do tabulky SQL, můžeme upravit kód tak, aby se dokument dočasně uložil na místní disk a spustil soubor z dočasného umístění. Pokud použijete tuto metodu, budete také chtít zahrnout další kód pro smazání dočasného souboru po zobrazení/zavření formuláře.

Vzorový formulář

Poskytnutý vzorový formulář by měl být spuštěn předáním cesty k dokumentu v OpenArgs

DoCmd.OpenForm "frmDocumentReview", OpenArgs:= Me.DocumentPath

Kód při načtení ověří, že byla předána cesta a také, zda soubor existuje. Pokud je vše v pořádku, proces pokračuje.

Private Sub Form_Load()

    If IsNull(Me.OpenArgs) Then
        MsgBox "No document to show", , "Path not specified"
        Exit Sub
    Else
        If Not FSO.FileExists(Me.OpenArgs) Then
            MsgBox "Your computer does not have access to the named file. You need to download the file to view it."
            Exit Sub
        Else
            Showdocument OpenArgs
        End If
    End If
    
End Sub

Nakonec kód načte dokument. Položka Showdocument se stará o různé typy dokumentů. Většina typů dokumentů používá případ else. Samotný formulář má skryté textové pole s názvem txtPath který ukládá hodnotu OpenArgs (název souboru a cestu), může to být buď namapovaná jednotka nebo UNC. Objekt webového prohlížeče ukládá =[txtPath] jako zdroj ovládání. Dokumenty aplikace Word však nefungují stejně a nejprve musíte dokument uložit jako html. Použil jsem metodu původně napsanou Crystal Long a provedl jsem několik drobných změn.

Private Sub Showdocument(strPath As String)
    Dim strExt As String
    Dim sPathFileHTML As String
    Dim oWordApp As Object
    Dim oDoc As Object
    
    strExt = GetFileExt(strPath)
    Select Case strExt
        Case "docx"
            'save word doc as HTML
            sPathFileHTML = CurrentProject.Path & "\temp.html"
            Set oWordApp = CreateObject("Word.Application")
            Set oDoc = oWordApp.Documents.Open(strPath)
            oDoc.SaveAs2 FileName:=sPathFileHTML, FileFormat:=8 'wdFormatHTML
            oDoc.Close False
            oWordApp.Quit
            Set oDoc = Nothing
            Set oWordApp = Nothing
        Case Else
            sPathFileHTML = strPath
    End Select
    
    'open in browser control
    Me.txtPath.Value = sPathFileHTML

End Sub


  1. Seznam sloupců s indexy v PostgreSQL

  2. Vkládání národních znaků do sloupce Oracle NCHAR nebo NVARCHAR nefunguje

  3. Proč IS NOT NULL vrací hodnoty NULL pro Varchar(max) v SQL Server?

  4. Použití Oracle JDeveloper 12c s Oracle Database 12c na platformě Oracle Cloud, část 1