ขอบคุณครับอาจารย์ที่สละเวลามาช่วยตอบ ผมลองพิจารณาวิธีที่อาจารย์แนะนำแล้วดีมากเลยครับ
เพียงแต่ผมต้องการความเร็วในการออกเอกสารผมจึงคิดอีกวิธีในการนำเข้าข้อมูลและขอสอบถามเพิ่มเติมดังนี้ครับ
ผมติดที่กล้องจะอัพรูปอัตโนมัติโดยรันเป็น 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
ผมต้องแก้ไขอะไร อย่างไรบ้างครับ