BACK TOP
FC2 Analyzer

Entries

AC VBA : フォームで添付ファイル型フィールドに画像ファイルを保存

ACCESS用


変更する箇所は3箇所
  1. 動作ボタン名 ➡ btnGetPicture
  2. テーブルのフィールド名 ➡ [添付ファイル型フィールド名]
  3. フォーム設置の添付ファイルコントロール名 ➡ [添付ファイルコントロール名]

Private Sub btnGetPicture_Click()

Static keepFolder As String
Dim wkPath As String

' ファイル選択はFileDialog
With FileDialog(1)
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "画像ファイル", "*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.ico"
    .Filters.Add "すべて", "*.*"
    .Title = "画像を選択"
    If keepFolder = "" Then keepFolder = CurrentProject.Path & "\"
    .InitialFileName = keepFolder
    If .Show = True Then wkPath = .SelectedItems(1)
End With

' 選択したファイルに不都合はないか?
If wkPath = "" Then Exit Sub
Select Case True
    Case wkPath Like "*.jpg"
    Case wkPath Like "*.jpeg"
    Case wkPath Like "*.gif"
    Case wkPath Like "*.png"
    Case wkPath Like "*.bmp"
    Case wkPath Like "*.ico"
    Case Else: Beep: Exit Sub
End Select
If Dir(wkPath) = "" Then Beep: Exit Sub

' 一旦レコードを保存
On Error Resume Next
DoCmd.RunCommand acCmdSaveRecord
On Error GoTo 0

' 添付ファイル保存処理
Me.Recordset.Edit
    With Me.Recordset![添付ファイル型フィールド名].Value
        '添付ファイルの数でアクションを変更
        If .RecordCount > 1 Then
            MsgBox "添付ファイルが複数あります", vbCritical, "添付ファイルエラー"
        Else
            If .RecordCount = 1 Then
                .Edit
            Else
                .AddNew
            End If
            !FileData.LoadFromFile wkPath
            .Update
        End If
        .Close
    End With
Me.Recordset.Update

Me![添付ファイルコントロール名].Requery

keepFolder = Left(wkPath, InStrRev(wkPath, "\")) '末尾\付き

End Sub
スポンサーサイト



この記事にトラックバックする(FC2ブログユーザー)
http://blogwizhook.blog.fc2.com/tb.php/251-f25a0b71

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

Appendix

-楽天-

月別アーカイブ

  • 2020年6月(2)
  • 2020年3月(1)
  • 2020年1月(1)
  • 2019年9月(1)
  • 2019年8月(2)
  • 2019年7月(2)

B.WH

ブロとも申請フォーム

この人とブロともになる

プロフィール

B.WH ('(⊥)')

Author:B.WH ('(⊥)')
Blog WizHook (for MS-ACCESS)