Microsoft Access 掲示板

製品・部品フォーム内でのPDF表示 / 9

10 コメント
views
4 フォロー
9
hiroton 2020/12/18 (金) 10:36:12 bcbb2@f966d >> 8

良くない案1
フォルダをエクスプローラーで開く

良くない案2
ファイル名で近似値を求めてそのファイルを開く
例えば「B030b」を開こうとした場合、ファイルの一覧を降順に捜査して

name = "B030b" & "あ"
"B150.pdf" < name => False
"B001~149.pdf" < name => True

の比較でそれっぽいファイルを見つけることはできます


複雑なことをしようとすればするほどさらなるイレギュラーが出たときに「思っていたのと違う。不具合だ」と言われるものです。全然いいアイディアになりません

本当の「いいアイディア」はPDFファイルを分割して保存しなおすことができないかを検討し、評価することでしょう

とはいっても、システムの運用開始はなるべく早くという要件もあるでしょうから、「製品ID.pdf」が見つからなかった場合はメッセージボックスを表示して(上記案のような)追加操作の実行を促す仕組みとすることはあると思います
過去の遺産の整理と並行して運用できるような限定的な仕組みという位置付けの機能としてしまいましょう

通報 ...
  • 10
    ゲッキョク駐車場 2020/12/18 (金) 11:20:27 cb55f@f6500 >> 9

    丁寧な解説、ありがとうございます。本当に助かります。

    ユーザーに多少の手間を取らせてしまいますが、とりあえず元データの
    整理が完了するまでは、合致するデータが無かった場合に
    該当するフォルダを開くようにします。

    また、データ整理・および新たなデータを一気に登録する際には
    改めてデータの参照方法を考えてみます。

    本当に長々とお付き合いくださりありがとうございました。

    Private Sub PDF表示_Click()
     
      Dim PDFPath As String, FldPath As String
    
      PDFPath = Application.CurrentProject.Path & "\PDFDATA\" & MNFCTID & ".pdf"
      FldPath = Application.CurrentProject.Path & "\PDFDATA"
      
      If Not Dir(PDFPath) = "" Then
      
        Shell "C:\Windows\explorer.exe " & PDFPath, vbNormalFocus
      Else
      
        MsgBox "データを探せませんでした。" & Chr(13) _
        & "PDFフォルダを開きます。"
        
        Shell "C:\Windows\explorer.exe " & FldPath, vbNormalFocus
        
      End If
      
    End Sub