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

Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: kunlek ที่ 11 ม.ค. 63 , 16:56:07

หัวข้อ: click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 11 ม.ค. 63 , 16:56:07
จะทำได้อย่างไร เมื่อฟอร์มการชำระหนี้  มีการแสดงส่วนบิลที่ค้างชำระ เมื่อต้องการตัดบิลใบไหน ให้ clickที่ฟิลด์อินวอยซ์ แล้วไปปรากฏที่ table ของฟอร์มเก็บบิลที่ชำระ
(https://www.thai-access.com/tiupld/images/q3xsvh-950e57.PNG)

หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 11 ม.ค. 63 , 17:02:41
ฟิลด์ที่ 1 คือ table ที่ได้จาก query ของ table ชื่อฟิลด์ว่า voucher_s_id
และฟิลด์ที่ 2  คือฟิลด์ voucher_s_id   ที่รองรับการเลือกชำระ
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 11 ม.ค. 63 , 17:03:26
(https://www.thai-access.com/tiupld/images/q3xt8z-430d70.PNG)
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: PNR ที่ 12 ม.ค. 63 , 20:02:50
ดูเหมือนทั้งคู่จะเป็นซัพฟอร์ม โดยมี ฟอร์มหลักอีกที

จากรูปภาพ ผมว่าถ้าจะนำ voucher_s_id จาก Subform หนึ่ง มาวาง ในอีก Subform ใช้การสร้างตัวแปรเก็บค่าไว้แล้วเอาไปแสดงอีกทีเช่น
ผมกำหนด Form รายการบิลที่ค้างชำระ ชื่อ Frm01
             Form รายการบิลที่ต้องการชำระ ชื่อ Frm02
             Formหลัก ชื่อ Frmmain
 ใช้ Event Double Click

Private Sub voucher_s_id_DblClick(Cancel As Integer)
Dim strID As String
If MsgBox("ต้องการตัดบินใช่หรือไม่", vbYesNo, "สอบถาม") = vbYes Then
Me.Dirty = False
strID = Me.voucher_s_id
Forms!frmmain.Form.frm02.SetFocus
DoCmd.GoToRecord record:=acNewRec
Forms!frmmain.Form.frm02!voucher_s_id.SetFocus
Forms!frmmain.Form.frm02!voucher_s_id = strID
End If
End Sub
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 12 ม.ค. 63 , 20:13:14
เอา code นี้ไปวางที่field voucher_s_id ในฟอร์มค้างชำระ Frm01 ใช่หรือไม่ครับ อจ.
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: PNR ที่ 12 ม.ค. 63 , 20:17:33
textbox ของ field voucher_s_id ของ frm01 ครับ ตั้งชื่อไว้ว่า voucher_s_id เลยก็ได้คับ
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 12 ม.ค. 63 , 21:32:21
ทำแล้ว  ขึ้น error ตามรูป ครับ
(https://www.thai-access.com/tiupld/images/q400bp-a15570.PNG)
(https://www.thai-access.com/tiupld/images/q400dd-9d31fb.PNG)
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: PNR ที่ 13 ม.ค. 63 , 07:43:34
เหมือนฟอร์มเก็บบิลที่ชำระ จะไม่ได้เปิดให้ให้เพิ่มข้อมูลใหม่ นะครับ
ถ้าเพิ่มเรคคอร์ดใหม่ไม่ได้ ใช้แค่เรคคอร์ดเดียวที่ฟอร์ม 2 ให้ลบโค้ด Docmd.gotorecord,,acnewrec ออกไป
ข้อมูลก็จะเพิ่มแค่เรคคอร์ดเดียวเมื่อกด ฟอร์ม1 เข้ามา


หรือถ้าฟอร์ม 2 นั้นจะปิดการเพิ่ม Record ใหม่ บนฟอร์ม
จะใช้วิธีอื่นๆก็ได้เช่น rs!Addnew หรือจะใช้การ AppendQeury ไปที่ F_receivable_total แล้วสั่ง Requery บนฟอร์ม2 เพื่อแสดง ID นั้นขึ้นมา ก็ได้เหมือนกันครับ
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 13 ม.ค. 63 , 19:18:31
ขอส่งไฟล์ใหม่
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: PNR ที่ 14 ม.ค. 63 , 08:41:35
ไม่รู้แบบนี้หรือเปล่า คลิกแล้ว ไปแสดงที่อีกซัพฟอร์ม
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 14 ม.ค. 63 , 20:51:19
ได้แล้วครับไม่รู้ อจ แก้ไขตรงไหนบ้าง ใช้ฟอร์มผมก็ยังมี  "error 438"  ขอบพระคุณ
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: kunlek ที่ 16 ม.ค. 63 , 23:07:30
ทำใหม่อีกไฟล์ ก็ไม่ได้ ขอคำแนะนำหลักการ งง?ตรง caption หรือ control source หรือ ชื่อ mainฟอร์ม หรือ sub ฟอร์ม
หัวข้อ: : click เลือกfieldให้เก็บค่าไปลงในฟอร์มที่ระบุ
เริ่มหัวข้อโดย: PNR ที่ 17 ม.ค. 63 , 08:13:14
สร้าง backup ฐานจริงไว้ แล้วรีโมทไปแก้ให้ดีกว่าครับ ผมก็ไม่รู้ว่าฟอร์มจริงตั้งค่าไว้แบบไหน อธิบายยาก
หรือ รีโมท anydesk ไปดูจะสะดวกไหม ผมทักไลน์ไปหาท่านแล้วครับ