กระทู้เก่าบอร์ด อ.Yeadram
1,953 10
URL.หัวข้อ /
URL
ดับเบิ้ลคลิ๊กที่ตารางในฟอร์มเพื่อเปิดดูรายละเอียดส
ดับเบิ้ลคลิ๊กที่ตารางย่อยในฟอร์มเพื่อเปิดดูรายละเอียดสินค้าเลยได้ไหมคะ?
เช่น อยากเปิดดูรหัสสินค้า 901-005 (ในตารางย่อย)
แล้วฟอร์มก็เปิดข้อมูลของรหัสสินค้า 901-005 ได้เลยไหมคะ?
ต้องทำยังไงหรอคะ ช่วยสอนทีได้ไหมคะ ไม่มีความรู้เรื่อง เขียน CODE เลยค่ะ
ขอบคุณมากๆ นะคะ
เช่น อยากเปิดดูรหัสสินค้า 901-005 (ในตารางย่อย)
แล้วฟอร์มก็เปิดข้อมูลของรหัสสินค้า 901-005 ได้เลยไหมคะ?
ต้องทำยังไงหรอคะ ช่วยสอนทีได้ไหมคะ ไม่มีความรู้เรื่อง เขียน CODE เลยค่ะ
ขอบคุณมากๆ นะคะ
10 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R13694
ได้ครับ ไปฝัง DoCmd.OpenForm ในเหตุการดับเบิลคลิกได้เลย
3 @R13721
ขอบคุณมากค่ะ แต่ หมิง ไม่ทราบ code เลยค่ะ
วันนี้พยายาม search แล้ว แต่คือ ยังหาไม่ได้
หากรบกวนขอ code ได้ไหมคะ
ต้องการ ดับเบิ้ลคลิก รหัส 901-005 แล้ว Form ก็เปิดใหม่เป็น
ข้อมูลรายละเอียดสินค้าตัวนั้นมาเลยค่ะ
ขอบคุณมาก ๆ ค่ะ
วันนี้พยายาม search แล้ว แต่คือ ยังหาไม่ได้
หากรบกวนขอ code ได้ไหมคะ
ต้องการ ดับเบิ้ลคลิก รหัส 901-005 แล้ว Form ก็เปิดใหม่เป็น
ข้อมูลรายละเอียดสินค้าตัวนั้นมาเลยค่ะ
ขอบคุณมาก ๆ ค่ะ
4 @R13725
ไม่ต้องใช้ code เลยครับ ใช้แค่ตอนเปิดคือ
DoCmd.OpenForm"ชื่อฟอร์ม"
แล้วก็ทำฟอร์มขึ้นมาใหม่ ตามที่คุณต้องการแหละครับ
เพียงแต่ ตรง Souce ของฟอร์มที่เปิด ให้ใส่เงื่อนไขเป็นชื่อ Control ที่อ้างอิง
ของเรคคอร์ดนั้น
DoCmd.OpenForm"ชื่อฟอร์ม"
แล้วก็ทำฟอร์มขึ้นมาใหม่ ตามที่คุณต้องการแหละครับ
เพียงแต่ ตรง Souce ของฟอร์มที่เปิด ให้ใส่เงื่อนไขเป็นชื่อ Control ที่อ้างอิง
ของเรคคอร์ดนั้น
5 @R13732
จากรูป คือ คุณมีฟอร์มหลัก และฟอร์มย่อย
คุณต้องการให้ดับเบิลคลิ๊กที่ฟอร์มย่อย แล้วให้ฟอร์มหลักแสดงข้อมูลของรายการที่คลิ๊กงั้นเหรอครับ
ถ้าความต้องการเป็นเช่นนั้น แสดงว่า
- ณ ปัจจุบันนี้ คุณไม่ได้มีการใช้ link child field ใช่มั้ย
- ฟอร์มย่อยที่ผมมองเห็น นั่นเป็นฟอร์มที่สร้างขึ้นแต่ให้แสดงผลเป็นแบบตาราง หรือว่า คุณไปเอาตารางมาแสดงผลเลย
ถ้า............... ไปเอาตารางมาแสดงผลเลย ทำต่อไม่ได้ครับ เพราะมันจำเป็นต้องฝังโค้ดหรือมาโครในเหตุการณ์ ซึ่งในตารางมันฝังไม่ได้ครับ
เพราะฉะนั้น แนะนำให้คุณสร้างเป็นฟอร์มเอาไว้ก่อน (ใช้วิซาร์ดพาสร้างก็ได้ ให้ตั้งค่าการแสดงผลเป็นแบบตารางตามเดิมก็ได้แต่ขอให้มันเป็นฟอร์ม)
พอได้แล้ว ให้เปิดฟอร์มย่อยที่สร้างขึ้นใหม่นั้นในมุมมองออกแบบ แล้วเขียนโค้ดเป็นฟังก์ชั่นเอาไว้ (ยิ่งอธิบายยิ่งยาวแฮะ เพราะมันต้องใช้ชื่อออปเจคต่างๆ อีกเพื่อการอ้างอิง)
Function ChangeMain(myCode as string)
forms("Mainform").filter = "[ID] like '" & me.txID & "'"
forms("Mainform").filteron = true
End function
เอาฟังก์ชั่นนี้วางไว้ในฟอร์มย่อย
ส่วนในหน้าต่าง คุณสมบัติ ของฟอรืมย่อย สำหรับทุกๆ textbox ให้เขียนนิพจน์ใส่ลงในเหตุการณ์ onDbClick ว่า
=ChangeMain([txID])
** สมมติฐานที่จำเป็น
- ฟอร์มหลักของคุณชื่อ MainForm
- ฟิลด์รหัสสินค้าของคุณชื่อ ID
- textbox ในฟอร์มย่อยของคุณที่แสดงรหัสสินค้า ชื่อว่า txID
คุณต้องการให้ดับเบิลคลิ๊กที่ฟอร์มย่อย แล้วให้ฟอร์มหลักแสดงข้อมูลของรายการที่คลิ๊กงั้นเหรอครับ
ถ้าความต้องการเป็นเช่นนั้น แสดงว่า
- ณ ปัจจุบันนี้ คุณไม่ได้มีการใช้ link child field ใช่มั้ย
- ฟอร์มย่อยที่ผมมองเห็น นั่นเป็นฟอร์มที่สร้างขึ้นแต่ให้แสดงผลเป็นแบบตาราง หรือว่า คุณไปเอาตารางมาแสดงผลเลย
ถ้า............... ไปเอาตารางมาแสดงผลเลย ทำต่อไม่ได้ครับ เพราะมันจำเป็นต้องฝังโค้ดหรือมาโครในเหตุการณ์ ซึ่งในตารางมันฝังไม่ได้ครับ
เพราะฉะนั้น แนะนำให้คุณสร้างเป็นฟอร์มเอาไว้ก่อน (ใช้วิซาร์ดพาสร้างก็ได้ ให้ตั้งค่าการแสดงผลเป็นแบบตารางตามเดิมก็ได้แต่ขอให้มันเป็นฟอร์ม)
พอได้แล้ว ให้เปิดฟอร์มย่อยที่สร้างขึ้นใหม่นั้นในมุมมองออกแบบ แล้วเขียนโค้ดเป็นฟังก์ชั่นเอาไว้ (ยิ่งอธิบายยิ่งยาวแฮะ เพราะมันต้องใช้ชื่อออปเจคต่างๆ อีกเพื่อการอ้างอิง)
Function ChangeMain(myCode as string)
forms("Mainform").filter = "[ID] like '" & me.txID & "'"
forms("Mainform").filteron = true
End function
เอาฟังก์ชั่นนี้วางไว้ในฟอร์มย่อย
ส่วนในหน้าต่าง คุณสมบัติ ของฟอรืมย่อย สำหรับทุกๆ textbox ให้เขียนนิพจน์ใส่ลงในเหตุการณ์ onDbClick ว่า
=ChangeMain([txID])
** สมมติฐานที่จำเป็น
- ฟอร์มหลักของคุณชื่อ MainForm
- ฟิลด์รหัสสินค้าของคุณชื่อ ID
- textbox ในฟอร์มย่อยของคุณที่แสดงรหัสสินค้า ชื่อว่า txID
6 @R13733
เพิ่มเติมครับ
งานลักษณะนี้ (การค้นหารหัสสินค้าที่ต้องการ เพื่อแสดงผลในฟอร์มปัจจุบัน) คนส่วนใหญ่เขามักจะทำ
- สร้างเป็นคอมโบบ็อกซ์ เอาไว้ที่ส่วนหัวของฟอร์มหลัก
- สร้างเป็นกล่องค้นหา เอาไว้ทีส่วนหัวของฟอร์มหลัก
ไม่ค่อยมีใครทำเป็นฟอร์มย่อยวางในฟอร์มหลักอย่างคุณทำเลยนะครับ
หรือผมเข้าใจเจตนาคุณผิดไปตั้งแต่ต้นกันแน่เนี่ย
งานลักษณะนี้ (การค้นหารหัสสินค้าที่ต้องการ เพื่อแสดงผลในฟอร์มปัจจุบัน) คนส่วนใหญ่เขามักจะทำ
- สร้างเป็นคอมโบบ็อกซ์ เอาไว้ที่ส่วนหัวของฟอร์มหลัก
- สร้างเป็นกล่องค้นหา เอาไว้ทีส่วนหัวของฟอร์มหลัก
ไม่ค่อยมีใครทำเป็นฟอร์มย่อยวางในฟอร์มหลักอย่างคุณทำเลยนะครับ
หรือผมเข้าใจเจตนาคุณผิดไปตั้งแต่ต้นกันแน่เนี่ย
7 @R13735
[color=hotpink]อ่า..ไม่รู้เข้าใจตรงกันไหม
มะหมิงทำฟอร์มย่อย โดยใ้ช้วิธี ดึงมาจากใน คิวรี่ ที่ทำไว้ค่ะ
แล้ว กำหนดให้ รหัส ID ประเภทตรงกัน ก็จะแสดงเฉพาะสินค้าที่อยู่ในรหัสประเภทเดียวกันเท่านั้น
เช่น ในรูป ถ้าหนูเปิดฟอร์มหลักอยู่ที่รหัสประเภท 901 ฟอร์มย่อย ก็จะแสดงรหัสประเภท 901 ทั้งหมดมาให้ดูว่ามีสินค้าอะไรบ้างที่อยู่ในรหัสประเภทนี้่
และต่อที่ที่ต้องการคือ พอเห็นชื่อสินค้าในฟอร์มย่อยแล้ว ก็จึงอยาก คลิ๊กที่ฟอร์มย่อย (คลิ๊กที่ รหัส ID สินค้าก็ได้ค่ะ)
เพื่อไปเปิดดูข้อมูลที่มากกว่าที่ฟอร์มย่อยแสดงผล จึงอยากทำให้ดับเบิ้ลคลิ๊กที่ฟอร์มย่อยได้แล้วเปิดที่ฟอร์มหลักขึ้นมาเป็นรหัสสินค้าตัวที่คลิ๊กค่ะ
เพิ่มเิติม :: ที่ทำแบบนี้เพราะ (เหตุผลส่วนตัวนะคะ ไม่รู้แนวคิดนี้ดีหรือไม่ คิดเองอ่ะค่ะ)
คือ (ตั้งตัวเองเป็นที่ตั้ง) เวลาหนูจะดูสินค้าตัวนึง เช่น แบตเตอรี่มือถือ แบตมือถือ 1 รุ่น (เช่น โนเกีย 3310 ) ก็จะมีหลายเกรด หลายแบบ หลาย mAh
เช่น
แบตเตอรี่โนเกีย 3310 ชนิด 1300 mAh,
แบตเตอรี่โนเกีย 3310 ชนิด 1500 mAh,
แบตเตอรี่โนเกีย 3310 ชนิด ธรรมดา (จีน)
แต่พอมาค้นหา(ด้วยความที่ขี้ลืมสินค้า) ก็ต้องค้นหาแค่ว่า แบตเตอรี่โนเกีย 3310
มันก็จะได้โผล่ ในฟอร์มยอ่ยด้วย ว่ารหัสประเภทแบตมีอย่างอื่นอีกหรือไม่ที่ใช้แทนกันได้
หรือเผื่อเปลี่ยนรุ่นสินค้ากันได้ ในกรณีที่ทดแทนกันได้ (ก็จะมาเลื่อนดูในฟอร์มย่อยได้)
แต่ !! บางทีแบตเตอรี่รุ่นอื่น เช่น แบตเตอรี่ T28 ก็ดันไปใส่กับ แบตเตอรี่โนเกีย 3310 ได้ด้วยเช่นกัน (เวลาเห็นฟอร์มย่อยแสดงรายการแบตทั้งหมด ก็จะได้ถึงบางอ้อ ว่ามีกี่ชนิดให้เลือกดูบ้าง)
หนูก็อาจจะอธิบาย งง หน่อยนะคะ ไม่ใช่นักเขียนโปรแกรมแต่อย่างใด ทำไว้ใช้งานเองที่บ้านค่ะ
หนูซื้อหนังสือ Access มาอ่าน แล้วก็มา ทำเป็นของตัวเองอ่ะค่ะ เลยอาจโครงสร้างมั่วๆ >.< Code ก็เขียนไม่เป็น
สินค้าที่ทำ มีไ่ม่เยอะหรอกค่ะ รวมทั้งหมดที่นับได้ทั้งบ้านแล้ว ตอนนี้ยังมีไม่เกิน 300 รายการเลยค่ะ ในอนาคต ก็คงยังไม่ถึง 500 หรอก คงอีกนานค่ะ
ถ้าอีกหน่อยกิจการใหญ่โตมาก ก็คงต้องซื้อโปรแกรมมาใช้แล้วอ่ะค่ะ (ทำเองไม่ไหว)
แต่ตอนนี้ยังอยากประหยัดงบประมาณการซื้ออยู่ จึงมาทำเองใช้ดู
ขอบคุณมากนะคะ สำหรับคำแนะนำ ก็จะลองเอาไป อะแดป ใช้ดูค่ะ
มะหมิงทำฟอร์มย่อย โดยใ้ช้วิธี ดึงมาจากใน คิวรี่ ที่ทำไว้ค่ะ
แล้ว กำหนดให้ รหัส ID ประเภทตรงกัน ก็จะแสดงเฉพาะสินค้าที่อยู่ในรหัสประเภทเดียวกันเท่านั้น
เช่น ในรูป ถ้าหนูเปิดฟอร์มหลักอยู่ที่รหัสประเภท 901 ฟอร์มย่อย ก็จะแสดงรหัสประเภท 901 ทั้งหมดมาให้ดูว่ามีสินค้าอะไรบ้างที่อยู่ในรหัสประเภทนี้่
และต่อที่ที่ต้องการคือ พอเห็นชื่อสินค้าในฟอร์มย่อยแล้ว ก็จึงอยาก คลิ๊กที่ฟอร์มย่อย (คลิ๊กที่ รหัส ID สินค้าก็ได้ค่ะ)
เพื่อไปเปิดดูข้อมูลที่มากกว่าที่ฟอร์มย่อยแสดงผล จึงอยากทำให้ดับเบิ้ลคลิ๊กที่ฟอร์มย่อยได้แล้วเปิดที่ฟอร์มหลักขึ้นมาเป็นรหัสสินค้าตัวที่คลิ๊กค่ะ
เพิ่มเิติม :: ที่ทำแบบนี้เพราะ (เหตุผลส่วนตัวนะคะ ไม่รู้แนวคิดนี้ดีหรือไม่ คิดเองอ่ะค่ะ)
คือ (ตั้งตัวเองเป็นที่ตั้ง) เวลาหนูจะดูสินค้าตัวนึง เช่น แบตเตอรี่มือถือ แบตมือถือ 1 รุ่น (เช่น โนเกีย 3310 ) ก็จะมีหลายเกรด หลายแบบ หลาย mAh
เช่น
แบตเตอรี่โนเกีย 3310 ชนิด 1300 mAh,
แบตเตอรี่โนเกีย 3310 ชนิด 1500 mAh,
แบตเตอรี่โนเกีย 3310 ชนิด ธรรมดา (จีน)
แต่พอมาค้นหา(ด้วยความที่ขี้ลืมสินค้า) ก็ต้องค้นหาแค่ว่า แบตเตอรี่โนเกีย 3310
มันก็จะได้โผล่ ในฟอร์มยอ่ยด้วย ว่ารหัสประเภทแบตมีอย่างอื่นอีกหรือไม่ที่ใช้แทนกันได้
หรือเผื่อเปลี่ยนรุ่นสินค้ากันได้ ในกรณีที่ทดแทนกันได้ (ก็จะมาเลื่อนดูในฟอร์มย่อยได้)
แต่ !! บางทีแบตเตอรี่รุ่นอื่น เช่น แบตเตอรี่ T28 ก็ดันไปใส่กับ แบตเตอรี่โนเกีย 3310 ได้ด้วยเช่นกัน (เวลาเห็นฟอร์มย่อยแสดงรายการแบตทั้งหมด ก็จะได้ถึงบางอ้อ ว่ามีกี่ชนิดให้เลือกดูบ้าง)
หนูก็อาจจะอธิบาย งง หน่อยนะคะ ไม่ใช่นักเขียนโปรแกรมแต่อย่างใด ทำไว้ใช้งานเองที่บ้านค่ะ
หนูซื้อหนังสือ Access มาอ่าน แล้วก็มา ทำเป็นของตัวเองอ่ะค่ะ เลยอาจโครงสร้างมั่วๆ >.< Code ก็เขียนไม่เป็น
สินค้าที่ทำ มีไ่ม่เยอะหรอกค่ะ รวมทั้งหมดที่นับได้ทั้งบ้านแล้ว ตอนนี้ยังมีไม่เกิน 300 รายการเลยค่ะ ในอนาคต ก็คงยังไม่ถึง 500 หรอก คงอีกนานค่ะ
ถ้าอีกหน่อยกิจการใหญ่โตมาก ก็คงต้องซื้อโปรแกรมมาใช้แล้วอ่ะค่ะ (ทำเองไม่ไหว)
แต่ตอนนี้ยังอยากประหยัดงบประมาณการซื้ออยู่ จึงมาทำเองใช้ดู
ขอบคุณมากนะคะ สำหรับคำแนะนำ ก็จะลองเอาไป อะแดป ใช้ดูค่ะ
8 @R13736
เพิ่มเติมค่ะ ฟอร์มย่อยหนู ทำเป็นฟอร์ม แต่แสดงผลเป็นตารางค่ะ
9 @R13738
[color=hotpink]
หนูไปทำตาม CODE ของคุณ yeadram ใช้ได้แล้วค่ะ
ดับเบิ้ลคลิ๊กแล้วขึ้นมาเลย
ต้องขอขอบคุณมากกกกกกกกกกกก มากกกกกกก มาก ๆ นะคะ
ขอบคุณมาก ๆ ค่ะ
หนูไปทำตาม CODE ของคุณ yeadram ใช้ได้แล้วค่ะ
ดับเบิ้ลคลิ๊กแล้วขึ้นมาเลย
ต้องขอขอบคุณมากกกกกกกกกกกก มากกกกกกก มาก ๆ นะคะ
ขอบคุณมาก ๆ ค่ะ
10 @R13739
[color=hotpink]
ถ้าไม่เป็นการ รบกวน มันกดคลิ๊กโผล่มาแล้วจริงๆ ค่ะ
แต่ว่า !! ข้อมูลในตารางมันขยับเขยื้อนอ่ะค่ะ
กล่าวคือ....ปกติ หมิงเรียงลำดับรหัส ID ในตารางย่อยให้
เรียกจากมาก-ไปน้อย เพื่อ(เหตุผลส่วนตัว เดี๋ยวจายาว)
แต่พอดับเบิ้ลคลิ๊กเพื่อให้แสดงข้อมูล รหัส ID มันไม่เรียงกันแล้วค่ะ
มันกลับไปเรียงใหม่เป็นมั่วซั่วไปหมด ต้องเลื่อนลงมาดูใหม่ หาใหม่อีก
ไม่รู้จะอธิบายยังไง T_T
แต่หากอยากมาดู หมิงจะส่งโปรแกรมให้ดู
อีเมล์หมิงนะคะ rainbow_bluecolor at hotmail dot com ค่ะ
ถ้าไม่เป็นการ รบกวน มันกดคลิ๊กโผล่มาแล้วจริงๆ ค่ะ
แต่ว่า !! ข้อมูลในตารางมันขยับเขยื้อนอ่ะค่ะ
กล่าวคือ....ปกติ หมิงเรียงลำดับรหัส ID ในตารางย่อยให้
เรียกจากมาก-ไปน้อย เพื่อ(เหตุผลส่วนตัว เดี๋ยวจายาว)
แต่พอดับเบิ้ลคลิ๊กเพื่อให้แสดงข้อมูล รหัส ID มันไม่เรียงกันแล้วค่ะ
มันกลับไปเรียงใหม่เป็นมั่วซั่วไปหมด ต้องเลื่อนลงมาดูใหม่ หาใหม่อีก
ไม่รู้จะอธิบายยังไง T_T
แต่หากอยากมาดู หมิงจะส่งโปรแกรมให้ดู
อีเมล์หมิงนะคะ rainbow_bluecolor at hotmail dot com ค่ะ
Time: 0.3157s
เผื่อรูปเพี้ยน เลยใส่ URL มาให้ค่ะ
ถ้าทำไม่ได้ยังไง บอกทีนะคะ
ขอบคุณมากค่ะ