กระทู้เก่าบอร์ด อ.Yeadram
1,876 2
URL.หัวข้อ /
URL
การใช้ MainForm SubForm
เนื่องจากว่า ผมใช้ Access Project
ฐานข้อมูลเป็น SQL 2000
Link ระหว่าง MainForm กับ SubForm ใช้ AutoNumber
Autonumber ใน SQL จะโผล่ต่อเมื่อ เรา Save Record
ปัญหาคือ ถ้าเป็น Record ใหม่ ถ้า คีย์ข้อมูลเสร็จ จะ ข้ามไป Sub Form จะฟ้อง Error ซึ่งเข้าใจว่า เป็น Error ที่ ข้อมูลทีคีย์เข้าไป ยังไม่ได้ Save และยังไม่มี ข้อมูล AutoNumber ครับ
จะแก้ไขยังไร และ Save ตอนไหนดึ ครับ
เซฟ ใน MainForm ตอนไหน Event อะไรครับ
ฐานข้อมูลเป็น SQL 2000
Link ระหว่าง MainForm กับ SubForm ใช้ AutoNumber
Autonumber ใน SQL จะโผล่ต่อเมื่อ เรา Save Record
ปัญหาคือ ถ้าเป็น Record ใหม่ ถ้า คีย์ข้อมูลเสร็จ จะ ข้ามไป Sub Form จะฟ้อง Error ซึ่งเข้าใจว่า เป็น Error ที่ ข้อมูลทีคีย์เข้าไป ยังไม่ได้ Save และยังไม่มี ข้อมูล AutoNumber ครับ
จะแก้ไขยังไร และ Save ตอนไหนดึ ครับ
เซฟ ใน MainForm ตอนไหน Event อะไรครับ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R10925
การใช้งานร่วมกับฐานข้อมูลใหญ่ อาจจะจำเป็นต้องทำงานร่วมกับหลายๆ client
การจองเลขที่ Autonumber ของแต่ละ Client อาจมีจังหวะชนกันบ้าง ซึ่งเป็นปัญหาที่ต้องอาศัยความเข้าใจในเบืองลึกพอสมควรในการจัดการ
เคยมีการถามตอบกันหลายครั้งทั้งในเว็บบอร์ดเก่าของอ.สุภาพ และในบอร์ดใหม่นี้เช่นกัน
สำหรับงานของคุณ Teerapat อาจจะยังไม่ประสบปัญหานี้ แต่ก็ควรป้องกันไว้ก่อนครับ ดังนั้นขอแนะนำครับ ให้เซฟทันที ที่เร็วที่สุดเท่าที่จะทำได้ เช่นเมื่อมีการขึ้นเรคคอร์ดใหม่ แล้วมีการบังคับให้โฟกัสที่คอนโทรลตัวใดๆ แล้วล่ะก็ ให้อาศัยเหตุการณ์นั้นเลยครับ ทำการเซฟ (ถ้าเขียน sql เอง จังหวะนี้ต้องเขียนด้วย Insert into .. ครับ) ถ้ามีฟอร์มหลักฟอร์มย่อย ต้องเซฟในฟอร์มหลักก่อนเลยครับ
ส่วนการทำงานหลังจากนั้นก็ทำไปทีละคอนโทรล สลับไปมา ข้ามไปมาก็ได้ แล้วแต่สะดวก เมื่อเสร็จแล้วก็ ต้องสั่งเซฟอีกทีครับ (ถ้าเขียน sql เอง จังหวะนี้ต้องเขียนเป็น Update .... set .....) ถ้ามีฟอร์มหลักฟอร์มย่อย อาจต้อง สั่ง update 2 ครั้งครับ คือ update ไปที่แหล่งข้อมูลของฟอร์มหลักก่อน แล้วค่อยอัพเดตไปที่แหล่งข้อมูลของฟอร์มย่อยอีกที
การจองเลขที่ Autonumber ของแต่ละ Client อาจมีจังหวะชนกันบ้าง ซึ่งเป็นปัญหาที่ต้องอาศัยความเข้าใจในเบืองลึกพอสมควรในการจัดการ
เคยมีการถามตอบกันหลายครั้งทั้งในเว็บบอร์ดเก่าของอ.สุภาพ และในบอร์ดใหม่นี้เช่นกัน
สำหรับงานของคุณ Teerapat อาจจะยังไม่ประสบปัญหานี้ แต่ก็ควรป้องกันไว้ก่อนครับ ดังนั้นขอแนะนำครับ ให้เซฟทันที ที่เร็วที่สุดเท่าที่จะทำได้ เช่นเมื่อมีการขึ้นเรคคอร์ดใหม่ แล้วมีการบังคับให้โฟกัสที่คอนโทรลตัวใดๆ แล้วล่ะก็ ให้อาศัยเหตุการณ์นั้นเลยครับ ทำการเซฟ (ถ้าเขียน sql เอง จังหวะนี้ต้องเขียนด้วย Insert into .. ครับ) ถ้ามีฟอร์มหลักฟอร์มย่อย ต้องเซฟในฟอร์มหลักก่อนเลยครับ
ส่วนการทำงานหลังจากนั้นก็ทำไปทีละคอนโทรล สลับไปมา ข้ามไปมาก็ได้ แล้วแต่สะดวก เมื่อเสร็จแล้วก็ ต้องสั่งเซฟอีกทีครับ (ถ้าเขียน sql เอง จังหวะนี้ต้องเขียนเป็น Update .... set .....) ถ้ามีฟอร์มหลักฟอร์มย่อย อาจต้อง สั่ง update 2 ครั้งครับ คือ update ไปที่แหล่งข้อมูลของฟอร์มหลักก่อน แล้วค่อยอัพเดตไปที่แหล่งข้อมูลของฟอร์มย่อยอีกที
Time: 0.7299s
ลองสร้าง ฟอร์ม ใหม่ Main Form Subform
มันทำได้ครับ น่าจะเป็นที่ Code ตัวอื่นมากกว่าครับ