กระทู้เก่าบอร์ด อ.Yeadram
1,434 7
URL.หัวข้อ /
URL
ขอโค้ดเตือนเมื่อมีการแก้ไขข้อมูลจากค่าเริ่มต้นค่ะ
ขอรบกวรอาจารย์อีกแล้วค่ะ หนูสร้างฟอร์มสำหรับกรอกข้อมูล ชื่อ/ที่อยู่ ของพนักงานค่ะ ในฟอร์มจะมีอยู่ช่องหนึ่ง สำหรับใส่ข้อมูลจังหวัดซึ่งหนูได้กำหนดค่าเริ่มต้นเอาไว้ว่า"กรุงเทพมหานคร"
ทีนี้หนูอยากกำหนดเหตการสำหรับช่องนี้ว่า หากมีการเปลี่ยนข้อความในช่องนี้เป็นจังหวัดอื่นๆ ก็อยากให้มี msgBox ขึ้นมาถามว่า"คุ?ต้องการเปลี่ยนเป็นจังหวัดอื่นใช่หรือไม่" อะไรทำนองนี้แหละค่ะ เมื่อผู้ใช้คลิกตอบ "ไม่ใ่ช่" ก็ให้กลับไปที่ข้อความเริ่มต้นเดิม "กรุงเทพมหานคร" แต่ถ้าผู้ใช้ยืนยันคลิกตอบว่า "ใช่" ก็ให้ผ่านไปโดยใช้ข้อความตามที่เขาระบุค่ะ
หนูเคยเห็นว่ามีผู้ถามในแนวนี้อยู่เหมือนกัน แต่หนูค้นหาไม่เจอ เลยต้องขอรบกวรอาจารย์ด้วยค่ะ
ทีนี้หนูอยากกำหนดเหตการสำหรับช่องนี้ว่า หากมีการเปลี่ยนข้อความในช่องนี้เป็นจังหวัดอื่นๆ ก็อยากให้มี msgBox ขึ้นมาถามว่า"คุ?ต้องการเปลี่ยนเป็นจังหวัดอื่นใช่หรือไม่" อะไรทำนองนี้แหละค่ะ เมื่อผู้ใช้คลิกตอบ "ไม่ใ่ช่" ก็ให้กลับไปที่ข้อความเริ่มต้นเดิม "กรุงเทพมหานคร" แต่ถ้าผู้ใช้ยืนยันคลิกตอบว่า "ใช่" ก็ให้ผ่านไปโดยใช้ข้อความตามที่เขาระบุค่ะ
หนูเคยเห็นว่ามีผู้ถามในแนวนี้อยู่เหมือนกัน แต่หนูค้นหาไม่เจอ เลยต้องขอรบกวรอาจารย์ด้วยค่ะ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02944
ขอบคุณค่ะอาจารย์ แต่ว่า..ยังไม่ตรงตามที่หนูต้องการค่ะ คือมันมีปุ่มให้คลิก OK เพียงปุ่มเดียวเท่านั้น ตามรูปตัวอย่างค่ะ
แต่ว่าหนูอยากให้มันมีปุ่ม Cancel ด้วยค่ะ เพื่อเป็นทางเลือก คือเมื่อคลิกปุ่ม Cancel แล้วให้มันกลับไปที่ค่า Default เช่นเดิมคือ "กรุงเทพมหานคร" ค่ะ ต้องขอรบกวนอาจารย์โปรดเพิ่มเติมให้หนูอีกนิดนึงนะคะ
ขอบคุณค่ะ
แต่ว่าหนูอยากให้มันมีปุ่ม Cancel ด้วยค่ะ เพื่อเป็นทางเลือก คือเมื่อคลิกปุ่ม Cancel แล้วให้มันกลับไปที่ค่า Default เช่นเดิมคือ "กรุงเทพมหานคร" ค่ะ ต้องขอรบกวนอาจารย์โปรดเพิ่มเติมให้หนูอีกนิดนึงนะคะ
ขอบคุณค่ะ
3 @R02947
if textbox.text <> textbox.defaultvalue then
if msgbox("คุณต้องการเปลี่ยนค่าจาก " & vbcrlf & _
textbox.defaultvalue & " หรือไม่?",vbQuestion+vbYesNo)<>vbyes then cancel =true
'textbox.text=textbox.defaultvalue
'end if
end if
if msgbox("คุณต้องการเปลี่ยนค่าจาก " & vbcrlf & _
textbox.defaultvalue & " หรือไม่?",vbQuestion+vbYesNo)<>vbyes then cancel =true
'textbox.text=textbox.defaultvalue
'end if
end if
4 @R02948
ขอแสดงความคิดเห็นนะครับอาจารย์ ขอเพิ่มเติมจากอาจารย์
ถ้าไม่เลือกให้ลบทิ้ง ลองอย่างนี้ดูครับ
If MsgBox("คุณต้องการเปลี่ยนค่าจาก" & textbox.Text, vbQuestion + vbYesNo, "แจ้ง") = vbYes Then
Else
textbox = ""
End If
ถ้าไม่เลือกให้ลบทิ้ง ลองอย่างนี้ดูครับ
If MsgBox("คุณต้องการเปลี่ยนค่าจาก" & textbox.Text, vbQuestion + vbYesNo, "แจ้ง") = vbYes Then
Else
textbox = ""
End If
5 @R02951
ขอขอบคุณอาจารย์ทั้งสองท่านเลยนะค่ะ
เดี๋ยวเย็นนี้จะทดลองใช้ดูทั้งสองแบบ แล้วพรุ่งนี้หนูจะมารายงานผลนะคะ
ขอขอบคุณทั้งสองท่านอีกครั้งค่ะ
เดี๋ยวเย็นนี้จะทดลองใช้ดูทั้งสองแบบ แล้วพรุ่งนี้หนูจะมารายงานผลนะคะ
ขอขอบคุณทั้งสองท่านอีกครั้งค่ะ
6 @R02954
OK ใช้ได้เรียบร้อยแล้วค่ะ ตอนแรกก็มีติดขัดเล็กน้อย ต้องดัดแปลงนิดหน่อยค่ะ คือหนูต้องแก้ไขโดยเติม Me.Undo เข้าไปก่อน End if ด้วยค่ะ ไม่งั้นเวลาคลิก No แล้วมันไม่ยอมคืนค่าเดิมให้ค่ะ ตอนนี้ใช้ได้แล้วค่ะ
หนูสังเกตุโค้ดของอาจารย์ทั้งสองดูแล้วเขียนต่างกัน แต่ทำไมให้ผลออกมาเกือบจะเหมือนกันเลย ที่เห็นแตกต่างก็คือข้อความใน MsgBox จะคนละความหมาย แต่ก็นำไปประยุกต์ใช้งานได้ทั้งสองแบบค่ะ
ขอขอบคุณทั้งสองท่านอีกครั้งนะคะ
หนูสังเกตุโค้ดของอาจารย์ทั้งสองดูแล้วเขียนต่างกัน แต่ทำไมให้ผลออกมาเกือบจะเหมือนกันเลย ที่เห็นแตกต่างก็คือข้อความใน MsgBox จะคนละความหมาย แต่ก็นำไปประยุกต์ใช้งานได้ทั้งสองแบบค่ะ
ขอขอบคุณทั้งสองท่านอีกครั้งนะคะ
7 @R02961
พอดีพึ่งไปค้นเจอโค้ดเก่าที่อาจารย์สันติสุขเคยแนะนำกับสมาชิกไว้นานแล้ว ดังนี้ค่ะ
Private Sub TextBox_Dirty(Cancel As Integer)
If Me.NewRecord Then
If MsgBox("คุณต้องการจะแก้ไขข้อมูลสำคัญนี้ ใช่หรือไม่ ", vbYesNo) = vbNo Then
Cancel = True
Exit Sub
End If
End If
End Sub
ใช้ได้ตามที่ต้องการเป๊ะเลย คือเมื่อคลิก No แล้วจะคืนค่าเดิมให้เลยค่ะ
ยังไงก็ต้องขอขอบคุณอาจารย์ทุกๆท่านที่กรุณาให้ความรู้ดีๆ
มีคุณค่าและเป็นประโยชน์กับมือใหม่ผู้รู้น้อยอย่างหนูมากเลยค่ะ
Private Sub TextBox_Dirty(Cancel As Integer)
If Me.NewRecord Then
If MsgBox("คุณต้องการจะแก้ไขข้อมูลสำคัญนี้ ใช่หรือไม่ ", vbYesNo) = vbNo Then
Cancel = True
Exit Sub
End If
End If
End Sub
ใช้ได้ตามที่ต้องการเป๊ะเลย คือเมื่อคลิก No แล้วจะคืนค่าเดิมให้เลยค่ะ
ยังไงก็ต้องขอขอบคุณอาจารย์ทุกๆท่านที่กรุณาให้ความรู้ดีๆ
มีคุณค่าและเป็นประโยชน์กับมือใหม่ผู้รู้น้อยอย่างหนูมากเลยค่ะ
Time: 0.3429s
if textbox.text <> textbox.defaultvalue then
if msgbox("คุณต้องการเปลี่ยนค่าจาก " & vbcrlf & _
textbox.defaultvalue & " หรือไม่?")<>vbyes then cancel =true
end if
end sub