ตรวจสอบค่า fields
กระทู้เก่าบอร์ด อ.Yeadram

 5,274   19
URL.หัวข้อ / URL
ตรวจสอบค่า fields

กรณีที่เราต้องการจะตรวจสอบค่าของ fields สุดท้ายของ form ก่อนที่ form จะขึ้นหน้าใหม่ ค่าสุดท้ายของ Fields จะต้องไม่เป็นค่าว่าง และต้องการให้มี msgbox ขึ้นมาแจ้งเตือนว่าคุณจะต้องใส่ค่าของ fields นี้ด้วย และถ้าไม่ใส่ค่าเข้าไป form ก็จะไม่ขึ้นหน้าใหม่ให้ โดยไม่ต้องการให้ค่าที่ขึ้นมาเป็นของระบบ ตามรูปค่ะ

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

1 @R10762
2 @R10766
ไม่เข้าใจครับ ขึ้น form หน้าใหม่ หมายถึงอะไร หากดูจาก ต.ย. น่าจะเป็นขึ้น record ใหม่มากกว่านะ ครับ

=================================
If IsNull(ชื่อ Fields) Then
    MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
    ชื่อ Fields.setfocus
End If
3 @R10767
ขอบคุณมากค่ะ

ลองทำดูแล้วค่ะ ไปใส่ใน event lost focus ค่ะ มี msgbox ขึ้นเตือนค่ะ แต่เวลาคลิก ok แล้วจะขึ้น record ใหม่เลยค่ะ ปล่อยเป็นค่าว่างไปเลยค่ะ เราจะต้องเข้าไป setting ที่ไหนค่ะ
4 @R10768
If Nz(ชื่อ Fields, "") = "" Then
    MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
    SendKeys "+{TAB}"
    Me.ชื่อ Fields.SetFocus
End If
5 @R10769
ยังไม่ได้ค่ะ
--------------------------------------------
Private Sub JANCode_GotFocus()
If Nz(SerialNumber, "") = "" Then
    MsgBox "Please Input Serial Number!!   ", vbCritical, "Warning"
    SerialNumber.SetFocus
End If
End Sub
--------------------------------------------
Private Sub JANCode_LostFocus()
If Nz(JANCode, "") = "" Then
    MsgBox "Please Input JANCode !!", vbCritical, "Warning"
    SendKeys "+{TAB}"
    Me.JANCode.SetFocus
End If
End Sub
--------------------------------------------------
Private Sub SerialNumber_AfterUpdate()
If Not IsNumeric([SerialNumber]) Then
    MsgBox "Please Input Model Name !!", vbCritical, "Warning"
    Me.SerialNumber = Null
    Me.SerialNumber.SetFocus
End If
End Sub
------------------------------------------------
Private Sub SerialNumber_GotFocus()
If Nz(ModelName, "") = "" Then
'   MsgBox "Please Input Model Name !!   ", vbInformation, "Warning"
    ModelName.SetFocus
End If
End Sub
------------------------------------------------
เขียน code ตามด้านบนค่ะ พอมาถึง Fileds "SerialNumber" กำหนดไว้ต้องรับค่าเป็น Number เท่านั้นพอใส่เป็น text จะมี msgbox ขึ้นมา แต่ไปเอา msgbox ของ filed JANCode มาด้วยค่ะ แทนที่จะขึ้นมาแต่เฉพาะของตัวเองค่ะ ต้องไปแก้ไขที่ไหนค่ะ
6 @R10770
ลองส่งไฟล์ ต.ย. มาให้ดูที่เมลล์กลาง หน่อยครับ
ดึกๆ จะเข้ามาตอบให้

User : accgmail
Pass : accboard
7 @R10778
แก้ไขเมลล์ ครับเป็น
User : accboard
pass : accgmail
8 @R10779
ลองใช้คำสั่ง DefaultEditing ดูไหมคับ ประมาณนี้

If IsNull(ชื่อ Fields) Then
    MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
    Me.Form.DefaultEditing = 4
Else
    Me.Form.DefaultEditing = 2
End If

ลองปรับแต่งดูนะครับ เผื่อใช้ได้ตามต้องการ
9 @R10780
ส่ง mail ไปแล้วค่ะ
10 @R10781
mail ส่วนกลางอยู่ที่ send ค่ะ ชื่อ ตรวจสอบค่า fileds
11 @R10783
ลองกำหนดค่า Validateion Rule กับ Validation Text ที่ Field ใน Table เลยดีไหมครับ
12 @R10784
ขอตัวอย่าได้ไหมค่ะ
13 @R10788
ผมโหลดไฟล์ ต.ย. มาดูแล้วและแก้ไขให้ ลองดูนะครับ ว่าตรงตามที่ต้องการหรือไม่ครับ
14 @R10792
จริงๆ ต้องการให้ขึ้น msgbox ที่เราเขียนเองค่ะไม่ใช่ของระบบ แต่แบบนี้ใช้งานได้ค่ะ

สอบถามเพิ่มเติมนะค่ะ ถ้าเรามี table master ด้วย และเวลาป้อนข้อมูลเข้าไปจะต้องไปเช็คค่าที่ master table ก่อนว่าค่านี้ตรงกับ table master หรือเปล่าถ้าตรงถึงจะรับค่า แต่ถ้าไม่ตรงให้ขึ้น msgbox ขึ้นมาต้องไปทำที่ไหนบ้างค่ะ
15 @R10794
ทำไมไม่บอกก่อนครับ จะได้อธิบายครั้งเดียว ส่ง ต.ย. ไฟล์มาครั้งเดียวจบ

ลองใช้วิธีการ dlookup ดูครับเช็คว่ามีเงื่อนไขตามที่เราต้องการหรือเปล่าถ้ามีก็ให้รับค่าแล้วไปที่ Record หรือ Fields ถัดไป หากไม่มีก็ขึ้น msgbox เตือน ต.ย. การใช้หาดูในบอร์ดครับ มีมากมาย
16 @R10795
ไหนๆ ก็โหลดไฟล์ ต.ย. มาแล้วเลยแก้ไขแล้วตามที่ต้องการลองดูแล้วกันครับ
17 @R10796
ขอบคุณมากค่ะ K.Sak

ใช่ตามที่ K.Sak จัดมาเลยค่ะ ขอบคุณมากค่ะ
18 @R10815
ขอข้อมูลเพิ่มเติมค่ะ
1) เช็คค่า 2 fields จาก table master แล้วไม่ตรงจะให้ขึ้น msgbox ถ้าใส่ค่าตรงตาม table master ก็จะให้ขึ้น record ใหม่ เขียนแบบนี้ค่ะแต่ขึ้น error

Private Sub txt_GotFocus()
If Nz(JANCode, "") = "" Then
    MsgBox "Please Input JANCode !!   ", vbCritical, "Warning"
   JANCode.SetFocus
If IsNull(DLookup("ModelName", "OutINMaster", "[ModelName] = [Forms]![OutIN_New]![ModelName] and [JANCode] = [Forms]![OutIN_New]![JANCode]")) Then
    MsgBox "Find Not Found !!     ", vbCritical, "Warning"
    JANCode.SetFocus
    JANCode.Value = Null
Else
DoCmd.GoToRecord acDataForm, "OutIN_New", acNewRec
End If
End Sub
===============================================
ตรวจสอบค่าที่ซ้ำกัน ถ้า "Model Name" กับ "Serial Numember" ซ้ำกันไม่ให้รับค่า แต่ถ้าไม่ซ้ำยอมให้ key ค่าได้ ลองเขียน code แล้วแค่เจอซ้ำ "Serial Number" ที่ ซ้ำก็ไม่ยอมแล้ว ลองใส่ code แบบนี้ค่ะ

Private Sub SerialNumber_BeforeUpdate(Cancel As Integer)

If DLookup("SerialNumber", "ScanOutIN", "SerialNumber = [Forms]![OutIN_New]![SerialNumber]") > 0 Then
    MsgBox "Booking No นี้ มีรายการอยู่แล้ว." & vbCrLf & "กรุณาตรวจสอบรายการนี้ใหม่อีกครั้ง.", vbInformation
    Cancel = True
    SendKeys "{ESC}"
     
Else
    DoCmd.RunCommand acNewRce

End If

End Sub
19 @R10819
a
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3494s