เขียน Code ฟอร์มหลัก กับฟอร์มย่อย
กระทู้เก่าบอร์ด อ.Yeadram

 2,005   7
URL.หัวข้อ / URL
เขียน Code ฟอร์มหลัก กับฟอร์มย่อย

ผมมีฟอร์มหลักซึ่งมีฟิลด์ รหัสสินค้า ชื่อสินค้า และมีฟอร์มย่อยซึ่งมีฟิลด์ รหัสสินค้า วันที่สั่งซื้อสินค้า จำนวนสั่งซื้อสินค้า ตารางทั้ง 2 มีความสัมพันธ์แบบ 1:1 ผมต้องการให้ฟิลด์รหัสสินค้าในฟอร์มหลักลิงค์กับรหัสสินค้าในฟอร์มย่อย แบบทำนอง Split Form ของ 2007 ครับ (ไม่ใช่คุณสมบัติ Link Child/Master Field)

ฟอร์มหลัก: สมมุติว่าเลื่อนไปยัง รหัสสินค้า 25 เป็นแบบ Single Form

ฟอร์มย่อย: รหัสสินค้า ...       เป็นแบบ Continuous Form
                 รหัสสินค้า 24
                 รหัสสินค้า 25 บรรทัดนี้จะต้องถูกเลือกหรือ Active ไว้
                 รหัสสินค้า 26
                 รหัสสินค้า ...

จะมีวิธีเขียนโค๊ดอย่างไรครับ รบกวนผู้รู้ช่วยแนะนำด้วยครับ

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

1 @R13950
นี่คือตัวอย่างที่ยังไม่เข้าใจ Access คุณออกแบบตารางผิด คุณยังไม่เข้าใจเรื่องข้อมูลจึงออกแบบตารางผิด
อยากรู้ว่าออกแบบตารางอย่างไรถึงจะถูกโดยไม่ต้องเขียนโคท
พบกัน 20 ตุลา เทคนิกง่ายๆการวิเคราะห์ข้อมูลก่อนออกแบบตาราง
ติดต่อจองที่เรียนได้ที่คุณวิบูลย์หรือผู้จัด
ครั้งแรกหรืออาจครั้งเดียว โดยครูต้อง แม่แตง
2 @R13952
ผมว่าคุณ Tong แม่แตง คือตัวอย่างคนที่มีโลกทัศน์แคบนะครับ คุณเห็นงานของผมหรือครับถึงรู้ว่าผมออกแบบตารางผิด ความสัมพันธ์ของตารางแบบ 1 ต่อ 1 คุณไม่รู้จักเหรอครับ ถ้าออกแบบฟอร์มหลักเป็น Single Form และฟอร์มย่อยเป็น Continuous Form และใช้คุณสมบัติ Link Child / Master Field ทำไมผมจะไม่รู้ ก็ผมใช้อยู่ครับ แต่โจทย์ที่ผมโพสไม่ได้ต้องการแบบนั้น คุณ Tong แม่แตงอ่านโจทย์ไม่เข้าใจเหรอครับ ผมต้องการเขียน Code ให้ทำงานแบบ Split Form ใน 2007 เพราะต้องใช้งานแบบนั้น ถ้าผมรู้วิธีเขียนผมจะโพสถามทำไมล่ะครับ ถ้าคุณ Tong แม่แตง เขียนไม่ได้ก็อย่าวิจารณ์ดีกว่าครับ ผมสงสารคนที่มาเรียนกับคุณครับ แค่นี้คุณยังไม่เข้าใจสิ่งที่ผมถามแล้วจะสอนคนอื่นได้อย่างไรครับ
3 @R13953
ผมไม่เคยใช้เวอร์ชั่นที่สูงกว่า 2003 นะครับ เลยไม่แน่ใจว่า SplitForm เป็นอย่างไรกันแน่ และไม่แน่ใจว่าผมเข้าใจถูกหรือไม่ ลองอย่างนี้ไหมครับ

ที่ Current event procedure ของฟอร์มหลักให้เขียนโคดว่า

Me.[ชื่อซับฟอร์มคอลโทรลบนฟอร์มหลัก].Form.Recordset.FindFirst "[ชื่อฟิลด์รหัสสินค้า] = '" & Me.[ชื่อฟิลด์รหัสสินค้า] & "' "

อันนี้เป็นกรณีของ ฟิลด์รหัสสินค้า เป็นข้อมูลประเภท Text นะครับ ถ้าเป็นประเภท Numeric ก็เขียนเป็น FindFirst "[ชื่อฟิลด์รหัสสินค้า] = " & Me.[ชื่อฟิลด์รหัสสินค้า] ครับ
4 @R13954
มันมีอีกวิธี แต่ผมยังไม่เคยลอง คือใน OnLoad event procedure ของตัวซับฟอร์มเอง ให้ใส่โคดว่า

set Me.Recordset = Parent.Recordset
5 @R13960
ขอขอบคุณ คุณสันติสุข มากครับ ที่ช่วยตอบโจทย์อย่างที่ผมต้องการ ซึ่งผมใช้วิธีที่ 2 จะได้ผลดีกว่าวิธีที่ 1 ครับ ถ้าจะรบกวนขอเบอร์ไว้ติดต่อจะได้ไม๊ครับ เผื่อมีคำถามเกี่ยวกับการเขียนโค๊ดจะได้โทรสอบถามครับ
6 @R13970
ขออภัยคุณมือใหม่ ที่ผมไม่น่าจะเข้าไปยุ่งกับคุณเลย
เพียงเห็นโจทย์ของคุณมันเข้ากับบทเรียนที่กำลังจะสอน
เลยยกตัวอย่างให้เห็นแค่นั้นน่ะ ขออภัยอีกครั้งนะ
และขออนุญาตเอาโจทย์ของคุณไปเป็นตัวอย่างอธิบายให้ผู้เรียนวันที่ 20 ตค
เพื่อให้เข้าใจว่าออกแบบตารางผิดอย่างไร
ครูคือผู้ให้
ครูต้อง
7 @R13971
ผมขอให้มาถามในนี้ดีกว่านะครับ ผมไม่สามารถมาตอบได้ตลอดครับ ถามในนี้ ท่านอื่นจะได้มาตอบด้วยครับ เพราะไม่มีใครรู้ได้หมดทุกเรื่อง คำถามนี้ผมอาจบังเอิญรู้วิธี แต่ก็มีอีกเป็นร้อยๆคำถามที่ผมก็ตอบไม่ได้ ผมรู้แค่นิดเดียวครับ   บอร์ดนี้จะไปได้ต้องช่วยๆกันครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3624s