ขอบคุณครับอาจารย์ที่สละเวลามาช่วยตอบ ผมลองพิจารณาวิธีที่อาจารย์แนะนำแล้วดีมากเลยครับ
เพียงแต่ผมต้องการความเร็วในการออกเอกสารผมจึงคิดอีกวิธีในการนำเข้าข้อมูลและขอสอบถามเพิ่มเติมดังนี้ครับ
ผมติดที่กล้องจะอัพรูปอัตโนมัติโดยรันเป็น IMG_0001 ไปเรื่อยๆซึ่งทับกับไฟล์รูปที่มี
ผมจึงอยากจะสร้างโฟลเดอร์ใหม่อีก 1 โฟลเดอร์แล้วให้โปรแกรมเห็นรูปทั้งโฟลเดอร์เก่าและใหม่ ซึ่งโค้ดปกติที่ผมใช้คือ
Option Compare Database
Option Explicit
Public Function iFileDialog() As String
 Const msoFileDialogFilePicker = 3
 Const msoFileDialogViewDetails = 2
 Dim fd As Object, varltems As Variant, flPath As Variant
 Set fd = Application.FileDialog(msoFileDialogFilePicker)
 With fd
    .Title = "Choose"
    .InitialView = msoFileDialogViewDetails
    .Filters.Clear
    .Filters.Add "Image", "*.jpg;*.png;*.bmp"
    .Filters.Add "All Files", "*.*"
    .filterIndex = 1
    .InitialfileName = CurrentProject.Path & "\Picture"
    If fd.show = True Then
        iFileDialog = Trim(.SelectedItems.Item(1))
    End If
  End With
End Function
แล้วเอกสารแต่ละชุดผมจะมีรูปเพียง 3 รูป ซึ่งรูปนั้นจะถูกแสดงโดยใช้โค้ดนี้ครับ
Option Compare Database
Private Sub Command15_Click()
 Dim iPath As String
 iPath = iFileDialog
 If iPath & "" <> "" Then
  Me.Photo1 = Mid(iPath, InStrRev(iPath, "\") + 1)
 End If
End Sub
Private Sub Command16_Click()
 Dim iPath As String
 iPath = iFileDialog
 If iPath & "" <> "" Then
  Me.Photo2 = Mid(iPath, InStrRev(iPath, "\") + 1)
 End If
End Sub
Private Sub Command17_Click()
 Dim iPath As String
 iPath = iFileDialog
 If iPath & "" <> "" Then
  Me.Photo3 = Mid(iPath, InStrRev(iPath, "\") + 1)
 End If
End Sub
ผมต้องแก้ไขอะไร อย่างไรบ้างครับ