กระทู้เก่าบอร์ด อ.Yeadram
1,349 8
URL.หัวข้อ /
URL
อยากทราบวิธีเคลียร์ฟอร์มให้ว่าง
คือมีฟอร์มอยู่ 2 ฟอร์มครับ
คือ Form A และ FormB
สมมติว่า ถ้าเรากรอกข้อมูลใน Form A อยากทราบวิธีที่เวลา กด Bottom MM แล้ว
ให้ cursor ไปอยู่ที่ Form B และ เคลียร์ข้อมูลใน Form B ให้ว่าง แต่ไม่ใช่การสร้าง Record(ID) ใหม่นะครับ
เพราะที่ผ่านมา ผมใช้ คำสั่ง
Private Sub Open_FormB_Click()
DoCmd.OpenForm "FormB"
DoCmd.GoToRecord , , acNewRec
End Sub
คำสั่งข้างบนกลับไปสร้าง record (ID) ขึ้นมาใหม่
ที่ต้องการคือกรอกข้อมูลของ Record(ID) เดิมแต่คนละฟอร์มเท่านั้นเองครับแล้วบันทึกในตารางเดียวกันครับ
ขอคำแนะนำผู้รู้ด้วยนะครับ
คือ Form A และ FormB
สมมติว่า ถ้าเรากรอกข้อมูลใน Form A อยากทราบวิธีที่เวลา กด Bottom MM แล้ว
ให้ cursor ไปอยู่ที่ Form B และ เคลียร์ข้อมูลใน Form B ให้ว่าง แต่ไม่ใช่การสร้าง Record(ID) ใหม่นะครับ
เพราะที่ผ่านมา ผมใช้ คำสั่ง
Private Sub Open_FormB_Click()
DoCmd.OpenForm "FormB"
DoCmd.GoToRecord , , acNewRec
End Sub
คำสั่งข้างบนกลับไปสร้าง record (ID) ขึ้นมาใหม่
ที่ต้องการคือกรอกข้อมูลของ Record(ID) เดิมแต่คนละฟอร์มเท่านั้นเองครับแล้วบันทึกในตารางเดียวกันครับ
ขอคำแนะนำผู้รู้ด้วยนะครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R22906
ถ้าฟอร์ม B ผูกกับเทเบิล ***และ*** ID เป็นฟิลด์ประเภท Autonumber แล้ว ไม่มีวิธีใดที่จะให้แสดงฟอร์มเปล่าๆครับ
2 @R22907
แล้วจะมีวิธีแก้ไข ไหมครับ
หรือเราต้องแยกตารางตามฟอรม์ทั้งสองครับ
หรือเราต้องแยกตารางตามฟอรม์ทั้งสองครับ
3 @R22908
คือผมไม่รู้ว่าคุณออกแบบเทเบิลอะไรยังไงบ้าง ก็แนะนำว่าถ้าฟิลด์ทั้งหลายของทั้ง 2 เทเบิล ***ขึ้นกับ*** ID และเป็นค่า ID เดียวกันอีกด้วย อย่างนี้ควรจับรวมเป็นเทเบิลเดียวกันครับ แต่ถ้า ID ของฟอร์ม B ทำหน้าที่แค่เพื่อให้สามารถอ้างอิงกลับไปหาเรคอร์ดเดียวกันของเทเบิลของฟอร์ม A และฟิลด์ต่างๆในฟอร์ม B ก็ไม่ได้ขึ้นกับ ID แล้วหล่ะก็ ให้เปลี่ยน data type ของฟิลด์ ID ในเทเบิลของฟอร์ม B ให้เป็น Long Integer ครับ ดังนั้นเมื่อคุณสั่ง DoCmd.GoToRecord , , acNewRec ในฟอร์ม B มันก็จะไปพื้นที่ว่างเพื่อให้ป้อนเรคอร์ดใหม่ โดย ID ก็จะไม่มีการสร้างค่าอะไรออกมาโดยอัตโนมัติเหมือนอย่างแต่ก่อนครับ คุณก็สามารถป้อนค่า ID เข้าไปได้เองเลย
ปล. ช่วงเช้าผมไม่อยู่ครับ จะเข้ามาอีกทีไม่บ่ายก็เย็นเลย
ปล. ช่วงเช้าผมไม่อยู่ครับ จะเข้ามาอีกทีไม่บ่ายก็เย็นเลย
4 @R22909
1.การออกแบบ Form A และ FormB นั้นจะใช้ตารางร่วมกันครับ
คือตารางที่ชื่ื่อว่า tblnpc ทั้งสองฟอร์มใช้ตารางเดียวกันในการบันทึกข้อมูลครับ
2. ตาราง tblnpc นี้ primary key คือ field ชื่อว่า ID โดยจะให้โปรแกรมรันตัวเลขแบบ AutoNumber ครับ ผมจะไม่ไปกำหนดอะไร แต่ field นีี้จะไม่มีโชว์ในแบบฟอร์มนะครับ
3. field แรกในแบบฟอร์ม Form A ที่ผมจะกรอกข้อมูลชื่อ field "NPCID" (Tex box) แต่จะกรอกเป็นตัวเลขครับ หรือสรุปง่ายๆ field นี้จะใช้เป็นรหัสแบบสอบถาม สามารถลบแก้ไขได้
4. field แรกของแบบ Form B คือ field "BeginYear" (Text box) จะใช้กรอกปี พ.ศ.
ครับ
5.สรุปคือทั้ง field "NPCID" และ field "BeginYear" จะอยู่ในตาราง tblnpc ซึ่งเป็นตารางเดียวกันครับ
6. ประเด็นปัญหาคือ ผมสร้างปุ่มกด Bottom MM เอาไว้กดให้ข้ามไปที่ form B ทันที่และเมื่อกดไปแล้ว
7. กรณีที่เราได้กรอกข้อมูลมาหลาย Record แล้ว อยากให้เวลาปุ่ม Bottom MM ให้มีคำสั่ง เคลียร์ข้อมูลใน Form B ที่มีข้อมูลเก่าด้วยได้เลยครับ
ไม่ทราบว่าจะเข้าใจที่ผมอธิบายไหม เพราะผมก็ไม่มีความรู้เลยจริง พยายามอ่านทั้งในเวบนี้ รวมถึงอ่านเวบของต่างประเทศด้วย แต่ไม่มีพื้นฐานของโปรแกรมและการใช้คำสั่งนี้เลย ขอความกรุณาช่วยชี้แนะด้วยครับ
ขอบคุณครับ
ชัชชาติ วงหนองเตย
คือตารางที่ชื่ื่อว่า tblnpc ทั้งสองฟอร์มใช้ตารางเดียวกันในการบันทึกข้อมูลครับ
2. ตาราง tblnpc นี้ primary key คือ field ชื่อว่า ID โดยจะให้โปรแกรมรันตัวเลขแบบ AutoNumber ครับ ผมจะไม่ไปกำหนดอะไร แต่ field นีี้จะไม่มีโชว์ในแบบฟอร์มนะครับ
3. field แรกในแบบฟอร์ม Form A ที่ผมจะกรอกข้อมูลชื่อ field "NPCID" (Tex box) แต่จะกรอกเป็นตัวเลขครับ หรือสรุปง่ายๆ field นี้จะใช้เป็นรหัสแบบสอบถาม สามารถลบแก้ไขได้
4. field แรกของแบบ Form B คือ field "BeginYear" (Text box) จะใช้กรอกปี พ.ศ.
ครับ
5.สรุปคือทั้ง field "NPCID" และ field "BeginYear" จะอยู่ในตาราง tblnpc ซึ่งเป็นตารางเดียวกันครับ
6. ประเด็นปัญหาคือ ผมสร้างปุ่มกด Bottom MM เอาไว้กดให้ข้ามไปที่ form B ทันที่และเมื่อกดไปแล้ว
7. กรณีที่เราได้กรอกข้อมูลมาหลาย Record แล้ว อยากให้เวลาปุ่ม Bottom MM ให้มีคำสั่ง เคลียร์ข้อมูลใน Form B ที่มีข้อมูลเก่าด้วยได้เลยครับ
ไม่ทราบว่าจะเข้าใจที่ผมอธิบายไหม เพราะผมก็ไม่มีความรู้เลยจริง พยายามอ่านทั้งในเวบนี้ รวมถึงอ่านเวบของต่างประเทศด้วย แต่ไม่มีพื้นฐานของโปรแกรมและการใช้คำสั่งนี้เลย ขอความกรุณาช่วยชี้แนะด้วยครับ
ขอบคุณครับ
ชัชชาติ วงหนองเตย
5 @R22910
คำตอบก็ยังคงอย่างเดิม คือเมื่อไหร่ที่มี ID เป็น AutoNumber เมื่อไปเรคอร์ดใหม่ (ซึ่งเป็นวิธีเดียวที่จะทำให้หน้าฟอร์มว่างๆ สำหรับฟอร์มที่ผูกเข้ากับเทเบิล) ID จะถูกสร้างใหม่เสมอ ก็ต้องหาฟิลด์อื่นที่ไม่ใช่ AutoNumber มาใช้เป็น Primary Key แทนครับ ไม่งั้นทำไม่ได้
คำถามก็คือ ต้องการไปฟอร์ม B เปล่าๆเพื่อป้อนข้อมูลเข้าไปยังเรคอร์ดที่มีอยู่แล้วเรคอร์ดไหน (ID มีค่าเป็นอะไร) ? และทำไมต้องแยก 2 ฟอร์ม ?
คำถามก็คือ ต้องการไปฟอร์ม B เปล่าๆเพื่อป้อนข้อมูลเข้าไปยังเรคอร์ดที่มีอยู่แล้วเรคอร์ดไหน (ID มีค่าเป็นอะไร) ? และทำไมต้องแยก 2 ฟอร์ม ?
6 @R22911
Record เดิมเลยครับ
1. สมมติว่า record แรก autonumber ID คือ 1 รหัสแบบสอบถามคือ NPCID 001 อยู่ในฟอร์มแรก
ฟอร์มที่สอง ฟิลแรกของฟอร์มที่สองก็คือ BeginYear ซึ่งเป็นข้อมูลของ แบบสอบถาม NPCID 001 แหละครับ คือ record เดียวกันครับ
2.ที่แยกหน้าเพราะแบบสอบถามมีข้อมูลที่เยอะครับจึงแยกเป็นสองฟอร์ม และคนกรอกจะได้ไม่สับสนด้วยหากแยกฟอร์มตามแบบสอบถาม
ขอบคุณครับ
ชัชชาติ วงหนองเตย
1. สมมติว่า record แรก autonumber ID คือ 1 รหัสแบบสอบถามคือ NPCID 001 อยู่ในฟอร์มแรก
ฟอร์มที่สอง ฟิลแรกของฟอร์มที่สองก็คือ BeginYear ซึ่งเป็นข้อมูลของ แบบสอบถาม NPCID 001 แหละครับ คือ record เดียวกันครับ
2.ที่แยกหน้าเพราะแบบสอบถามมีข้อมูลที่เยอะครับจึงแยกเป็นสองฟอร์ม และคนกรอกจะได้ไม่สับสนด้วยหากแยกฟอร์มตามแบบสอบถาม
ขอบคุณครับ
ชัชชาติ วงหนองเตย
7 @R22913
สามารถใช้ Tab Control เพื่อให้มีเหมือนหลายๆฟอร์มบนหน้าฟอร์มเดียวกันได้ ซึ่งทั้งหมดยังเป็นเรคอร์ดเดียวกัน ลองดูภาพผลการใช้ Tab Control ในนี้ครับ
(ซึ่งทั้งหมดอยู่ใน http://www.functionx.com/access2007/Lesson31.htm)
ยังไงก็ตาม ไม่แนะนำให้ใช้ AutoNumber สำหรับ Primary Key นะครับ อาจเกิดปัญหาภายหลังได้


(ซึ่งทั้งหมดอยู่ใน http://www.functionx.com/access2007/Lesson31.htm)
ยังไงก็ตาม ไม่แนะนำให้ใช้ AutoNumber สำหรับ Primary Key นะครับ อาจเกิดปัญหาภายหลังได้
8 @R22915
ขอไปอ่านและทำความเข้าใจก่อน
ขอบคุณนะครับ
ขอไปอ่านและทำความเข้าใจก่อน
ขอบคุณนะครับ
Time: 0.3280s