กระทู้เก่าบอร์ด อ.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
=================================
If IsNull(ชื่อ Fields) Then
MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
ชื่อ Fields.setfocus
End If
3 @R10767
ขอบคุณมากค่ะ
ลองทำดูแล้วค่ะ ไปใส่ใน event lost focus ค่ะ มี msgbox ขึ้นเตือนค่ะ แต่เวลาคลิก ok แล้วจะขึ้น record ใหม่เลยค่ะ ปล่อยเป็นค่าว่างไปเลยค่ะ เราจะต้องเข้าไป setting ที่ไหนค่ะ
ลองทำดูแล้วค่ะ ไปใส่ใน event lost focus ค่ะ มี msgbox ขึ้นเตือนค่ะ แต่เวลาคลิก ok แล้วจะขึ้น record ใหม่เลยค่ะ ปล่อยเป็นค่าว่างไปเลยค่ะ เราจะต้องเข้าไป setting ที่ไหนค่ะ
4 @R10768
If Nz(ชื่อ Fields, "") = "" Then
MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
SendKeys "+{TAB}"
Me.ชื่อ Fields.SetFocus
End If
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 มาด้วยค่ะ แทนที่จะขึ้นมาแต่เฉพาะของตัวเองค่ะ ต้องไปแก้ไขที่ไหนค่ะ
--------------------------------------------
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
ดึกๆ จะเข้ามาตอบให้
User : accgmail
Pass : accboard
7 @R10778
แก้ไขเมลล์ ครับเป็น
User : accboard
pass : accgmail
User : accboard
pass : accgmail
8 @R10779
ลองใช้คำสั่ง DefaultEditing ดูไหมคับ ประมาณนี้
If IsNull(ชื่อ Fields) Then
MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน !!", vbInformation, "แจ้งเตือน"
Me.Form.DefaultEditing = 4
Else
Me.Form.DefaultEditing = 2
End If
ลองปรับแต่งดูนะครับ เผื่อใช้ได้ตามต้องการ
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 ขึ้นมาต้องไปทำที่ไหนบ้างค่ะ
สอบถามเพิ่มเติมนะค่ะ ถ้าเรามี table master ด้วย และเวลาป้อนข้อมูลเข้าไปจะต้องไปเช็คค่าที่ master table ก่อนว่าค่านี้ตรงกับ table master หรือเปล่าถ้าตรงถึงจะรับค่า แต่ถ้าไม่ตรงให้ขึ้น msgbox ขึ้นมาต้องไปทำที่ไหนบ้างค่ะ
15 @R10794
ทำไมไม่บอกก่อนครับ จะได้อธิบายครั้งเดียว ส่ง ต.ย. ไฟล์มาครั้งเดียวจบ
ลองใช้วิธีการ dlookup ดูครับเช็คว่ามีเงื่อนไขตามที่เราต้องการหรือเปล่าถ้ามีก็ให้รับค่าแล้วไปที่ Record หรือ Fields ถัดไป หากไม่มีก็ขึ้น msgbox เตือน ต.ย. การใช้หาดูในบอร์ดครับ มีมากมาย
ลองใช้วิธีการ dlookup ดูครับเช็คว่ามีเงื่อนไขตามที่เราต้องการหรือเปล่าถ้ามีก็ให้รับค่าแล้วไปที่ Record หรือ Fields ถัดไป หากไม่มีก็ขึ้น msgbox เตือน ต.ย. การใช้หาดูในบอร์ดครับ มีมากมาย
16 @R10795
ไหนๆ ก็โหลดไฟล์ ต.ย. มาแล้วเลยแก้ไขแล้วตามที่ต้องการลองดูแล้วกันครับ
17 @R10796
ขอบคุณมากค่ะ K.Sak
ใช่ตามที่ 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
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
Time: 0.3494s