กระทู้เก่าบอร์ด อ.Yeadram
1,868 8
URL.หัวข้อ /
URL
ฟอร์มเพิ่มเรคคอร์ดขึ้นมาเองครับ
ผมได้สร้างฟอร์มเพิ่มข้อมูลขึ้นมา ทุกครั้งที่มีการเปิดฟอร์ม จะมีการเพิ่มเรคคอร์ดขึ้นมาอัตโนมัติ โดยยังไม่ได้กดปุ่มเพิ่มเรคคอร์ด ผมจะต้องแก้ไขอย่างไรบ้างครับ โดยข้อมูลที่จะเพิ่มขึ้นมาจะต้องกดปุ่มเพิ่มเรคคอร์ดเท่านั้น หลังจากที่เราบันทึกข้อมูลเสร็จ จึงจะมีการเพิ่มข้อมูลขึ้นมา ขอบคุณมากครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R18110
ไปดูที่ Form_Load และ Form_Open ว่ามีเขียนโค้ดอะไรเอาไว้บ้างหรือไม่ หรือใน On Load และ On Open ใน property ของฟอร์มมีกำหนดอะไร
2 @R18111
On Open ผมกำหนด maximize ครับ ส่วน On Load ผมกำหนด Addrecord ครับ อาจารย์สันติสุขครับผม
3 @R18112
คือผมอยากจะให้เปิดฟอร์มแล้วขึ้นเรคคอร์ดใหม่พร้อมคีย์ข้อมูลครับ จะใส่ next record ไป ก็ต้องทำปุ่มเพิ่มเรดคอร์ดพอเปิดฟอร์มก็ต้องกดปุ่มเพิ่มเรคคอร์ดก่อนถึงจะคีย์ได้ มีวิธีไหนบ้างไหมครับเวลาเปิดฟอร์มมาแล้วพร้อมคีย์โดยที่เมื่อคีย์เสร็จแล้วกดปุ่มเพิ่มเรคคอร์ดแล้วถึงจะมีการบันทึกหรือเพิ่มเข้าไปในเทเบิ้ล ขอบคุณมากครับ
4 @R18114
เวลาคุณอธิบาย อ่านแล้วยากที่จะเข้าใจ
- Addrecord ที่ว่านี้ มันทำอะไรครับ ถ้าอ่านจากชื่อก็เดาว่าเป็นการเพิ่มเรคอร์ดใช่หรือไม่ ถ้าคุณไม่อยากให้เพิ่มเรคอร์ด ทำไมไม่เอา Addrecord ออกไปหล่ะครับ
- เพิ่มฟอร์มแล้วให้ไปอยู่ที่เรคอร์ดใหม่พร้อมคีย์ข้อมูล ก็อาจจะสั่ง DoCmd.GoToRecord , , acNewRec หรือกำหนดค่า Data Entry property ของฟอร์มให้เป็น Yes แต่วิธีหลังนี้ จะทำให้ไม่เห็นเรคอร์ดที่เคยป้อนไปจากการเปิดฟอร์มครั้งก่อนๆ
- คีย์เสร็จแล้ว กดปุ่มเพิ่มเรคคอร์ด แล้วถึงจะมีการบันทึกหรือเพิ่มเข้าไปในเทเบิล http://thai-access.com/yeadram_view.php?topic_id=2194
- Addrecord ที่ว่านี้ มันทำอะไรครับ ถ้าอ่านจากชื่อก็เดาว่าเป็นการเพิ่มเรคอร์ดใช่หรือไม่ ถ้าคุณไม่อยากให้เพิ่มเรคอร์ด ทำไมไม่เอา Addrecord ออกไปหล่ะครับ
- เพิ่มฟอร์มแล้วให้ไปอยู่ที่เรคอร์ดใหม่พร้อมคีย์ข้อมูล ก็อาจจะสั่ง DoCmd.GoToRecord , , acNewRec หรือกำหนดค่า Data Entry property ของฟอร์มให้เป็น Yes แต่วิธีหลังนี้ จะทำให้ไม่เห็นเรคอร์ดที่เคยป้อนไปจากการเปิดฟอร์มครั้งก่อนๆ
- คีย์เสร็จแล้ว กดปุ่มเพิ่มเรคคอร์ด แล้วถึงจะมีการบันทึกหรือเพิ่มเข้าไปในเทเบิล http://thai-access.com/yeadram_view.php?topic_id=2194
5 @R18117
ขอโทษด้วยนะครับอาจาย์สันติสุขที่เขียนแล้วอ่านเข้าใจยากครับ ^^" ขอบคุณอาจารย์สันติสุขมากๆครับผม ขอบคุณครับผม
6 @R18119
ในลิ้งค์ http://thai-access.com/yeadram_view.php?topic_id=2194
คือในฟอร์ม properties
ไปใส่ใน BeforeUpdate
ไปใส่ใน AfterUpdate
ไปใส่ในปุ่มบันทึก
แล้วข้างล่างนี้ไปใส่ในไหนครับผม
รบกวนชี้แนะด้วยครับ ขอบคุณมากครับอาจารย์
Option Compare Database
Option Explicit
Dim IsSaveClicked As Boolean
Private Sub Form_Error(DataErr As Integer, Response As Integer)
IsSaveClicked = False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = Not IsSaveClicked
End Sub
Private Sub Form_AfterUpdate()
IsSaveClicked = False
End Sub
Private Sub btnSave_Click()
IsSaveClicked = True
Me.Dirty = False ' สั่งให้บันทึกข้อมูล
End Sub
คือในฟอร์ม properties
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = Not IsSaveClicked
End Sub
ไปใส่ใน BeforeUpdate
Private Sub Form_AfterUpdate()
IsSaveClicked = False
End Sub
ไปใส่ใน AfterUpdate
Private Sub btnSave_Click()
IsSaveClicked = True
Me.Dirty = False ' สั่งให้บันทึกข้อมูล
End Sub
ไปใส่ในปุ่มบันทึก
แล้วข้างล่างนี้ไปใส่ในไหนครับผม
Option Compare Database
Option Explicit
Dim IsSaveClicked As Boolean
Private Sub Form_Error(DataErr As Integer, Response As Integer)
IsSaveClicked = False
End Sub
รบกวนชี้แนะด้วยครับ ขอบคุณมากครับอาจารย์
7 @R18120
Dim IsSaveClicked As Boolean ให้เปิดเข้าไปใน VBA Editor สำหรับฟอร์มนั้นๆ แล้วใส่ไว้ที่ข้างบนของโปรแกรม ส่วน Form_Error ก็ทำเหมือนๆกับที่ทำสำหรับ event อื่นของฟอร์มครับ
8 @R18125
ขอบคุณอารย์สันติสุขมากๆครับผม
Time: 0.3209s