| สร้าง Combo box ให้เชื่อมโยง กับ list box แบบตารางแม่ ตารางลูก |
|
|
|
| เขียนโดย man@dmin | ||||||||||||||||
| วันพฤหัสบดีที่ 27 พฤษภาคม 2010 เวลา 16:19 น. | ||||||||||||||||
|
ผมก็เลยทำเกิน เพิ่ม List Box มาให้ด้วยเลย... เป็นของแถมแบบ นาน ๆ มาที
![]() ![]() 1. อันดับแรก เพื่อน ๆ สร้างตารางมา 3 ตาราง ตามภาพข้างบนเลยครับ
คือ t_Catalog , t_Product , t_Product_history
แล้วก็กำหนดฟิลด์ต่าง ๆ ตามภาพ(หวังว่าคงเห็นตัวหนังสืออยู่นะ...ตั้งใจ ให้เห็นหมดนะนี่)
2. จะเห็นความสัมพันธ์(ลาง ๆ)
- ของ catalog_id ของตาราง t_Catalog เชื่อมความสัมพันธ์กับ catalog_id ของ t_Product
- แล้วก็ product_id ของ t_Product เชื่อมความสัมพันธ์กับ product_id ของ t_Product_history
![]() 3. จากนั้นก็สร้างฟอร์มมาสักฟอร์ม เอาตามผมก็ได้ให้ชื่อ frm_Cat
สร้าง Control มา 3 ตัว... คือ
3.1 Combo Box ชื่อ CmbCat ผูกกับแหล่งข้อมูล ตาราง t_Catalog ตามภาพข้างบน
หรือจะคัดลอก Code ข้างล่าง ดังนี้ ก็ตามลำบากครับ...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SELECT t_Catalog.catalog_name, t_Catalog.catalog_id FROM t_Catalog ORDER BY t_Catalog.catalog_id;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.2 สร้าง List Box ชื่อ lstBoxProduct ไม่ต้องไปผูกอะไรกับมันนะ (เดี๋ยวตีมือหัก...)
![]() 3.3 สร้าง List Box ชื่อ lstBoxProductHist
![]() 4. ขั้นสำคัญก็คือการเขียน Code เพื่อผูกลูกให้เชื่อมแม่ ดังนี้
4.1 Combo Box ชื่อ CmbCat ที่เหตุการณ์(Event) On Click ก็ให้จินตนาการว่าถ้าเรากดคลิ๊กที่เจ้าแคตตาล็อกสินค้า ก็ให้รายการสินค้าที่มีรหัสตรงกับแคตตาล็อกนั้น แสดงออกมา ตามภาพข้างบน
4.1 ตรง List Box ชื่อ lstBoxProduct ก็สร้างเหตุการณ์(Event) On Click เช่นกันให้รายการรายละเอียดของสินค้าแต่ละตัวว่ามีประวัติเหลือสินค้าคงคลังกี่ชิ้น ในวันที่ไหนบ้าง ก็เหมือนประวัติของสินค้าแต่ละตัวแหละครับ
ใครขี้เกียจพิมพ์ ก็คัดลอกโค้ดเลยครับ....
แต่ควรลอกไปด้วยความเข้าใจ ดูภาพประกอบ แล้วก็ อ่านคำอธิบายตามครับ
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub CmbCat_Click() Dim strCatId As String Dim sql1 As String strCatId = CmbCat.Column(1) sql1 = " SELECT t_Product.product_id, t_Product.product_name, t_Product.catalog_id" sql1 = sql1 & " FROM t_Product " sql1 = sql1 & " WHERE (t_Product.catalog_id)= '" & strCatId & "' ORDER BY t_Product.product_id; " lstBoxProduct.RowSource = sql1 End Sub ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub lstBoxProduct_Click() Dim strProductId As String
Dim sql2 As String strProductId = lstBoxProduct.Column(0) sql2 = " SELECT t_Product_history.history_id, t_Product_history.product_id, t_Product_history.procuct_date, t_Product_history.procuct_invent" sql2 = sql2 & " FROM t_Product_history " sql2 = sql2 & " WHERE (t_Product_history.product_id)= '" & strProductId & "' ORDER BY t_Product_history.product_id; " lstBoxProductHist.RowSource = sql2 End Sub ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ผลลัพธ์ที่เราต้องการก็จะออกมาเป็นแบบที่เห็นข้างล่างนี้ครับ... เรียบร้อย![]()
Set as favorite
Bookmark
Hits: 783 Trackback(0)
Comments (4)
![]()
eye2903@L
said:
|
ดูเหมือนมันยังขาดอะไรนะครับ![]() ![]() โทษทีครับพี่ Man@dmin ผมต้องการให้เป็นอย่างนี้ครับ 1. เมื่อผมมีตารางแม่ตัวหนื่ง แล้วผมเอาตารางนั้นมาเป็น Form หลัก ชื่งผมสร้าง Combobox ใน Form นั้นนะครับ 2. เวลาผม Record ข้อมูลลงไปใน Form นั้นแล้วผมต้องการให้มันไปบันทืกใน Table ที่ผมเอามาทำเป็นตารางแม่นั้นแหระคระบ 3. ผมทำทีไหร ไม่ได้ทุกที ![]() แต่ไม่เป็นไหรครับ คนอย่างผมชอบทำอะไรที่ท้าทาย เมื่อพี่ Man@dmin ลงทุนทำขะหนาดนี้ผมต้องทำให้ได้ครับ |
|
webmaster
said:
|
ไม่เข้าใจคำถามครับ ไม่เข้าใจคำถามครับ... ถ้าทำจากตัวอย่างนี้ได้แล้ว จะเข้าใจเองครับว่า เราจะเอาไปประยุกต์ใช้แบบไหน เช่น เมื่อเราเลือกมาจนได้ตัวสินค้ามาแล้ว... อยากให้บันทึกลงตามรางไหน... ก็เขียนคำสั่ง ตรงเหตุการณ์ เช่น On Click ให้มันไปบันทึกลงตาราง ด้วยคำสั่ง Insert Into หรือ จะเขียนแบบบันทึกลงฟิลด์เลยก็ได้ ยังไง ลองค่อย ๆ อธิบายคำถามให้พี่เข้าใจอีกนิดนะครับ... บางทีอาจจะไม่ใช่เรื่องยากแบบนี้ แต่พี่อาจคิดไปไกลเกิน |
|
eye2903@L
said:
|
เข้าใจง่ายๆครับ ตัวอย่างเชั่น 1. เรามีตารางจังหวัดทุกจังหวัด 2. เรามีตารางแม่ และเราก็เอาตารางแม่มาทำเป็น Form เราเลยเอาตารางจังหวัดนั้นมาทำเป็น Combobox เพื่อให้ใช้ในform นั้นได้ แต่บังเอีนผมทำได้ครับ แต่มันดันไม่บันทิกในตารางแม่ครับ นี้แหระบันหา ![]() ![]() ![]() ![]() |
|
webmaster
said:
|
เข้าใจแล้วครับ เข้าใจแล้วครับ ว่าต้องการแบบไหน เดี๋ยวขอทำบทเรียนก่อนครับ... จะเอามา แนะนำให้ครับ ช้าตอนจับภาพหน้าจอ แล้ว มาทำบทเรียนครับ.... เพื่อน ๆ จะได้เข้าอย่างแจ่มแจ้ง |
|
Write comment
ขอเปลี่ยนหน้าตาเว็บรุ่น 34 หน่อยครับ...แบบว่าอยากอินเตอร์กะเขาบ้าง .... รูปแบบหลาย ๆ อย่างก็คงเดิมนะครับ ... มีเพิ่มเติมเกี่ยวกับระบบจัดการความรู้เข้ามาอีกเล็กน้อย เพิ่มเติมการแสดงแกลเลอรี่









ผลลัพธ์ที่เราต้องการก็จะออกมาเป็นแบบที่เห็นข้างล่างนี้ครับ... เรียบร้อย




