กระทู้เก่าบอร์ด อ.Yeadram
1,667 6
URL.หัวข้อ /
URL
คำสั่ง DMax เริ่มต้นไม่ได้ครับ ระบบฟ้อง Error
ผมใช้คำสั่งนี้ครับ
mMax = DMax("Val([No_Document])", "Data", "[No_Document]")
ทราบว่ามัน Error เพราะ ฟิลด์ No_Document มันเริ่มต้น Record แรกเลย ตอนแรกคิดว่าคำสั่งนี้น่าจะได้
If No_Document = Null then
No_Document = 1
Else
mMax = DMax("Val([No_Document])", "Data", "[No_Document]")
Endif
แต่ก็ไม่ได้ครับ รบกวนด้วยครับ
mMax = DMax("Val([No_Document])", "Data", "[No_Document]")
ทราบว่ามัน Error เพราะ ฟิลด์ No_Document มันเริ่มต้น Record แรกเลย ตอนแรกคิดว่าคำสั่งนี้น่าจะได้
If No_Document = Null then
No_Document = 1
Else
mMax = DMax("Val([No_Document])", "Data", "[No_Document]")
Endif
แต่ก็ไม่ได้ครับ รบกวนด้วยครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R14900
If MsgBox("ต้องการเพิ่มrecord ใหม่", vbQuestion + vbYesNo, "แจ้ง") = vbYes Then
If IsNull(DLookup("no_document", "Data")) = True Then
no_document = 1
Else
DoCmd.GoToRecord , , acNewRec
no_document = Nz(DMax("no_Document", "Data") + 1)
End If
End If
ไม่ทราบว่าสิ่งที่ต้องการเพิ่มrecord ใหม่หรือเปล่า กรณีนี้ใช้กับฟอร์มที่ผูกกับตารางครับ ถ้าฟอร์ม unboundช่ก็แก้ที่ elseให้ no_document ขึ้นก่อน จากนั้น run sql
If IsNull(DLookup("no_document", "Data")) = True Then
no_document = 1
Else
DoCmd.GoToRecord , , acNewRec
no_document = Nz(DMax("no_Document", "Data") + 1)
End If
End If
ไม่ทราบว่าสิ่งที่ต้องการเพิ่มrecord ใหม่หรือเปล่า กรณีนี้ใช้กับฟอร์มที่ผูกกับตารางครับ ถ้าฟอร์ม unboundช่ก็แก้ที่ elseให้ no_document ขึ้นก่อน จากนั้น run sql
3 @R14919
ขอบคุณ คุณ sorn มากครับ ผมงมอยู่นานเลย
4 @R14920
If No_Document = Null then
No_Document = NZ(DMax("Val([No_Document])", "Data", "[No_Document]"),0) +1
Endif
No_Document = NZ(DMax("Val([No_Document])", "Data", "[No_Document]"),0) +1
Endif
5 @R14921
ถ้าค่า No_Document เป็นตัวเลขอยู่แล้วไม่มี Val() ก็ได้
If No_Document = Null then
No_Document = NZ(DMax("[No_Document]", "Data", "[No_Document]"),0) +1
Endif
ถ้าค่า No_Document เป็นตัวเลขที่เก็บเป็น string (text) ใส่ Val() เพื่อแปลงค่า max ก่อนบวก 1
If No_Document = Null then
No_Document = Val(NZ(DMax("[No_Document]", "Data", "[No_Document]"),0)) +1
Endif
Code ของคุณ Sorn ได้คำตอบที่ถูกต้อง แต่ใช้ code เปลืองครับ มีการตรวจสอบและวาง function ที่ไม่จำเป็นอยู่ด้วย
If No_Document = Null then
No_Document = NZ(DMax("[No_Document]", "Data", "[No_Document]"),0) +1
Endif
ถ้าค่า No_Document เป็นตัวเลขที่เก็บเป็น string (text) ใส่ Val() เพื่อแปลงค่า max ก่อนบวก 1
If No_Document = Null then
No_Document = Val(NZ(DMax("[No_Document]", "Data", "[No_Document]"),0)) +1
Endif
Code ของคุณ Sorn ได้คำตอบที่ถูกต้อง แต่ใช้ code เปลืองครับ มีการตรวจสอบและวาง function ที่ไม่จำเป็นอยู่ด้วย
6 @R14926
ขอบคุณ คุณ PichaiTC ที่มาช่วยตอบอีกแนวทางครับ
ผมนำรหัสของคุณ Sorn ไปใช้แค่ส่วนนี้
If IsNull(DLookup("no_document", "Data")) = True Then
ก็สมบูรณ์แล้วครับ
ผมนำรหัสของคุณ Sorn ไปใช้แค่ส่วนนี้
If IsNull(DLookup("no_document", "Data")) = True Then
ก็สมบูรณ์แล้วครับ
Time: 0.2444s
"Invalid Use of Null"