ส่งข้อมมูลจากฟอร์มไปยังตาราง
กระทู้เก่าบอร์ด อ.Yeadram

 2,352   9
URL.หัวข้อ / URL
ส่งข้อมมูลจากฟอร์มไปยังตาราง

ผมจะส่งข้อมมูลจากฟอร์ม(form1)ไปยังตาราง(table1)เขียนCodeยังงัยครับ
ในฟอร์มมีกล่องข้อความ2กล่องชื่อ tbx1 กับ tbx2
ในตารางมี3ฟิลด์ชื่อ autonum กับ fx1 และ fx2 จะเอาข้อมูลที่บันทึกในกล่องข้อความ
tbx1 ไป fx1 และ tbx2 ไป fx2 โดย autonum ให้+1 ไปเรื่อยๆ

ถ้าคำถามไม่เข้าใจ จะอธิบายเพิ่มครับ

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

1 @R15373
ใช้ access อย่างเดียว หรือ ใช้ vb เขียนครับ
2 @R15374
ผมไม่แน่ใจว่ามันเรียกว่าอะไรครับ แต่มันอยู่ใน Access
เคยได้ยินมาว่าใน Access มีทั้ง VB และ Access Besic
3 @R15375
หมายถึงฟอร์ม Form1 เป็น Unbound เมื่อคีย์ข้อมูลใน tbx1 กับ tbx2 แล้วให้ข้อมูลไปเก็บในฟิลด์ fx1 และ fx2 อย่างนั้นหรือเปล่าครับ หรือ Form1 มีการดึงข้อมูลจากตารางหรือคิวรี่ด้วย
4 @R15376
Form1 เป็น Unbound ครับ แต่ที่สำคัญคือ ฟิลด์ autonum ครับ สมมุติ ว่าจะเอาค่า Max มาจาก ฟิลด์ at ใน table2 ผมเขียนเป็นโค๊ตไม่ถูก
5 @R15377
คุณคงต้องไล่ขั้นตอนแล้วหละครับ ยิ่งอ่านยิ่งงงครับ
6 @R15380
การเพิ่มเรคอร์ดเข้าไปในเทเบิลของ Access เอง หลักๆก็มีวิธีเหล่านี้

1. ทำผ่าน Data Access Object ไม่ว่าจะเป็น ADO หรือ DAO โดยการสร้าง SQL INSERT statement ตย.ของ ADO http://thai-access.com/yeadram_view.php?topic_id=1670     

2. ทำผ่าน ADO หรือ DAO เหมือนข้อ 1. แต่ทำโดยเปิด Recordset Object แล้วเขียนค่าลงไปทีละฟิลด์ แล้วสั่งเขียนเรคอร์ด ตย.ของ DAO (ในคำตอบที่ 2) http://thai-access.com/yeadram_view.php?topic_id=3269

3. ทำผ่าน Access Object โดยการสร้าง SQL INSERT statement แล้วสั่งด้วย .Execute method   ตย.ในคำตอบสุดท้าย http://thai-access.com/yeadram_view.php?topic_id=894

วิธีที่ 1 และ 2 ทำงานไม่ต่างกัน เพียงแต่ถนัดแบบไหน/เหมาะสมแบบไหนก็เลือกแบบนั้น
วิธีที่ 3 เท่าที่ทราบคือมันมีความสามารถเพิ่มเข้ามาตรงมันสามารถตีความหาค่าจาก Access Object ก่อนส่งไปทำได้ เช่น "insert into table (field1,...) values (forms![form1]![text1], ...)" ซึ่งถ้าทำด้วยวิธีที่ 1 DAO หรือ ADO จะไม่ทราบว่า forms![form1]![text1] คืออะไร ก็จะตีว่า error ออกมาแทน แต่โดยปกติที่ผมทำ ผมจะหาค่า forms![form1]![text1] ออกมาก่อน แล้วค่อยเอาค่านั้นสร้างเป็นส่วนหนึ่งของ SQL INSERT statement ไปเลย เช่น "insert into table (field1,...) values (" & forms![form1]![text1] & ", ...)" เรียกได้ว่าวิธีที่ 3 นี้ กระทำบนเลเยอร์ที่อยู่สูงกว่า Data Access Layer ครับ แต่ก็แลกมากับ performance ที่ช้ากว่าครับ

สำหรับการกำหนด Autonumber field ให้มีค่าตามที่เราต้องการ ก็ให้เขียนเรคอร์ดอะไรก็ได้ไป 1 เรคอร์ดก่อน โดยที่มีค่าของฟิลด์ Autonumber เท่ากับค่าที่อยากได้ลบด้วย 1   จากนั้นก็ลบเรคอร์ดที่เพิ่งเขียนนี้ออก ต่อไปฟิลด์ Autonumber ก็จะเริ่มเลขที่ตามที่เราต้องการแล้วครับ

หมายเหตุ : ตัว Access และโปรแกรมอื่นๆในชุด Microsoft Office มีแต่ภาษา VBA (Visual BASIC for Application) เท่านั้นครับ
7 @R15383
ขอถามด้วยคับ คือผมต้องการสร้างแบบง่ายๆนะครับ

คือผมต้องการสร้าง from(From1) login เพื่อตรวจสอบสิทธิ์ ถ้า Username และ Password ถูกต้อง ให้เปิด from2 อะไรประมาณนี้ครับ
เขียนด้วย access ครับ
แนะนำด้วยนะครับ


8 @R15387
ขอบคุณ อาจรย์TTT และอาจารย์สันติสุขครับ เดี๋ยวว่างๆ จะมาอธิบายอีกทีครับ ตอนนี้ผมทำได้แล้ว แต่ ยังไม่ได้แบบที่ต้องการ คือ เป็น VBA ทั้งหมด ยังต้องอ้างไปที่ Query อยู่ ซึ่งปัญหาของผมคือ พอโปรแกรมมันใหญ่ขึ้น จำ Query ไม่ได้ ต้องมาไล่ Query เลยอยากจะใช้ VBA แทนแต่ อ้างไม่ถูกครับ
9 @R15390
ตั้งชื่อคิวรี่ให้มีส่วนเหมือนกับชื่อฟอร์ม / รายงาน จะช่วยให้ตามหาได้ง่าย เช่น ฟอร์ม FrmA ก็ใช้คิวรี่ QryA_ xxxxxx ก็ได้ครับ ผมจะใช้คิวรี่เมื่อ SQL statement นั้นยาวและสลับซับซ้อน ดูใน Design View จะทำให้เข้าใจได้ง่าย แต่ถ้าสั้นๆ ผมก็เขียน SQL statement นั้นลงใน VBA โค้ดเลย   การใช้ให้เหมาะสมจะทำให้การดูแลโค้ดทำได้ง่าย ไม่จำเป็นต้องใช้อย่างใดอย่างหนึ่งเท่านั้นครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2721s