กระทู้เก่าบอร์ด อ.Yeadram
2,697 19
URL.หัวข้อ /
URL
เรียกรูปภาพจาก path ที่เก็บไว้ในตาราง
ผมมีตรางชื่อ table1 เก็บ path ไว้ที่ ฟิลด์ File_path โดยสินค้าบันทึกเป็น ID
อยู่ในฟิลด์ PID
ผมต้องการเปิด Form1 แล้วโชวรูปที่ อยู่ใน File_path โดยรูปนั้น ตรงกับรหัสสินค้า
ต้องเขียนคำสั่งยังงัยครับ
สมมุติให้คอนโทลรูปภาพชื่อ image1
อยู่ในฟิลด์ PID
ผมต้องการเปิด Form1 แล้วโชวรูปที่ อยู่ใน File_path โดยรูปนั้น ตรงกับรหัสสินค้า
ต้องเขียนคำสั่งยังงัยครับ
สมมุติให้คอนโทลรูปภาพชื่อ image1
19 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R15891
ตามโค้ด น่าจะขาดบรรทัด .FindFirst นะครับ
Set DepositRecord = CaseDatabase.OpenRecordset("DEPRECIA")
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "เงื่อนไขที่จะหาเรคอร์ดที่ต้องการ"
Set DepositRecord = CaseDatabase.OpenRecordset("DEPRECIA")
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "เงื่อนไขที่จะหาเรคอร์ดที่ต้องการ"
3 @R15898
อาจารย์ครับ มันขึ้น Error แบบนี้
4 @R15899
เพราะไม่ได้ใส่ "เงื่อนไขที่จะหาเรคอร์ดที่ต้องการ" ครับ
5 @R15900
ปกติคุณ Un ใช้วิธีในการเขียน code แบบไหน เพิ่มเติมแก้ไขข้อมูลครับ แนะนำว่าใช้วิธีที่ถนัดครับ ส่วนผมถนัดใช้ DoCmd.RunSQL มากกว่า Recodset.Add, Edit
ถ้าจะให้ตอบที่ถูกต้องได้ คงต้องลอง code ก่อน (เผอิญว่าช่วงนี้เงลาไม่ค่อยอำนวยเท่าไร)
ถ้าจะให้ตอบที่ถูกต้องได้ คงต้องลอง code ก่อน (เผอิญว่าช่วงนี้เงลาไม่ค่อยอำนวยเท่าไร)
6 @R15904
อาจารย์สันติสุข ผมใส่เงื้อนไขแล้วครับมัน Error ผมลองเอาออกมันก็ยังเหือนเดิม แบบที่โพสครับ
อาจารย์พิชัย ผมไม่ถนัดโคตครับ ผมมั่วเอา มาผสมกัน เดาๆ คำสั่งครับ ลองลบบรรทัดนั้น
บรรทัดนี้ แล้วแก้ไปเรื่อยๆ ส่วนใหญ่จะได้ แต่บางครั้งไม่ได้ก็เข้ามาถามอาจารย์ครับ
อาจารย์พิชัย ผมไม่ถนัดโคตครับ ผมมั่วเอา มาผสมกัน เดาๆ คำสั่งครับ ลองลบบรรทัดนั้น
บรรทัดนี้ แล้วแก้ไปเรื่อยๆ ส่วนใหญ่จะได้ แต่บางครั้งไม่ได้ก็เข้ามาถามอาจารย์ครับ
7 @R15905
เอาคำสั่งเต็มๆที่มีเงื่อนไขมาให้ดูหน่อยสิครับ แล้วแน่ใจหรือไม่ว่า DepositRecord เป็น Recordset ของ DAO ไม่ใช่ ADO
8 @R15906
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "PID=PID"
PID เป็นชื่อฟิลด์ และชื่อ คอนโทลครับ
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "Me.PID=PID"
แบบนี้ก็ลองแล้วครับ Err เหมือนข้างบนครับ
PID เป็นชื่อฟิลด์ และชื่อ คอนโทลครับ
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "Me.PID=PID"
แบบนี้ก็ลองแล้วครับ Err เหมือนข้างบนครับ
9 @R15907
เพิ่มเติมครับ DAO กับ ADO ผมก็ไม่รู้จักครับ ผม ลอกคำสั่งเค้ามาทั้งหมด
10 @R15911
โอเค ผมลองเอาคำของอาจารย์พิชัยมาคิดครับ เลยนั่งคิดว่าเราเข้าใจแบบไหน ก็ทำแบบนั้น ผมนึกถึงวฟอร์มที่ผมหาเรคคอด แล้วเอามาประยุกต์ ได้เป็นแบบนี้ครับ
ผมเพิ่มแค่ Forms!fDurable!ImageFile_path = strPictFile ก็ใช้ได้เลย
ก่อนหน้านี่ก็ ลบๆ เพิ่มๆ อยู่นาน ถ้ามีอะไรแนะนำ ฝากอาจารย์ด้วยครับ
Private Sub SelectFile_Click()
Dim strFileType As String, strFileTypeDesc As String
Dim strPictFile As String
strFileType = "*.bmp;*.jpg;*.gif;*.tif"
strFileTypeDesc = "Pict Files (*.bmp,*.jpg,*.gif,*.tif)"
strPictFile = GetOpenFile(strFileType, strFileTypeDesc)
If strPictFile <> "NoFile" Then
Forms!fDurable!ImageFile_path = strPictFile
End If
Me.Form.Refresh
End Sub
ผมเพิ่มแค่ Forms!fDurable!ImageFile_path = strPictFile ก็ใช้ได้เลย
ก่อนหน้านี่ก็ ลบๆ เพิ่มๆ อยู่นาน ถ้ามีอะไรแนะนำ ฝากอาจารย์ด้วยครับ
11 @R15912
ที่ถูกต้อง ต้องเป็น
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "PID = '" & Me.PID & "'"
DepositRecord.FindFirst "ImageFile_path", "DEPRECIA", "PID = '" & Me.PID & "'"
12 @R15913
มันขึ้น Err ที่ FindFirst เหทมือนเดิมครับ
13 @R15914
ลองเปลี่ยนเป็น
Dim CaseDatabase As DAO.Database
Dim DepositRecord As DAO.Recordset
Dim CaseDatabase As DAO.Database
Dim DepositRecord As DAO.Recordset
14 @R15915
เหมือนเดิมครับอาจารย์
15 @R15919
หมดปัญญา ... ลองส่งเข้า web board email ครับ
16 @R15922
ส่งเข้าบอร์ดแล้วครับอาจารย์
ในวงกลมคือ ปุ่มที่ถามครับ
ในวงกลมคือ ปุ่มที่ถามครับ
17 @R15923
อืม...สงสัยผมจะสมองเสื่อมซะแล้ว ดันไปจำเอา syntax ของ DFirst มาใช้แทนไปเสียแล้ว ที่ถูกคือ DepositRecord.FindFirst "NOID = '" & Me.NOID & "'" แค่นี้เองครับ
18 @R15924
จากที่เขียนบอกมาว่าไม่เข้าใจในคำสั่งแต่ละคำสั่ง อยากแนะนำว่า ต้องเห็นภาพแผนภูมิรวมของ object (เช่นตัว Access เอง หรือตัว DAO http://allenbrowne.com/ser-04.html, ADO เป็นต้น) ว่ามันแตกแขนงจากบนลงล่าง (เป็นเหมือนแผนภูมิองค์กร) มี object อะไรบ้าง แต่ละ object ก็จะมี property เพื่อกำหนดคุณสมบัติ จะมี method เพื่อสั่งให้ object ทำอะไรบ้าง และอาจจะมี event เพื่อเป็นแหล่งให้เราได้ใส่โค้ดเมื่อเกิดเหตุการณ์อะไรขึ้นกับ object http://msdn.microsoft.com/en-us/library/office/dn124645.aspx จริงๆใน Access Help (F1) จะมีเรื่องพวกนี้ใส่ไว้อยู่แล้ว แต่เราก็สามารถหาจาก msdn.microsoft.com ได้เช่นกัน ผมว่าเวอร์ชั่นเก่าๆ เช่น Access XP จะเขียนอธิบายให้เห็นรูปภาพและมีรายละเอียดดีกว่า Access เวอร์ชั่นใหม่ๆ ซึ่งเขาจะไม่มานั่งอธิบายซ้ำอีกแล้ว เขาจะลงรายละเอียดเฉพาะสิ่งที่มีใหม่ในเวอร์ชั่นนั้นๆเท่านั้น ลองศึกษาดูนะครับ
19 @R15926
ขอบพระคุณอาจารย์สันติสุขที่ ให้ความรู้แบบถูกๆ อีกทีครับ เพราะผมมั่วจนได้อะครับ^^
เรื่องพวกนี้ถ้าเข้าใจ เอามาทำประโยชน์ได้มากมายเลยครับ
เรื่องพวกนี้ถ้าเข้าใจ เอามาทำประโยชน์ได้มากมายเลยครับ
Time: 0.2673s
เพิ่มเติมอีกหน่อย วิธีการเก็ยพาธ ตอนแรกนึกว่าทำได้แล้ว(ดัดแปลงมาจากตัวอย่างไฟล์ในบอร์ด)
มันไม่เก็บ พาธ ตามสินค้าของเรา ผมลองมาดูโค๊ต มันก็ไม่มีตรงไหนระบุด้วย จะเอามาดัดแปลง
ก็ไม่รู้จะเพิ่มไว้ตรงไหนครับ
Private Sub SelectFile_Click()
Dim CaseDatabase As Database
Dim DepositRecord As Recordset
Dim strFileType As String, strFileTypeDesc As String
Dim strPictFile As String
strFileType = "*.bmp;*.jpg;*.gif;*.tif"
strFileTypeDesc = "Pict Files (*.bmp,*.jpg,*.gif,*.tif)"
strPictFile = GetOpenFile(strFileType, strFileTypeDesc) 'ตรงนี้เป็นฟังชั่นที่อยู่ในโมดุล
Set CaseDatabase = CurrentDb()
Set DepositRecord = CaseDatabase.OpenRecordset("DEPRECIA")
If DepositRecord.NoMatch = True Then
DepositRecord.AddNew
Else
DepositRecord.Edit
End If
If strPictFile <> "NoFile" Then
DepositRecord.Fields("ImageFile_path").Value = strPictFile
End If
DepositRecord.Update
End Sub
ฟิลด์ที่เป็นรหัสสินค้าชื่อ PID ครับ