รบกวนช่วยหน่อยครับ runtime error 2498
กระทู้เก่าบอร์ด อ.Yeadram

 1,355   5
URL.หัวข้อ / URL
รบกวนช่วยหน่อยครับ runtime error 2498

form ของผม
ใช้ combobox เพื่อเลือกข้อมูลครับ
ตอนเปิดมาปกติดีเลือกข้อมูลได้ครับ

แต่พอลบข้อมูลแล้วกด ปุ่มเพื่อเปิด form ใหม่จะพบปัญหา ครับ
run-time error 2498 อากิวเมนต์ ครับ
form หลัก frmcustomers
ผมใช้ afterupdate นะครับ
Private Sub Combo3_AfterUpdate()
Me![txtorgname].SetFocus
DoCmd.GoToRecord , , acFirst
DoCmd.FindRecord Me![Combo3]
Me![Combo3].SetFocus

End Sub
อันนี้ผมเขียนให้มันเอาข้อมูลไป เปิดที่ subform ครับ
subform frmtax1 ครับ
ตรง form หลักผมเพิ่มปุ่มเอาไว้ add ข้อมูลเพิ่มใน combo3 นะครับ
พอข้อมูลว่าง ที่ combo3 จะเกิด error ด้านบนครับ
ไม่ทราบว่าจะต้องแก้ไขอย่างไรครับ


ปัญหาที่ 2 เรื่อง วันที่ บ้างครั้งจะเป็น 30/12/2442 ครับ
   เข้าใจ้ว่าเป็นค่าว่างของข้อมูลวันที่ครับ
   ไม่ทราบว่าพอจะมีวิธีแก้ไขมั้ยครับ

ขอบคุณล่วงหน้าด้วยครับ

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R07541
ปัญหาแรก ไม่ค่อยเข้าใจคำถามนักครับ
ตอบแบบหยาบๆ แบบคร่าวๆ ปัญหาของคุณน่าจะเกิดจากแหล่งข้อมูลของคอมโบ ไม่สัมพันธ์กันกับเหตุการณ์ คือคุณวางแผนงานไม่รอบคอบ เช่นว่า
-ตอนต้น แหล่งข้อมูลของคอมโบจะมีกี่เรคคอร์ดกี่คอลัมน์
-เมื่อทำงานไปแล้ว ถ้าเป็นงานเพิ่มข้อมูล แหล่งข้อมูลจะเป็นเท่าไหร่
-หรือเมื่อทำงานไปแล้ว เป็นงานลบข้อมูล แหล่งข้อมูลจะเหลือเท่าไหร่ เหลือครบทุกคอลัมน์หรือไม่
ต้องคิดแทนมันครับ ต้องคิดดักไว้ในทุกๆ เหตุการณ์ แล้ววางแผนให้ดี

ปัญหาที่สอง วันที่ผิดพลาดคลาดเคลื่อน
สาเหตุของปัญหาเป็นไปได้หลายอย่างครับ
- ป้อนข้อมูลจากเครื่องที่ต่างกัน เข้าฐานข้อมูลเดียวกัน
- ป้อนข้อมูลคนละรูปแบบกัน สมมติบางคนป้อน แบบสั้น 01/01/11 บางคนป้อนแบบสั้นเหมือนกัน แต่เป็น 01/01/54 ผลที่มีการบันทึกเข้าตารางจะแตกต่างกันครับ
- ป้อนข้อมูลผิดประเภท เช่น ฟิลด์ข้อมูลเป็นชนิด Date/Time แต่ข้อมูลที่ป้อนเข้าไปเป็น Double ระบบจะปรับเปลี่ยนข้อมูลอัตโนมัติอยู่แล้ว แต่จะปรับผิดไม่ตรงความต้องการแน่นอน สมมติเช่นป้อน 10.11 เข้าในช่อง Date/Time หรือด้วยความเข้าใจผิดคิดว่ารูปแบบวันที่สั้นแบบนี้น่าจะกรอกได้ดังนั้นกรอกลงไปทันที่ ว่า 01012010 หรือ 010153 หรือ 010111 เหล่านี้ ระบบจะมองเป็น Number ครับ ไม่ใช่ Date/Time เมื่อมันมองว่าไม่ใช่ Date/Time มันก็จะพยามแปลงค่าเอาเองครับ ซึ่งผลการระบบอัตโนมัติดังกล่าว ก็เลยทำให้เกิดปัญหาครับ

หรือข้อมูลที่เป็นผลจากการคำนวนวันที่   เช่นบางคน เอา Date/Time ลบกับ Date/Time แล้วเอาผลลัพธ์ป้อนเข้าตาราง มันก็ผิดประเภท เพราะผลของการคำนวนแบบนี้ ไม่ได้คืนค่ามาเป็น Date/Time แน่นอน

ลองย้อนดูงานของคุณใหม่อีกครั้ง หรือไม่ก็ถามใหม่ให้จินตนาการด้วยว่า ผู้ตอบ ไม่รู้ว่าโปรแกรมของคุณเป็นอย่างไร งานของคุณอาจจะเป็นงานที่ไม่เหมือนใครมาก่อน ดังนั้นต้องบอกรายละเอียดที่ชัดเจน ผู้ตอบถึงจะคิดตามได้ถูกต้อง
2 @R07542
ถ้า combo3 ไม่มีข้อมูลแล้วทำให้เกิด error คุณก็ตรวจสอบ combo3 ก่อนสิครับ ถ้ามันเป็น Null หรือ Zero-Length String ก็ข้ามไป ไม่ต้องทำงาน

... Combo3_AfterUpdate ...
   If Nz(Me.Combo3,"") = "" then exit sub

   Me![txtorgname].SetFocus
   ...
   ...

ปัญหาที่ 2 ก็ตรวจสอบตามที่ อ.yeadram บอกดูนะครับ
3 @R07549
ผมขอรบกวนช่วยดูโค๊ดใน E-mail accboard ให้หน่อยได้มั้ยครับ
-------------------------------------------------
แล้วตรงส่วนของ combobox3 นั้น
คือจะเป็นการเลือกข้อมูลเพื่อนำไปแสดงใน subform นะครับ
แล้วถ้าไม่มีก็ให้ทำการกดปุ่มเพื่อเพิ่มนะครับ
ส่วนเรื่องแหล่งของข้อมูลนั้นผม ดึง query มาจากตารางนะครับ
ให้ขึ้นใน combo3 นะครับ
แต่ผมไม่รู้จะเขียนดัก error ยังไงครับให้ถูกต้องในกรณีเกิดปัญหา
และข้อมูลที่ไม่มีก็จะเป็นการกดเพื่อเพิ่มข้อมูลใน combo3 นะครับ
จะเป็นการเรียน form เลยนะครับ
ตรงเลยเกิด error ดังกล่าวครับ
-----------------------------------------------------
ยังไงช่วยแนะนำด้วยได้มั้ยครับ
denpongw@hotmail.com
4 @R07558
เปลี่ยนจาก If Combo3 = Null Then ไปเป็น If Nz(Me.Combo3, "") = "" Then
5 @R07559
ขอบคุณครับ คุณสันติสุขครับ
ผมเติมโค๊ดอีดนิดหน่อยก็ไม่พบ error แล้วครับ
และต้องขอบคุณ คุณyeadram ที่ช่วยตอบปัญหาของผมครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4362s