update attachment เข้าไปใน record ยังไงครับ
กระทู้เก่าบอร์ด อ.Yeadram

 1,336   3
URL.หัวข้อ / URL
update attachment เข้าไปใน record ยังไงครับ

พอดีมีข้อมูลอยู่ 9พันกว่า record และมีรูปภาพอยู่ประมาณ 1000 รูปที่ต้องการบันทึกลงไป โดยอ้างอิงจาก ID ครับ
เช่น
ID 1234 : ไฟล์ 1234.jpg
แบบนี้อะคับ พอจะมีวิธีไหนที่ไม่ต้องมานั่งใส่ทีละรูปไหมครับ

ขอบคุณครับ

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R20155
ไม่แนะนำให้ทำแบบนี้นะครับ โดยเฉพาะกับไฟล์รูปภาพแบบเยอะๆแบบนี้ เพราะไฟล์จะบวม คือมีขนาดไฟล์ใหญ่มากเกินความจำเป็น และอาจมากกว่า 2 GB ในอนาคต ซึ่งเกินกว่าไฟล์จะรับได้

โดยหากต้องการแสดงรูปภาพจำนวนมากๆ ให้ไปใช้งานคอนโทรลชื่อ Image บนฟอร์ม หรือ รายงาน แทนการใช้คอนโทรล Attachment แล้วกำหนดในส่วนของ Control Source ของคอนโทรล Image เป็น พาธไฟล์ในไดเร็คทอรี่เป้าหมายแทน โดยในฐานข้อมูลก็ใช้เพียงฟิลด์ Text ธรรมดาเพื่อจัดเก็บข้อความพาธที่อยู่ไฟล์ ไม่ต้องใช้ฟิลด์ Attachments

แต่ถ้าต้องทำจริงๆ ไม่มีทางเลี่ยงก็ประมาณนี้ครับ

Sub Add_Attachments()
On Error GoTo Err_AddImage
    Dim db As DAO.Database
    Dim rs As DAO.Recordset2
    Dim rsChild As DAO.Recordset2
    Dim iPath As String
    Dim nAttachment As String
    iPath = "C:\Picture" ' พาธที่อยู่ไฟล์ภาพ เช่น C:\Picture
    nAttachment = "ID" ' ชื่อฟิลด์ ID ที่ใช้อ้างอิงเหมือนชื่อไฟล์
    Set db = CurrentDb
    Set rs = db.OpenRecordset("Table1") ' Table1 คือชื่อตารางเป้าหมาย

    Do While Not rs.EOF
        If Dir(iPath & "\" & rs(nAttachment) & ".jpg", vbNormal) <> "" Then
            rs.Edit
            Set rsChild = rs.Fields("Pic").Value ' Pic คือชื่อฟิลด์ Attachment ที่ต้องการใส่ไฟล์
            rsChild.AddNew
            rsChild.Fields("FileData").LoadFromFile (iPath & "\" & rs(nAttachment) & ".jpg")
            rsChild.Update
            rs.Update
        End If
        rs.MoveNext
    Loop
    
    MsgBox "Add Files Attachments Successfully.", , ""

Exit_AddImage:
    Set rsChild = Nothing
    Set rs = Nothing
    db.Close: Set db = Nothing
    Exit Sub
    
Err_AddImage:
    If Err.Number = 3820 Then
        MsgBox ("File already part of the multi-valued field!")
        Resume Next
    End If
End Sub

ประมาณนี้ครับ แทนชื่อให้ถูกก็น่าจะใช้ได้ครับ
2 @R20160
ขอบคุณมากครับ เดี๋ยวลองดูครับ
3 @R20162
เยี่ยมเรยค่ะ Miss เห็นด้วย คุณ TTT เก่งค๊า...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 1.9774s