55
ห้อง MS Access / : ขอถามสอบครับ Error Expected 1
« เมื่อ: 08 ก.ย. 64 , 11:46:59 »ต้องส่งไฟล์มาดูครับ
หน้านี้ครับผม ขอบคุณครับ
https://drive.google.com/file/d/1G2iS1MDoeDU9NLN_6Yo1LmkpnRlmlu5S/view?usp=sharing
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
ต้องส่งไฟล์มาดูครับ
เปลี่ยน CurrentDb.Execute เป็น DoCmd.RunSQL
DoCmd.RunSQL "UPDATE Q_PI_Checkbox SET Q_PI_Checkbox.Selected = Null;"
Me.Requery
Forms!PIScreen!NavigationSubform.Requery
Forms!PIScreen!NavigationSubform!Q_PI_Checkbox_subform.Requery
สงสัย ทำไมไม่ใช้คำสั่ง
DoCmd.RunSQL
แนะนำให้ออกแบบฐานข้อมูลให้เหมาะสมครับ เนื่องจากหลักการของฐานข้อมูลนั้น ไม่ควรมีจำนวนฟิลด์เยอะๆ
อย่าลืมนะครับว่า ฐานข้อมูล ไม่ใช่ Excel
การออกแบบตารางควรจะกำหนดจำนวนฟิลด์ให้น้อยเข้าไว้
แนะนำว่าควรเปลี่ยนรูปแบบตารางดังนี้
tblResult มีฟิลด์ ID, CheckID, Result
โดย ID เป็นรหัสของเจ้าของชิ้อ ซึ่งผมไม่รู้ว่าเป็นชื่อคนหรือชื่องานที่ตรวจ
CheckID เป็นครั้งที่ตรวจ
Result เป็นผลการตรวจ
ตารางแบบนี้ ผู้ใช้สามารถเพิ่มข้อมูลได้ไม่จำกัดจำนวนครั้ง
ท่านดูในโค้ดที่ copy มาว่า เป็นภาษาไทยมาครบไหม
บ้างที่เรา copy Code มาจากเว็บ ภาษาไทยจะเพี้ยน วิธีแก้่คือ
1.กด Copy Code จาก เว็บมา
2.เปิด Excel ขึ้นมา เลือกที่ Cell ได้ก็ได้กดคลิ๊กขวา >> วางแบบพิเศษ >> มันจะมี ข้อความ Unicode กับ ข้อความ
3.ให้เลือก ข้อความ แล้วดูว่าโค๊ดที่เรา copy มา เป็นภาษาไทย ถูกต้องหรือไม่
4.ถ้าถูกต้องแล้ว ให้ Copy โค๊ดนี้ไปวาง ในโปรแกรมเรา
dวัน: IIf(DateDiff("d",DateAdd("m",DateDiff("m",[DOB],Date()),[DOB]),Date())<0,DateDiff("d",DateAdd("m",DateDiff("m",[DOB],Date())-1,[DOB]),Date()),DateDiff("d",DateAdd("m",DateDiff("m",[DOB],Date()),[DOB]),Date()))
dเดือน: IIf(DateDiff("d",DateAdd("m",DateDiff("m",[DOB],Date()),[DOB]),Date())<0,(DateDiff("m",[DOB],Date())-1) Mod 12,DateDiff("m",[DOB],Date()) Mod 12)
dปี: IIf(DateDiff("d",DateAdd("m",DateDiff("m",[DOB],Date()),[DOB]),Date())<0,(DateDiff("m",[DOB],Date())-1)\12,DateDiff("m",[DOB],Date())\12)
OwnAge: IIf([dวัน]>0 And [dเดือน]>0 And [dปี]>0,[dปี] & " ปี " & [dเดือน] & " เดือน " & [dวัน] & " วัน",IIf([dวัน]=0 And [dเดือน]>0 And [dปี]>0,[dปี] & " ปี " & [dเดือน] & " เดือน ",IIf([dวัน]>0 And [dเดือน]=0 And [dปี]>0,[dปี] & " ปี " & [dวัน] & " วัน",IIf([dวัน]>0 And [dเดือน]>0 And [dปี]=0,[dเดือน] & " เดือน " & [dวัน] & " วัน",IIf([dวัน]=0 And [dเดือน]=0 And [dปี]>0,[dปี] & " ปี ",IIf([dวัน]=0 And [dเดือน]>0 And [dปี]=0,[dเดือน] & " เดือน ",IIf([dวัน]>0 And [dเดือน]=0 And [dปี]=0,[dวัน] & " วัน","")))))))
ช่อง TextUpdate พิมพ์ถูกไหมครับ
จากรูปที่อธิบายมีช่องให้ใส่ในฟอร์ม ชื่อ TextUpdate
เลือก event on click จากปุ่ม "บันทึก" ที่สร้างไว้ (ผมไม่รู้ว่าปุ่มชื่ออะไร แต่ผมตั้งชื่อเป็น cmdSave นะครับ)
เลือก code builder
พิมพ์ Me.TextUpdate = Date() (ให้โปรแกรมใส่วันที่ จากในเครื่อง ลงในช่อง TextUpdate)
จะได้เป็น
Private Sub cmdSave_Click()
Me.TextUpdate = Date()
End Sub
เพิ่มเติม1 : กรณี อยากได้ วันที่+เวลา ใช้ Now() แทน Date() ก็ได้ครับ
เพิ่มเติม2 : กรณี อยากให้แสดงผลเป็น รูปแบบอื่นๆ เช่น 1/7/64 ,02/09/2564 ใส่คำสั่ง Format() ช่วยได้ครับ
Me.TextUpdate = Format(Date(),"dd/mm/yyyy") -> 01/08/2564
Me.TextUpdate = Format(Date(),"d/m/yyyy") -> 1/8/2564
Me.TextUpdate = Format(Date(),"d/m/yy") -> 1/8/64
อย่าลืมเชื่อม TextUpdate กับ field เพื่อเก็บข้อมูลด้วยนะครับ
ในช่องอัพเดท
ลองใส่ =date() ดูนะคะว่าได้หรือเปล่า
ใส่ในค่าเริ่มต้นค่ะ