สอบถาม Insert into ครับแต่ใช้ที่ Subform ครับ



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

15 มี.ค. 61 , 15:31:22
อ่าน 683 ครั้ง

arampong

เรียนอาจารย์
              ผมเขียน 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


ขอบคุณมากครับ

 

15 มี.ค. 61 , 16:02:45
ตอบกลับ #1

OddyWriter

> สอบถาม Insert into ครับแต่ใช้ที่ Subform ครับ
« ตอบกลับ #1 เมื่อ: 15 มี.ค. 61 , 16:02:45 »
ออบเจ็กต์ที่ชื่อ Name อาจสร้างปัญหาได้ ถ้าจำไม่ผิดมันจะเป็นคำที่สร้างปัญหาในการเขียน Code ได้ง่ายมาก อาจเปลี่ยนชื่อออบเจ็กต์เป็น txtName ดูครับ




กินร้อน ช้อนตัวเอง จานใครจานมัน ออกนอกบ้านใส่หน้ากากอนามัยหรือหน้ากากผ้า
 

15 มี.ค. 61 , 22:29:24
ตอบกลับ #2

pizza_p

> สอบถาม Insert into ครับแต่ใช้ที่ Subform ครับ
« ตอบกลับ #2 เมื่อ: 15 มี.ค. 61 , 22:29:24 »
จาก DoCmd.GoToRecord acDataForm, Me.Name, acFirst

สมมติว่า subform นี้มีชื่อฟอร์มของตัวเองว่า "DetailForm"
ดังนั้นคำสั่งข้างบนก็จะแทนค่าได้ว่า DoCmd.GoToRecord acDataForm, "DetailForm", acFirst

แต่เนื่องจากฟอร์ม DetailForm นี้ถูกเปิดเป็น subform อยู่ภายใต้ฟอร์มอื่น ดังนั้น Access มันจะมองหาฟอร์มที่เปิดอยู่ในชื่อ "DetailForm" ไม่เจอมันเลยแทง Error ออกมา

วิธีการแก้คือ ถ้าจะเคลื่อนไปที่ record แรกของตัวเอง ก็เพียงแต่ใช้คำสั่ง
DoCmd.GoToRecord , , acFirst
ง่ายๆเลย ไม่ต้องระบุชื่ออะไร Access มันจะวิ่งหาใน Object ที่คำสั่งนี้อยู่ตามปกติ

 

16 มี.ค. 61 , 08:11:18
ตอบกลับ #3

arampong

> สอบถาม Insert into ครับแต่ใช้ที่ Subform ครับ
« ตอบกลับ #3 เมื่อ: 16 มี.ค. 61 , 08:11:18 »
ขอบคุณมากครับทั้ง 2 ท่าน
ได้ความรู้ใหม่อีกแล้วครับ

ขอบคุณครับ

 


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