บอร์ดเรียนรู้ Access สำหรับคนไทย
Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: arampong ที่ 15 มี.ค. 61 , 15:31:22
-
เรียนอาจารย์
ผมเขียน Insert Into มี Form หลัก และ Form ย่อย และผมเขียน Codeที่SubForm ครับ แต่มัน Error 2465 ดูจาก Error คนหาดูเขาว่าผมเรียกใช้ที่ SubForm แต่ประกาศที่ Form หลัก ถ้าผมจะใช้จะแก้อย่างไรครับ น่าจะเปลี่ยนตรงนี้Me.Name แต่จะเขียนเช่นไรครับ
DoCmd.SetWarnings False
DoCmd.GoToRecord acDataForm, Me.Name, acFirst
DoCmd.RunSQL "Insert into TB_Main2([CodeID], [CalibrationDate],[NaxtDateCalibration],[Frequency],[LocationCalibration]) values('" & CodeID & "', '" & CalibrationDate & "','" & NaxtDateCalibration & "','" & Frequency & "','" & LocationCalibration & "')"
DoCmd.SetWarnings True
ขอบคุณมากครับ
-
ออบเจ็กต์ที่ชื่อ Name อาจสร้างปัญหาได้ ถ้าจำไม่ผิดมันจะเป็นคำที่สร้างปัญหาในการเขียน Code ได้ง่ายมาก อาจเปลี่ยนชื่อออบเจ็กต์เป็น txtName ดูครับ
-
จาก DoCmd.GoToRecord acDataForm, Me.Name, acFirst
สมมติว่า subform นี้มีชื่อฟอร์มของตัวเองว่า "DetailForm"
ดังนั้นคำสั่งข้างบนก็จะแทนค่าได้ว่า DoCmd.GoToRecord acDataForm, "DetailForm", acFirst
แต่เนื่องจากฟอร์ม DetailForm นี้ถูกเปิดเป็น subform อยู่ภายใต้ฟอร์มอื่น ดังนั้น Access มันจะมองหาฟอร์มที่เปิดอยู่ในชื่อ "DetailForm" ไม่เจอมันเลยแทง Error ออกมา
วิธีการแก้คือ ถ้าจะเคลื่อนไปที่ record แรกของตัวเอง ก็เพียงแต่ใช้คำสั่ง
DoCmd.GoToRecord , , acFirst
ง่ายๆเลย ไม่ต้องระบุชื่ออะไร Access มันจะวิ่งหาใน Object ที่คำสั่งนี้อยู่ตามปกติ
-
ขอบคุณมากครับทั้ง 2 ท่าน
ได้ความรู้ใหม่อีกแล้วครับ
ขอบคุณครับ