sql >> データベース >  >> RDS >> Access

MicrosoftAccessフォームでドキュメントをプレビューする

    MicrosoftAccessフォームでドキュメントをプレビューする

    プロジェクトの範囲

    最近、プロジェクトにドキュメントセンターを追加しました。これにより、ユーザーはpdf、word、txt、画像などのドキュメントをプロジェクトに添付できます。さらに、受信メールを読み取り、メールの添付ファイルをネットワークドライブに保存するように自動プロセスが設定されます。目標は、ユーザーが受信した新しいドキュメントを表示して、正しい場所に保存できるようにすることです。もちろん、件名やドキュメントの出所などの情報を抽出するプロセスを管理し、ユーザーがドキュメントの一般的な情報を理解できるようにします。これはテーブルに保存されます。さらに、ユーザーはドキュメントを表示してその内容を読むことができる必要があります。

    ソリューション

    もちろん、アクセスから他のアプリケーションを起動して、WordでWordドキュメントを表示したり、Adobe AcrobatなどでPDFを表示したりできます。ただし、ユーザーが操作する画面が1つしかない場合は、あるアプリケーションから別のアプリケーションに切り替える必要があります。複数のドキュメントタイプがある場合は、もちろん、これは複数のアプリケーションを開くことを意味します。そのため、ユーザーがシステムを簡単に管理できるようにするタブレイアウトを備えた新しいアクセスフォームでドキュメントを起動するシンプルなソリューションを提供しました。以下の例では、ユーザーが自分のコンピューターでアクセスする必要がある特定のパスからファイルを読み取るコードを使用しています。または、ドキュメントがSQLテーブルに保存されている場合は、コードを変更してドキュメントを一時的にローカルドライブに保存し、一時的な場所からファイルを起動することもできます。この方法を使用する場合は、フォームを表示/閉じた後に一時ファイルを削除するための追加のコードも含める必要があります。

    サンプルフォーム

    提供されたサンプルフォームは、OpenArgsのドキュメントパスを渡して起動する必要があります

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

    オンロードコードは、パスが渡されたこと、およびファイルが存在するかどうかを確認します。すべてが順調であれば、プロセスは続行されます。

    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

    最後に、コードはドキュメントをロードします。 Showdocumentサブは、さまざまなドキュメントタイプを処理します。ほとんどのドキュメントタイプはelseケースを使用します。フォーム自体には、 txtPathという非表示のテキストボックスがあります。 OpenArgsの値(ファイル名とパス)を格納します。これは、マップされたドライブまたはUNCのいずれかです。 Webブラウザオブジェクトは=[txtPath]を格納します コントロールソースとして。ただし、ワードドキュメントは同じようには機能しないため、最初にドキュメントをhtmlとして保存する必要があります。もともとCrystalLongによって作成された方法を使用し、いくつかの小さな変更を加えました。

    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. Oracle JDeveloperでのJavaアプリケーションの作成、パート2

    2. SQLServerでのLEFTJOINとLEFTOUTERJOIN

    3. MySQLで文字セットをlatin1からUTF8に変更する方法

    4. ProxySQLとAWSAuroraを使用したデータベース負荷分散