กระทู้เก่าบอร์ด อ.Yeadram
8,763 9
URL.หัวข้อ /
URL
Combo เป็นค่าว่าง อ้างอิงยังงัยครับ
คือ Combo Box ผมเป็นค่าว่างอยู่ ผมเขียนคำสั่งว่า
If Me.ชื่อคอมโบ = Null Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
แล้วก็ลองอีกคือ
If (Me.ชื่อคอมโบ) Is Null Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
แล้วก็ลองอีกคือ
If Me.ชื่อคอมโบ="" Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
ทั้ง 3 อย่างมันส่งค่า Else หมดเลยครับ ใครพอจะทราบมั้ยครับว่า
ต้องใช้อย่างไรมันถึงจะเข้าใจว่า Combo เป็นค่าว่าง
If Me.ชื่อคอมโบ = Null Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
แล้วก็ลองอีกคือ
If (Me.ชื่อคอมโบ) Is Null Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
แล้วก็ลองอีกคือ
If Me.ชื่อคอมโบ="" Then
MsgBox "ให้เลือกค่าของคอมโบก่อน...", vbOKCancel, "Un"
Me.ชื่อคอมโบ.SetFocus
Else
ทั้ง 3 อย่างมันส่งค่า Else หมดเลยครับ ใครพอจะทราบมั้ยครับว่า
ต้องใช้อย่างไรมันถึงจะเข้าใจว่า Combo เป็นค่าว่าง
9 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R05718
isnull(me.ชื่อคอมโบ) then
2 @R05751
ทดสอบ
3 @R05752
ผมเข้ามาตอบกระทู้นี้หลายวันแล้วมันตอบไม่ได้ แปลกใจ วันนี้ตอบได้
4 @R05753
แบบของคุณรักน้องบิวท์ ผมก็ทดสอบแล้วไม่ได้เหมือนกันครับ
5 @R05756
ลอง
if isnull(me.ชื่อคอมโบ) =true or me.ชื่อคอมโบ="" then
if isnull(me.ชื่อคอมโบ) =true or me.ชื่อคอมโบ="" then
6 @R05758
เราจะแน่ใจได้อย่างไรว่า control นั้นๆ เป็นค่าว่าง
ทดสอบ.....
me.combo.setfocus
debug.print "text? = " & me.combo.text
debug.print "len? = " & lent(me.combo)
debug.print "value? = " & me.combo.value
debug.print "is null? = " & isnull(me.combo)
debug.print "is no null? = " & (me.combo="")
debug.print "is not null? = " & (not isnull(me.combo))
msgbox "Debug Now"
ทดสอบ.....
me.combo.setfocus
debug.print "text? = " & me.combo.text
debug.print "len? = " & lent(me.combo)
debug.print "value? = " & me.combo.value
debug.print "is null? = " & isnull(me.combo)
debug.print "is no null? = " & (me.combo="")
debug.print "is not null? = " & (not isnull(me.combo))
msgbox "Debug Now"
7 @R05759
ผมลองใช้ของคุณ Nova แล้วใช้ได้ครับ ขอบพระคุณทุกท่านที่สละเวลา
มาตอบ ร่วมคิดกันครับ ผมรู้สึกสนุกมากขึ้นเวลาติดอะไรนิดๆ หน่อยๆ
แล้วทำได้ บอร์ดนี้เป็นบอร์ดที่ดีมากๆ ครับ
คุณ yeadram ครับคำสั่งนี้ผมไม่เคยใช้ มันคือให้ปริ้นค่าใน Combo
ใช่มั้ยครับ พอดีเครื่องไม่ได้ต่อ ปริ้นเตอร์ เลยไม่ได้ลองครับ
มาตอบ ร่วมคิดกันครับ ผมรู้สึกสนุกมากขึ้นเวลาติดอะไรนิดๆ หน่อยๆ
แล้วทำได้ บอร์ดนี้เป็นบอร์ดที่ดีมากๆ ครับ
คุณ yeadram ครับคำสั่งนี้ผมไม่เคยใช้ มันคือให้ปริ้นค่าใน Combo
ใช่มั้ยครับ พอดีเครื่องไม่ได้ต่อ ปริ้นเตอร์ เลยไม่ได้ลองครับ
8 @R05769
การ Debug เป็นของคู่กาย กับการเขียนโปรแกรมนะครับ
ควรใช้ให้เป็นประโยชน์
เมื่อเราต้องการทราบคำตอบแบบชั่วคราว อาจจะเพื่อการทดสอบโค้ดหรือทดสอบผลลัพธ์จากการคำนวนใดๆ มือใหม่ๆ มักจะใช้ msgbox เพื่อให้โปรแกรมแจ้งผลออกมา ซึ่งพอใช้บ่อยๆ ก็มักจะรำคาญที่ต้องคอยกดปุ่ม OK
อย่างเช่นเราเขียนโค้ด ให้มีการวนลูป แล้วผลไม่ปรากฎตามที่เราคาดการณ์
เราจึงอยากรู้ว่า แต่ละรอบของลูป มันเกิดอะไรขึ้น ค่าตัวแปรแต่ละตัว มีอะไรผิดเพี้ยนไปหรือเปล่า เราก็อาจจะแทรกบรรทัดคำสั่ง เพื่อจะดูว่าค่าของแปรในแต่ละรอบของลูป มันถูกต้องตามที่คาดการหรือไม่
x = 0
for i = 1 to 10
if y < 10 then x = x+1
msgbox x
next
การใช้ msgbox เพื่อตรวจสอบค่าของ x ในแต่ละรอบ จะทำให้รำคาญ
เราควรใช้ การ Debug แทน
x = 0
for i = 1 to 10
if y < 10 then x = x+1
debug.print x
next
ซึ่งการ Debug ก็คือมันจะปริ๊นท์คำตอบมาไว้ให้เรา (ข้อมูลชั่วคราว เมื่อปิดโปรแกรม ค่าเหล่านี้จะหายโดยอัตโนมัติ)
เมื่อเราต้องการแสดงผล ที่มันปริ๊นท์ ออกมา ก็กดปุ่ม Ctl+G หรือ
ถ้าคุณเปิดหน้าต่าง VBA อยู่ให้เลือกเมนู View > Immediate window
จะเห็นค่าเหล่านั้นครับ
เหมาะสำหรับการตรวจสอบ ผลการคำนวนแบบชั่วคราว
เมื่อนำโปรแกรมไปใช้จริง "ควร" หรือ "ต้อง" ลบบรรทัดคำสั่ง debug ทั้งหลายออกให้หมดเสียก่อนครับ
ไม่ได้ใช้ปริ๊นท์เ??อร์ใดๆ หรอกครับ
ควรใช้ให้เป็นประโยชน์
เมื่อเราต้องการทราบคำตอบแบบชั่วคราว อาจจะเพื่อการทดสอบโค้ดหรือทดสอบผลลัพธ์จากการคำนวนใดๆ มือใหม่ๆ มักจะใช้ msgbox เพื่อให้โปรแกรมแจ้งผลออกมา ซึ่งพอใช้บ่อยๆ ก็มักจะรำคาญที่ต้องคอยกดปุ่ม OK
อย่างเช่นเราเขียนโค้ด ให้มีการวนลูป แล้วผลไม่ปรากฎตามที่เราคาดการณ์
เราจึงอยากรู้ว่า แต่ละรอบของลูป มันเกิดอะไรขึ้น ค่าตัวแปรแต่ละตัว มีอะไรผิดเพี้ยนไปหรือเปล่า เราก็อาจจะแทรกบรรทัดคำสั่ง เพื่อจะดูว่าค่าของแปรในแต่ละรอบของลูป มันถูกต้องตามที่คาดการหรือไม่
x = 0
for i = 1 to 10
if y < 10 then x = x+1
msgbox x
next
การใช้ msgbox เพื่อตรวจสอบค่าของ x ในแต่ละรอบ จะทำให้รำคาญ
เราควรใช้ การ Debug แทน
x = 0
for i = 1 to 10
if y < 10 then x = x+1
debug.print x
next
ซึ่งการ Debug ก็คือมันจะปริ๊นท์คำตอบมาไว้ให้เรา (ข้อมูลชั่วคราว เมื่อปิดโปรแกรม ค่าเหล่านี้จะหายโดยอัตโนมัติ)
เมื่อเราต้องการแสดงผล ที่มันปริ๊นท์ ออกมา ก็กดปุ่ม Ctl+G หรือ
ถ้าคุณเปิดหน้าต่าง VBA อยู่ให้เลือกเมนู View > Immediate window
จะเห็นค่าเหล่านั้นครับ
เหมาะสำหรับการตรวจสอบ ผลการคำนวนแบบชั่วคราว
เมื่อนำโปรแกรมไปใช้จริง "ควร" หรือ "ต้อง" ลบบรรทัดคำสั่ง debug ทั้งหลายออกให้หมดเสียก่อนครับ
ไม่ได้ใช้ปริ๊นท์เ??อร์ใดๆ หรอกครับ
9 @R05770
ขอบคุณมากครับ ผมใช้ msgbox จริงๆ ครับ เวลามัน Err เอา msgbox ไปใส่ในแต่ละบรรทัด เพื่อจะดูว่า Err บรรทัดไหน แล้วมาหาอีกที
ผมจะลองศึกษาวิธีการใช้ Debug อีทีครับ เพราะถ้าใช้เป็นน่าจะอ่าน Err ได้เร็วขึ้นอีกมากเลยครับ
ผมจะลองศึกษาวิธีการใช้ Debug อีทีครับ เพราะถ้าใช้เป็นน่าจะอ่าน Err ได้เร็วขึ้นอีกมากเลยครับ
Time: 0.3860s