กระทู้เก่าบอร์ด อ.Yeadram
1,804 5
URL.หัวข้อ /
URL
ถามใหม่ เปลี่ยนค่า .text ที่ Event onchange ครับ
ที่ Event
sub textbox1_onchange()
if Left(me.textbox1.text,1) = "T" then
me.textbox1.text = "Toyota"
elseif left(me.textbox1.text,1) = "H" then
me.textbox1.text = "Honda"
end if
end sub
ปรากฏว่าขึ้น Error ล่ะครับ มีวิธีอื่นไหมครับ ความต้องการประมาณว่าถ้าเราคีย ตัว T เข้าไป ให้เปลี่ยนค่าตัวมันเอง เป็น Toyota เลยครับ
แต่ถ้าเราเปลี่ยนเป็น me.textbox1.value = "Toyota" จะไม่มีปัญหา แต่ผมจำเป็นที่จะต้องใช้ค่าเป็น .Text แทนเพราะว่ายังมี function บางตัวฝังไว้ใน afterupdate และต้องทำงานตรงที่ afterupdate เท่านั้น ไม่สามารถนำค่าไปไว้ที่ Lostfocus ได้
ทีนี้คำถามคือทำไมไม่ดักที่ Keypress หรือ KeyDown ว่าถ้ากด T แล้วให้เปลี่ยนค่าเป็น Toyota เลย
ไม่สามารถทำได้เพราะว่าบางทีเราสามารถที่จะพิมพ์ตัว T ที่ตำแหน่งอื่นก็ได้นะครับ
กลับมาตรงที่ทำไมต้องเป็น afterupdate ด้วย
ผมยังงงกับ access ว่าถ้าเราเปลี่ยนค่าอะไรใน textbox ที่อยู่ใน subform พอเราเปลี่ยนค่าใน Text นั้น (เป็นแบบ unbound นะครับ) แล้วเราเอา mouse ไปกดที่ตรงไหนก็ได้ที่อยู่นอก subform
1. ถ้าเราใส่ msgbox ไว้ที่ lostfocus จะไม่ทำงาน
2. แต่ถ้าเราใส่ msgbox ไว้ที่ afterupdate ถึงจะทำงาน
ตรงนี้ใครพอมีคำตอบบ้างครับ
ขอบคุณล่วงหน้านะครับ
sub textbox1_onchange()
if Left(me.textbox1.text,1) = "T" then
me.textbox1.text = "Toyota"
elseif left(me.textbox1.text,1) = "H" then
me.textbox1.text = "Honda"
end if
end sub
ปรากฏว่าขึ้น Error ล่ะครับ มีวิธีอื่นไหมครับ ความต้องการประมาณว่าถ้าเราคีย ตัว T เข้าไป ให้เปลี่ยนค่าตัวมันเอง เป็น Toyota เลยครับ
แต่ถ้าเราเปลี่ยนเป็น me.textbox1.value = "Toyota" จะไม่มีปัญหา แต่ผมจำเป็นที่จะต้องใช้ค่าเป็น .Text แทนเพราะว่ายังมี function บางตัวฝังไว้ใน afterupdate และต้องทำงานตรงที่ afterupdate เท่านั้น ไม่สามารถนำค่าไปไว้ที่ Lostfocus ได้
ทีนี้คำถามคือทำไมไม่ดักที่ Keypress หรือ KeyDown ว่าถ้ากด T แล้วให้เปลี่ยนค่าเป็น Toyota เลย
ไม่สามารถทำได้เพราะว่าบางทีเราสามารถที่จะพิมพ์ตัว T ที่ตำแหน่งอื่นก็ได้นะครับ
กลับมาตรงที่ทำไมต้องเป็น afterupdate ด้วย
ผมยังงงกับ access ว่าถ้าเราเปลี่ยนค่าอะไรใน textbox ที่อยู่ใน subform พอเราเปลี่ยนค่าใน Text นั้น (เป็นแบบ unbound นะครับ) แล้วเราเอา mouse ไปกดที่ตรงไหนก็ได้ที่อยู่นอก subform
1. ถ้าเราใส่ msgbox ไว้ที่ lostfocus จะไม่ทำงาน
2. แต่ถ้าเราใส่ msgbox ไว้ที่ afterupdate ถึงจะทำงาน
ตรงนี้ใครพอมีคำตอบบ้างครับ
ขอบคุณล่วงหน้านะครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08742
พอดีเงื่อนไขมันมากกว่านั้นนะครับ
แต่ปัญหามันคือ ที่ Onchange ทำไมเราถึงเปลี่ยนค่า Text ไม่ได้ละครับ
แต่ปัญหามันคือ ที่ Onchange ทำไมเราถึงเปลี่ยนค่า Text ไม่ได้ละครับ
3 @R08743
กับอีกปัญหาหนึ่ง คือเรื่อง LostFocus ที่ Textbox ของ subform ไม่ทราบว่ามีใครมีปัญหาเหมือนผมไหมครับ ทำไมมันถึงไม่ทำงาน
ที่ onExit ก็เหมือนกัน แต่กลับทำงานได้ที่ afterupdate เท่านั้น
(ปัญหามันคือ focus ของเราอยู่ที่ Textbox ใน subform แล้วเราเอา mouse ไปกด Textbox ตัวอื่น ที่อยู่ใน form แม่ โค้ดที่เราเขียนไว้ใน Lostfocus มันไม่ยอมทำงานเอาดื้อ ๆ เลยครับ)
ที่ onExit ก็เหมือนกัน แต่กลับทำงานได้ที่ afterupdate เท่านั้น
(ปัญหามันคือ focus ของเราอยู่ที่ Textbox ใน subform แล้วเราเอา mouse ไปกด Textbox ตัวอื่น ที่อยู่ใน form แม่ โค้ดที่เราเขียนไว้ใน Lostfocus มันไม่ยอมทำงานเอาดื้อ ๆ เลยครับ)
4 @R08744
อาจฟังดูแปลกๆ แต่ถ้ามันเป็น subform แล้วไปคลิกที่ mainform LostFocus มันจะไม่ทำงาน มันเป็นอย่างนี้แหล่ะครับ ถ้าจะถามเหตุผล ผมไม่รู้หรอกครับ มีแต่ทีมออกแบบของ Access เองเท่านั้นที่จะรู้
อยากบอกว่า...เวลาเล่นกับพวก Event Driven Programming แล้วหล่ะก็ อย่าไปฝืนพฤติกรรมของมัน ไม่งั้นแล้วเราจะเจ็บตัวเปล่าๆ ผมคิดว่าคุณต้องออกแบบการทำงานอะไรที่ไม่เหมาะสมกับการทำงานของ Access แล้วหล่ะ ในกรณีนี้ ลองเล่ารายละเอียดมาดีไหมว่าคุณจะทำอะไร แล้ว อ.หลายๆท่านในนี้จะได้ลองวิเคราะห์และออกแบบว่าคุณควรทำอะไรและอย่างไร
อยากบอกว่า...เวลาเล่นกับพวก Event Driven Programming แล้วหล่ะก็ อย่าไปฝืนพฤติกรรมของมัน ไม่งั้นแล้วเราจะเจ็บตัวเปล่าๆ ผมคิดว่าคุณต้องออกแบบการทำงานอะไรที่ไม่เหมาะสมกับการทำงานของ Access แล้วหล่ะ ในกรณีนี้ ลองเล่ารายละเอียดมาดีไหมว่าคุณจะทำอะไร แล้ว อ.หลายๆท่านในนี้จะได้ลองวิเคราะห์และออกแบบว่าคุณควรทำอะไรและอย่างไร
5 @R08745
ขอบคุณมากครับ รบกวนคุณสันติสุขตั้งหลายเรื่อง แบบว่าเรื่องมันยาวล่ะครับ
สาเหตุก็มาจากผมเริ่มพัฒนาโปรแกรมมาจากโปรแกรมอื่น ที่ไม่ใช่ Access นะครับ บางอย่างที่เคยทำได้มาก่อนในโปรแกรมเก่า แต่กลับไม่สามารถทำได้ใน access คำถามที่ถามไปบางอย่าง บางคนอาจดูแล้วงง ๆ นะครับ ส่วนการออกแบบการทำงานบางเรื่องผมอาจจะคิดมากเกินไป (อาจจะเคยชินนะครับ) บางทีอธิบายด้วยคำพูดไม่ได้ ยังไงก็ขอขอบคุณอีกครั้ง ผมอาจจะลองหาวิธีอื่นดู (ไม่งั้นอาจจะเจ็บตัวจริงๆก็ได้) แล้วจะกลับมาถามใหม่นะครับ
สาเหตุก็มาจากผมเริ่มพัฒนาโปรแกรมมาจากโปรแกรมอื่น ที่ไม่ใช่ Access นะครับ บางอย่างที่เคยทำได้มาก่อนในโปรแกรมเก่า แต่กลับไม่สามารถทำได้ใน access คำถามที่ถามไปบางอย่าง บางคนอาจดูแล้วงง ๆ นะครับ ส่วนการออกแบบการทำงานบางเรื่องผมอาจจะคิดมากเกินไป (อาจจะเคยชินนะครับ) บางทีอธิบายด้วยคำพูดไม่ได้ ยังไงก็ขอขอบคุณอีกครั้ง ผมอาจจะลองหาวิธีอื่นดู (ไม่งั้นอาจจะเจ็บตัวจริงๆก็ได้) แล้วจะกลับมาถามใหม่นะครับ
Time: 0.3432s
นี่มันคุณสมบัติของ ComboBox ทำไมไม่ใช้ ComboBox ครับ