กระทู้เก่าบอร์ด อ.Yeadram
1,235 5
URL.หัวข้อ /
URL
Preview ค่าหนึ่ง Print ออกมาอีกค่า หนึ่ง
เกิดจากอะไร แก้ไขยังงัย
ฟอร์ม1 มี textbox1 กับ textbox2
textbox1 = ค่าที่ได้จากบันทึกสมมุติเท่ากับ10
textbox2 = Dlookup(ค่าจากตารางอื่น สมมุติเท่ากับ5)+textbox1
เมื่อรันฟอร์มแล้ว textbox2 = 15 (ถูกต้องตามนี้)
ผมสร้าง Report เพื่อแสดงค่าในฟอร์ม1 โดยมี
textbox3 =Forms!ฟอร์ม1!textbox2
ค่าที่ได้ของ textbox3 เมื่อรันแล้ว มันไปเท่ากับ Dlookup(ค่าจากตารางอื่น สมมุติเท่ากับ5)
ซึ่งเท่ากับ 5 นั่นเอง และยิ่ง งง เพิ่มขึ้น ผมสั่งพิมพ์ textbox3 กับออกมาเท่ากับ 15
ซึ่งถูกต้อง เฮ้ย ทำไม Preview ค่าหนึ่ง Print ออกมาอีกค่า หนึ่ง
ใครช่วยตอบข้อสงสัยหน่ยได้มัยครับ ผมลองไล่คำสังว่าอะไรก่อนหลังแล้วยังหาไม่เจอ
เพราะจริงๆ รายงานมันซับซ้อนกว่านี้ ผมตัดมาส่วนที่แปลกเท่านั้น
ฟอร์ม1 มี textbox1 กับ textbox2
textbox1 = ค่าที่ได้จากบันทึกสมมุติเท่ากับ10
textbox2 = Dlookup(ค่าจากตารางอื่น สมมุติเท่ากับ5)+textbox1
เมื่อรันฟอร์มแล้ว textbox2 = 15 (ถูกต้องตามนี้)
ผมสร้าง Report เพื่อแสดงค่าในฟอร์ม1 โดยมี
textbox3 =Forms!ฟอร์ม1!textbox2
ค่าที่ได้ของ textbox3 เมื่อรันแล้ว มันไปเท่ากับ Dlookup(ค่าจากตารางอื่น สมมุติเท่ากับ5)
ซึ่งเท่ากับ 5 นั่นเอง และยิ่ง งง เพิ่มขึ้น ผมสั่งพิมพ์ textbox3 กับออกมาเท่ากับ 15
ซึ่งถูกต้อง เฮ้ย ทำไม Preview ค่าหนึ่ง Print ออกมาอีกค่า หนึ่ง
ใครช่วยตอบข้อสงสัยหน่ยได้มัยครับ ผมลองไล่คำสังว่าอะไรก่อนหลังแล้วยังหาไม่เจอ
เพราะจริงๆ รายงานมันซับซ้อนกว่านี้ ผมตัดมาส่วนที่แปลกเท่านั้น
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R15096
ลองมาถึงบรรทัดนี้
DoCmd.RunCommand acCmdSaveRecord
จำไม่ได้ว่ามีไว้ทำไม แต่ลองเอาคำสัง บรรทัดนี้ออก
ก็ใช้ได้เลย แต่มันเกิดจากอะไร อาจารย์อธิบายให้้หน่อยครับ
DoCmd.RunCommand acCmdSaveRecord
จำไม่ได้ว่ามีไว้ทำไม แต่ลองเอาคำสัง บรรทัดนี้ออก
ก็ใช้ได้เลย แต่มันเกิดจากอะไร อาจารย์อธิบายให้้หน่อยครับ
3 @R15118
สรุปว่าการลบ
DoCmd.RunCommand acCmdSaveRecord
มีผลกับรายงานอีก
สงสัยต้องหาวิธีใหม่อีก -*-
DoCmd.RunCommand acCmdSaveRecord
มีผลกับรายงานอีก
สงสัยต้องหาวิธีใหม่อีก -*-
4 @R15119
ลองเอาโค้ดทั้งหมดมาให้ดูหน่อย เพราะไม่เข้าใจว่า DoCmd.RunCommand acCmdSaveRecord มีไปทำไม มันเอาไว้เซฟเรคอร์ดบนหน้าฟอร์ม
5 @R15121
มันส่งค่าหลายตัวครับอาจารย์
ก็เริ่ม จากฟังชันที่อาจารย์เคยแนะนำไว้ เรื่อง รันเลขที่เลขที่ใบเสร็จฯ
ผมรันในหน้าฟอร์มแล้ว ยังไม่บันทึกลงฐานข้อมูล เพราะเผื่อผู้ใช้จะลบอีก
ผมเลยมาสั่ง DoCmd.RunCommand acCmdSaveRecord
เพื่อบันทึก เวลานานหลายเดือนเลยลืมครับ เมื่อกี้เพิ่งไล่จนเจอ
ตอนนี้ผมแก้ปัญหาได้แล้วครับ โดยคำนวนตามหน้าฟอร์มเลยครับ
ไม่ใช้คำสั่งให้ =Forms!ฟอร์ม1!textbox2 แล้ว แต่ที่สงสัยคือ
ทำไมมัน Preview ค่าหนึ่ง(ค่าที่ผิด) Print ออกมาอีกค่า หนึ่ง (ค่าที่ถูก)
ก็เริ่ม จากฟังชันที่อาจารย์เคยแนะนำไว้ เรื่อง รันเลขที่เลขที่ใบเสร็จฯ
ผมรันในหน้าฟอร์มแล้ว ยังไม่บันทึกลงฐานข้อมูล เพราะเผื่อผู้ใช้จะลบอีก
ผมเลยมาสั่ง DoCmd.RunCommand acCmdSaveRecord
เพื่อบันทึก เวลานานหลายเดือนเลยลืมครับ เมื่อกี้เพิ่งไล่จนเจอ
ตอนนี้ผมแก้ปัญหาได้แล้วครับ โดยคำนวนตามหน้าฟอร์มเลยครับ
ไม่ใช้คำสั่งให้ =Forms!ฟอร์ม1!textbox2 แล้ว แต่ที่สงสัยคือ
ทำไมมัน Preview ค่าหนึ่ง(ค่าที่ผิด) Print ออกมาอีกค่า หนึ่ง (ค่าที่ถูก)
Time: 0.3101s
(ค่าที่ได้มันน่าจะเท่ากัน แต่มันกับไม่เท่ากัน)
เปลี่ยนเป็น textbox3 =Forms!ฟอร์ม1!textbox2 +textbox1
(คราวนี้ค่าออกมาเท่ากันได้)
แต่เมื่อ Print ออกมา ค่ากับผิด ผิดไป = textbox1 ที่บวกเข้ามา