สอบการการเปิดฟอร์มตามเงื่อนไข



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

19 ก.พ. 61 , 11:30:46
อ่าน 617 ครั้ง

prajak

ตามรูปที่1 จะเป็นฟอร์มการกรอกข้อมูล ส่วนรูปที่2 จะเป็นฟอร์มสรุปซึ่งก็คือข้อมูลจากการคีย์ในรูปที่1 รบกวนสอบถามครับ หากผมเปิดฟอร์มตามรูปที่2เพื่อดูข้อมูลสรุป และต้องการแก้ไขข้อมูลบางตัว โดยต้องการให้กดที่ปุ่มแก้ไขด้านท้ายของรายการ แล้วให้มันเปิดฟอร์มที่1และให้ตรงกับข้อมูลนั้นๆ จะต้องทำไงครับ ตามความเข้าใจผมน่าจะใช้ Event On click เพื่อ Open Form ที่1(ฟอร์มคีย์ข้อมูล) แต่ผมไม่รู้ Code คำสั่งในการสร้างเงื่อนไขครับ
รูปที่1

รูปที่2

 

19 ก.พ. 61 , 12:12:29
ตอบกลับ #1

ปิ่นณรงค์

> สอบการการเปิดฟอร์มตามเงื่อนไข
« ตอบกลับ #1 เมื่อ: 19 ก.พ. 61 , 12:12:29 »
สวัสดีครับพี่ ถ้าใช้วิธีบ้านๆแบบผมได้ไหม
ของผมในกรณีที่เป็น ฟอร์มแบบ Continuous Forms และสร้างปุ่มแก้ไขไว้ด้านหลัง ผมจะใช้การ AppendQuery ข้อมูลทั้งหมด ไปยัง ตารางชั่วคราวไว้ก่อน

ตัวอย่างคำสั่งที่ใช้ โดยก่อนจะ Append ข้อมูลที่จะนำไปแก้ไข
1. ในAppend Query .ใช้การอ้างอิง ID ของ ข้อมูล ตัวอย่างในคิวรี่ [Forms]![Form2]![ID] ตามด้วย ข้อมูลอื่นๆ ให้ครบ ตั้งชื่อ Append Query ว่า T_Append
2. กำหนด Table ที่จะ Append นำข้อมูลไปเก็บไว้ชื่อ Tproduct
3. กำหนด แหล่งระเบียนของ Form 1 ฟอร์มที่จะแก้ไข เป็น ข้อมูลจาก Tproduct
คำสั่ง ที่ให้นำข้อมูลที่ต้องการนำมาแก้ไข บนฟอร์มที่ 1

โค๊ด: [Select]
Private Sub Edit_Click()
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acPrevious
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE Tproduct.* FROM Tproduct"  'ให้ลบข้อมูลเก่าก่อนที่จะวางข้อมูลใหม่ที่ระบุ
    DoCmd.OpenQuery "T_Append"
    DoCmd.SetWarnings True
    DoCmd.Close
    DoCmd.OpenForm "Form1"
End Sub

ที่ Form 1 เมื่อแก้ไขข้อมูลเสร็จก็ใช้ UpdateQuery โดยตั้งชื่อว่า T_Update กำหนดให้ ID ของตารางหลัก (tblProduct) และ ตาราง Tproduct มีความสัมพันธ์แบบ Enforce Referential Integrity  เพื่อ Update ข้อมูลที่แก้ไขไปยังตารางข้อมูลหลัก (ชื่อ tblProduct) ของเราเมื่อเราปิด Form 1 (ฟอร์มแก้ไข)
โค๊ด: [Select]
Private Sub Form1_Close()
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "T_Update"   
    DoCmd.RunSQL "DELETE Tproduct.* FROM Tproduct"
    DoCmd.SetWarnings True
    DoCmd.OpenForm "Form2"   
End Sub

ส่วนวิธีง่ายๆกว่านี้ รออาจารย์ท่านอื่น มาบอกนะครับ ผมก็อยากทราบเหมือนกัน
จาก(มือใหม่อยากแบ่งปัน)
« แก้ไขครั้งสุดท้าย: 19 ก.พ. 61 , 12:36:50 โดย bookungth »
:love: :grin:
 

19 ก.พ. 61 , 13:01:52
ตอบกลับ #2

prajak

> สอบการการเปิดฟอร์มตามเงื่อนไข
« ตอบกลับ #2 เมื่อ: 19 ก.พ. 61 , 13:01:52 »
น่าจะยากสำหรับผมแล้วครับ 555 ขอบคุณมากนะครับ

 

20 ก.พ. 61 , 13:49:34
ตอบกลับ #3

ekppom

> สอบการการเปิดฟอร์มตามเงื่อนไข
« ตอบกลับ #3 เมื่อ: 20 ก.พ. 61 , 13:49:34 »
ดับเบิ้ลคลิกขึ้นมาแล้วแก้ไขรายการ ผมใช้วิธีนี้อยู่ ลองนำไปปรับใช้ดูนะครับ
Private Sub ชื่อText Box_DblClick
Dim stLinkCriteria As String
stLinkCriteria = "[ชื่อText Box1]=" & "'" & Me![ชื่อText Box2] & "'"
DoCmd.OpenForm "ชื่อฟอร์มที่จะให้เปิดขึ้นมา", , , stLinkCriteria
End Sub

หรือสร้างปุ่มขึ้นมา1ปุ่ม
1เลือก Action เป็นOpen Form
2เลือกชื่อฟอร์มที่จะเปิดขึ้นมา
3เลือก เปิดฟอร์มพร้อมกับค้นหาข้อมูลที่แสดง(Open the form and find specific data to display)
4เลือก Text Box ด้านซ้าย และเลือก Text Box ด้านขวา
5คลิกปุ่มสัญลักษณ์ <-> ที่อยู่ตรงกลางระหว่าง2ช่องตามข้อ4

6คลิกNext 2ครั้งแล้ว คลิก Finish
« แก้ไขครั้งสุดท้าย: 20 ก.พ. 61 , 13:53:47 โดย ekppom »

 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

20 ก.พ. 61 , 16:38:47
ตอบกลับ #4

prajak

> > สอบการการเปิดฟอร์มตามเงื่อนไข
« ตอบกลับ #4 เมื่อ: 20 ก.พ. 61 , 16:38:47 »
ดับเบิ้ลคลิกขึ้นมาแล้วแก้ไขรายการ ผมใช้วิธีนี้อยู่ ลองนำไปปรับใช้ดูนะครับ
Private Sub ชื่อText Box_DblClick
Dim stLinkCriteria As String
stLinkCriteria = "[ชื่อText Box1]=" & "'" & Me![ชื่อText Box2] & "'"
DoCmd.OpenForm "ชื่อฟอร์มที่จะให้เปิดขึ้นมา", , , stLinkCriteria
End Sub

หรือสร้างปุ่มขึ้นมา1ปุ่ม
1เลือก Action เป็นOpen Form
2เลือกชื่อฟอร์มที่จะเปิดขึ้นมา
3เลือก เปิดฟอร์มพร้อมกับค้นหาข้อมูลที่แสดง(Open the form and find specific data to display)
4เลือก Text Box ด้านซ้าย และเลือก Text Box ด้านขวา
5คลิกปุ่มสัญลักษณ์ <-> ที่อยู่ตรงกลางระหว่าง2ช่องตามข้อ4

6คลิกNext 2ครั้งแล้ว คลิก Finish
ขอบคุณครับ เดี๋ยวผมจะลองไปประยุกต์ดู ได้เรื่อยังไงจะมาบอกนะครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย