เวลาเลือกจังหวัด อำเภอ แล้วให้เปลี่ยนทุกครั้ง
กระทู้เก่าบอร์ด อ.Yeadram

 5,519   7
URL.หัวข้อ / URL
เวลาเลือกจังหวัด อำเภอ แล้วให้เปลี่ยนทุกครั้ง

สงสัยอย่างหนึ่งครับ
คือใช้เป็นคอมโบบ๊อก เลือกจังหวัด อำเภอ ตำบล
เลือกครั้งแรก เช่นกรุงเทพ แล้ว
มาเลือกอำเภอทำได้
แต่ถ้ากลับไปแก้ใหม่ เป็นจังหวัดอื่น ๆ เช่น นนทบุรี
พอมาเลือกอำเภอ ยังเป็นของกรุงเทพเหมือนเดิม
แก้อย่างไรครับ
ขอบคุณล่วงหน้าครับ

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

1 @R00534
เขียนคำสั่ง ในเหตุการณ์ "เมื่อเปลี่ยนแปลง" (on change) ของ คอมโบจังหวัด
ให้เปลี่ยน source ของ คอมโบอำเภอครับ

Private Sub cbProvince_Onchange()
cbAmphur.rowsource ="Select * From ............ Where ......= " & cbProvince
cbAmphur.requery
End sub

คอมโบอำเภอ ต้องมีชนิดแหล่งข้อมูลเป็น "Table/Query" นะครับ
หรือจะสั่งเปลี่ยนในขณะ เกิดเหตุการณ์นั่นก็ได้ ก่อนจะเปลี่ยน source ของมันนะครับ
cbAmphur.RowSourceType = "Table/Query"
2 @R00538
ขอบคุณมากครับคุณyeadram
ช่วยทุกคนที่มีปัญหา
ไม่เคยคิดถึงผลตอบแทน
ได้บุญครับ
3 @R13279
อาจารย์yeadramครับ
ผมสร้างเมนฟอร์มให้เปิดซับฟอร์ม โดยบนเมนฟอร์มมี 3คอนโทรล คือ cmbJungWat LstAmPhur LstTanon ทั้งหมดนี้ base on ตารางชื่อ DownlineData
ผมต้องการให้เลือก JungWat แล้วขึ้น AmPhur มาให้เลือก พอเลือก AmPhur แล้วขึ้น Tanon มาให้เลืิอก พอคลิกเลือก Tanon แล้ว ให้เปิดซับฟอร์มออกมา
ขั้นแรกนี้ ผมคัดลอกโค้ดข้างต้นมาใส่ใน cmbJungWat แล้วปรับแก้เป็น
Private Sub cmbJungWat_Change()
cmbAmPhur.RowSource = "Select AmPhur From DownlineData Where JungWat = " & cmbProvince
cmbAmPhur.Requery
End Sub
แต่ LstAmPhur ไม่ปรากฏอะไรออกมาเลยครับ
ผมใช้ Access2007 อยู่ครับ
รบกวนอาจารย์ช่วยแนะนำด้วยครับ

คำถามทำนองนี้ เคยเรียนถามอาจารย์มาครั้งหนึ่งแล้ว
แต่คราวนั้น ผมให้ฟอร์ม base on คิวรี
คราวนี้ ผมลองฝึกใหม่ เอามา base on ตารางดู
เป็นการลับฝีมือให้ฉมังขึ้นครับ
4 @R13284
ต้องดูค่าของคอมโบจังหวัดครับ ว่ามันเก็บค่าอะไร
กล่าวคือ
ในคอมโบจังหวัดมีกี่คอลัมน์ ตั้งค่าให้มันเก็บข้อมูลคอลัมน์ใด แล้วคอลัมน์นั้น เป็นชนิดข้อมูลแบบไหน number หรือ string

เพื่อจะให้สอดคล้องกับเงื่อนไขที่คุณเขียนว่า
Where JungWat = " & cmbProvince

จากที่คุณเขียนมานี้ มันบังคับทำให้นึกภาพเป็นไปได้ทางเดียวคือ
ในตาราง DownlineData จะต้องมีฟิลด์ชื่อ JungWat ซึ่งเก็บข้อมูลเป็นแบบ Number
และในคอมโบ cmbJungWat จะมีการตั้งค่าให้เก็บคอลัมน์ที่เป็น Number เช่นกัน
ใช่หรือไม่ ถ้าไม่ใช่ คำสั่งนี้ก็ไม่บังเกิดผลครับ

ความเป็นไปได้ของการเขียนเงื่อนไข ซึ่งอาจแตกต่างไปจากของคุณ เนื่องเพราะชนิดข้อมูล, จำนวนคอลัมน์ และลำดับที่ของคอลัมน์ ก็อาจจะเป็น
Where JungWat = '" & cmbProvince & "'" หรือ
Where JungWat = " & cmbProvince.column(1) หรือ
Where JungWat = '" & cmbProvince.column(1) & "'" หรือ
Where JungWat = " & cmbProvince.column(0) ฯลฯ

อีกข้อสังเกตหนึ่งครับ (สุดท้าย)
คุณบอกว่า คอนโทรลบนฟอร์มของคุณมันมีชื่อ LstAmphur นะ ไม่ใช่ cmbAmphur ตกลงมันตัวเดียวกันหรือเปล่า ทำไมเวลาเขียนโค้ดถึงเขียนเป็น cmbAmphur แทนที่จะเป็น LstAmphur
5 @R13287
ขอบคุณครับ อาจารย์
cmbJungWat มี 1 bound column 1 Column count ครับ เป็น string ครับ
อาจารย์ครับ ตรงไหนที่ทำให้อาจารย์อ่าน/คิดว่า JungWat เป็น number ครับ? ช่วยสอนผมด้วยครับ
ผมคิดว่าเงื่อนไขน่าจะเป็น Where JungWat = '" & cmbProvince & "'" ครับ แต่ LstAmphur ไม่ขึ้นค่ามาให้
ขออภัยอาจารย์ที่ทำให้สับสน เรื่องมีอยู่ว่า แต่เดิมผมตั้งใจจะทำเป็น combo box ทั้ง 3ตัว แต่ตอนหลัง ดูการใช้งานแล้ว ผมคิดว่า AmPhur กับ Tanon น่าจะเป็น list box ดีกว่า แต่เนื่องจากเขียนโค้ดไปแล้ว ผมเลยไม่ได้แก้ชื่อ ดังนั้น ชื่อของ object คือ cmbAmPhur cmbTanon ครับ แต่ตัวจริงเป็น list box
6 @R13290
ตรงที่ทำให้คิดว่าเป็น number คือ operator คุณใช้เครื่องหมายเท่ากับ และไม่มีการใส่ single quote คร่อมค่าของ cmbProvince

ถ้ามันเป็น string ควรเป็น
Where JungWat Like '" & cmbProvince & "'"

ลำดับต่อไป กรณีปรับแต่งการเขียนเงื่อนไขแล้วแต่มันยังไม่มีในลิสต์อีก อาจต้อง debug เช็ค ค่าของคอมโบ และก็ไปดูค่าในตาราง ว่ามันมีอยู่จริงหรือเปล่าครับ
7 @R13300
ยังไม่มีลิสต์ออกมาครับ
ผมส่งไฟล์ไปที่ accboard@gmail ให้อาจารย์ดูแล้วครับ
ไฟล์ที่ส่งไป ผมรันบน Access2007 (ซึ่งใช้งานที่บริษัท) ไม่มีปัญหา แต่พอรันบน Access2003 ไปติดปัญหา cmbJungWat บ้าง cmbAmPhur บ้าง ผมเลยคิดว่า อาจติดขัดที่เวอร์ชั่นใช้งาน อีกประการหนึ่ง พอผมเอางานที่ทำจากบริษัทไปรันบน Access2010 ที่บ้าน ก็ใช้งานไม่ได้ครับ

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