การ Import ไฟล์รูปภาพ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

29 พ.ค. 61 , 10:53:50
อ่าน 879 ครั้ง

prajak

การ Import ไฟล์รูปภาพ
« เมื่อ: 29 พ.ค. 61 , 10:53:50 »
รบกวนสอบถามเรื่องการ import ไฟล์รูปภาพครับ ปัจุบัน code ในการแนบรูปเป็นดังรูปตัวอย่างครับ


 
แต่มันจะมีข้อเสียตรงที่เวลาจะแนบรูปเข้าไปในแต่ละ Item ของสินค้า จะต้อง copy รูปไปวางไว้ใน path ที่กำหนดก่อนแล้วค่อยคลิ๊กเลือก ซึ่งไม่ค่อยสะดวกต่อการใช้งาน ความต้องการของผมคือไม่ว่าไฟล์รูปที่เราจะใช้เก็บอยู่ที่ไหนก็ตาม เวลากด Browse เลือกไฟล์แล้ว ให้มันไปเก็บไว้ยัง path ที่เรากดหนดไว้เอง สมมติต้องการให้หลังจากเลือกรูปแล้วให้เก็บไว้ที่ \\wka1\Access database$\Picture

 

30 พ.ค. 61 , 11:44:47
ตอบกลับ #1

ปิ่นณรงค์

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #1 เมื่อ: 30 พ.ค. 61 , 11:44:47 »
.
« แก้ไขครั้งสุดท้าย: 31 พ.ค. 61 , 09:53:07 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

30 พ.ค. 61 , 12:09:09
ตอบกลับ #2

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #2 เมื่อ: 30 พ.ค. 61 , 12:09:09 »
ขอบคุณครับ เดี๋ยวผมจะลองทำดูนะครับ

 

30 พ.ค. 61 , 13:25:02
ตอบกลับ #3

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #3 เมื่อ: 30 พ.ค. 61 , 13:25:02 »
ผมลองตัวอย่างที่ส่งมาให้ ทำไมฟิวด์ OutputPath ใน table ไม่เก็บค่า path ปลายทางอะครับ


 

30 พ.ค. 61 , 14:50:08
ตอบกลับ #4

ปิ่นณรงค์

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #4 เมื่อ: 30 พ.ค. 61 , 14:50:08 »
ตรง textbox OutputPath กำหนด RecordSource ด้วยครับพอดีผมลืมกำหนดให้
« แก้ไขครั้งสุดท้าย: 31 พ.ค. 61 , 09:52:29 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

30 พ.ค. 61 , 17:17:32
ตอบกลับ #5

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #5 เมื่อ: 30 พ.ค. 61 , 17:17:32 »
หลังจากลองทำตามที่แนะนำ จะรบกวนสอบถามเพิ่มเติมนะครับ ถ้าผมต้องการ set default path ในช่อง outputpath บนฟอร์มตามรูป
แล้วหลังจากที่กดปุ่ม"จัดเก็บ"ให้นำค่าpathไปใส่ในฟิว์ Outputpath ของตารางแล้วตามด้วยชื่อไฟล์รูปนั้นๆ


 

30 พ.ค. 61 , 19:26:19
ตอบกลับ #6

ปิ่นณรงค์

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #6 เมื่อ: 30 พ.ค. 61 , 19:26:19 »

ปรับปรุงใหม่ให้แล้วนะครับ มีจุดที่จะกำหนด Default Path ได้นะครับตรง
กำหนด Default Path ที่
Private Sub Default_AfterUpdate()
If Default = True Then
Me.SetPath = "C:\Pic"
Else
Me.SetPath = Null
End If
End Sub

หมายเหตุ
1.ก่อนจะกด Import ให้กำหนด Path ที่จะจัดเก็บก่อน ถ้ายังไม่ระบุจะมีแจ้งเตือน
2.ปรับปรุงให้แสดงชื่อหลัง Path จัดเก็บแล้ว
3.ถ้ายังใส่รายละเอียดเกี่ยวกับการ import รูปไม่เสร็จแล้วไปกดปิดฟอร์ม รูปในหน้านั้นจะไม่บันทึกในตารางให้ (ป้องกันข้อผิดพลาด)
4.ตำแหน่งของ Path ถ้าติ๊กเลือก Default Path หลังกดปุ่ม จัดเก็บ แล้ว Path จะแสดง Default หรือ ถ้ากำหนด Path เองก็จะกับไปยัง Path ที่กำหนดไว้ เพื่อให้พร้อมในการ จัดเก็บไฟล์ใหม่

ตัวอย่างด้านล่างนะครับ
« แก้ไขครั้งสุดท้าย: 01 มิ.ย. 61 , 15:25:47 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: pirin, prajak

31 พ.ค. 61 , 10:07:56
ตอบกลับ #7

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #7 เมื่อ: 31 พ.ค. 61 , 10:07:56 »
รบกวนคุณปิ่นณรงค์อีกนิดนะครับ ตามที่ให้ตัวอย่างมา ผมลองเอาไปปรับใช้แล้ว OK เลย แต่ติดตรงที่ว่าสมมติว่ามีไฟล์รูปที่ชื่อซ้ำกันมันจะ Overwrite ทับรูปเก่าไปเลย พอจะมีวิธีไหมครับว่า ถ้ามีชื่อนั้นอยู่แล้วอาจจะrename ชื่ออัตโนมัติ อาจจะต่อท้ายด้วย (1),(2) เป็นต้น เหมือนใน windows
ปล.ขออภัยที่ไม่ได้สอบถามทีเดียว ทำให้คุณปิ่นณรงค์เสียเวลา เพราะผมลองทำแล้วเพิ่งเจอปัญหาครับ

 

31 พ.ค. 61 , 16:32:41
ตอบกลับ #8

ปิ่นณรงค์

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #8 เมื่อ: 31 พ.ค. 61 , 16:32:41 »
เดี่ยวพรุ่งนี้เพิ่มให้นะครับ คุณ Prajak ลืมตรวจเช็คดูตรงนั้นขอโทษด้วยนะครับ
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

01 มิ.ย. 61 , 11:46:23
ตอบกลับ #9

ปิ่นณรงค์

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #9 เมื่อ: 01 มิ.ย. 61 , 11:46:23 »
ผมลองทำตัวอย่างใหม่ เมื่อกดจัดเก็บให้เพิ่ม (1),(2) เก็บไว้กรณี ชื่อซ้ำ ประมาณนนี้นะครับ
เวลากำหนด Pathเอง ให้ใส่แบบนี้นะครับ C:\PIC   หรือถ้ามี Sub Folder C:\PIC\SUBFLODER ประมาณนี้ครับ


เพิ่มไฟล์ครั้งแรก ที่ OutputPath จะแสดงชื่อไฟล์ปกติ


เมื่อเพิ่ม ไฟล์อันต่อไปซึ่งซ้ำกับอันแรก มันจะนับต่อแบบนี้ ผมลองกดอันที่ชื่อซ้ำกัน 3 ครั้ง นะครับ


ไฟล์ใน Floder ที่ได้


Path ในตาราง


ส่วน Function ที่เพิ่มตามนี้เลย
โค๊ด: [Select]
Function FileNameGetUnique(sFileName As String) As String
    Dim lCount As Long, lPosDot As Long
    Dim sFileNoExtension As String, sExtension As String
    On Error GoTo ErrFailed
    If Len(sFileName) = 0 Then
        Debug.Assert "ไม่เจอไฟล์ที่จะปรับปรุงนะครับ" & FileNameGetUnique
        Exit Function
    End If
    lPosDot = InStrRev(sFileName, ".")
    If lPosDot Then
        sFileNoExtension = Left$(sFileName, lPosDot - 1)
        sExtension = Mid$(sFileName, lPosDot)
    Else
        sFileNoExtension = sFileName
    End If
    Do
        lCount = lCount + 1
    Loop While Len(Dir$(sFileNoExtension & "(" & CStr(lCount) & ")" & sExtension))
    FileNameGetUnique = sFileNoExtension & "(" & CStr(lCount) & ")" & sExtension
    Exit Function
ErrFailed:
    Debug.Print Err.Description
    Debug.Assert False
    FileNameGetUnique = ""
End Function
« แก้ไขครั้งสุดท้าย: 01 มิ.ย. 61 , 16:04:16 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

01 มิ.ย. 61 , 19:53:14
ตอบกลับ #10

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #10 เมื่อ: 01 มิ.ย. 61 , 19:53:14 »
ขอบคุณมากครับ เดี๋ยวพรุ่งนี้ผมจะลองทำนะครับ

 

02 มิ.ย. 61 , 16:51:00
ตอบกลับ #11

prajak

: การ Import ไฟล์รูปภาพ
« ตอบกลับ #11 เมื่อ: 02 มิ.ย. 61 , 16:51:00 »
ได้แล้วครับ คุณปิ่นณรงค์ ขอบคุณมากๆเลยนะครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย