การนำเข้าข้อมูลชนิด OLE Object
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 281   6
URL.หัวข้อ / URL
การนำเข้าข้อมูลชนิด OLE Object

เรียนถาม อ.สุภาพ และ ผู้รู้ค่ะ
หนูสร้างตารางโดยให้มีฟิล์ดหนึ่งมีชนิดข้อมูลเป็น OLE Object
โดยจุดประสงค์ไว้เก็บรูปตราโรงเรียน ซึ่งตารางนี้มีแค่เร็คคอร์ดเดียว
ต้องการสร้างให้มี dialog box ที่ผู้ใช้สามารถคลิกเลือกรูปจากตำแหน่งต่าง ๆ ของเครื่องได้
เมื่อเลือกแล้วรูปนั้นก็จะเข้าอยู่ในฟิล์ดดังกล่าวทันที
และต้องการสร้างปุ่มลบรูป เมื่อผู้ใช้ต้องการลบรูปนั้น หรือต้องการเปลี่ยนแปลงรูปใหม่

เดิมหนูใช้วิธี copy file ต้นทางจากนั้นนำมา paste ที่ฟิล์ดรูป โดยตรงซึ่งค่อนข้างไม่สะดวก
และชนิดรูปจะต้องเป็น .bmp เท่านั้น ไม่ทราบว่าจะสามารถเลือกรูปทีเป็นนามสกุลอื่นได้หรือไม่
รบกวนกรุณาแนะนำด้วยค่ะ
ขอบพระคุณค่ะ

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

1 @R03832
ลองอ่านกระทู้ของคุณ บั๊ก ในหน้าที่ 2 นะครับ เขาก็ใช้วิธีการเดียวกันนี้ด้วย
2 @R03833
ไม่มีตัวอย่างหรือ โค๊ดให้ศึกษาค่ะ
ยังนึกภาพไม่ออก
รบกวนบอกเป็นแนวทางก็ได้ค่ะจะลองไปทำดูค่ะ
3 @R03835
ผมได้บอก Link ไปยังเว็บของ Microsoft ไว้ด้วยครับ ซึ่งจะมีโค้ดตัวอย่างให้ลองทำดูด้วยครับ

แต่อย่างที่ผมบอก ไม่ควรจะเก็บภาพหรือเอกสารในรูปแบบ OLE ใน Access ครับ เพราะจะทำให้ไฟล์ใหญ่เกินไป
4 @R03836
คือเก็บแค่รูปเดียว เร็คคอร์ดเดียว ค่ะ อ.
ส่วนรูปนักเรียนหนูใช้วิธี เก็บเป็น path อย่างที่อ.แนะนำค่ะ
ถามต่อเนื่องเลยน่ะค่ะ
จากกระทู้ที่ 01657 การแสดงผลข้อมูลกรณีที่ยังไม่มีรูปถ่าย
ที่อ.ได้แนะนำ code ตัวอย่างไว้

ลองใช้ Dir() เข้าช่วยครับ

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
On Error GoTo err:
Dim strPicPath As String

strPicPath = Me.PicPath & "\" & Me.ID & ".JPG"
If Dir(strPicPath) <> "" Then
Me.Pict.Picture = strPicPath
Else
Me.Pict.Picture = ""
End If
err:
Exit Sub
End Sub

หนูได้นำไปใช้แล้ว ปรากกว่ายังมีรูปที่ซ้ำ ขึ้นมาแทนที่รูปที่ยังไม่มีเหมือนเดิมค่ะ
ไม่ทราบว่าจะต้อง เพิ่มเติมตรงส่วนไหนดีค่ะ
รบกวนอีกครั้งค่ะ
ขอบพระคุณ ม๊ากๆๆ ค่ะ
5 @R03837
ลองเปลี่ยน

If Dir(strPicPath) <> "" Then
Me.Pict.Picture = strPicPath
Else
Me.Pict.Picture = ""
End If

เป็น

If Dir(strPicPath) <> "" Then
Me.Pict.Picture = strPicPath
Me.Pict.Picture.Visible = True
Else
Me.Pict.Picture.Visible = False
End If
6 @R03838
จากคำแนะนำของ อ.สุภาพ หนูได้นำไปปรับใช้แล้วได้ผลเป็นอย่างดีค่ะ
ขอบพระคุณอ.สุภาพ เป็นอย่างสูงค่ะ
ที่กรุณาสละเวลาตอบปัญหาด้วยดีเสมอมา
จะเป็นกำลังใจในการทำงานน่ะค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0744s