บอร์ดเรียนรู้ Access สำหรับคนไทย
Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: kunlek ที่ 28 ก.ย. 62 , 21:36:10
-
เปิดฟอร์มบันทึกขายสินค้า ในส่วน details ของ รหัสสินค้า ชื่อสินค้า ทำ combo boxดึงรหัสสินค้าจากตารางสินค้า แต่ก็มีบางบรรทัดใน detail สินค้า เราต้องการพิมพ์ข้อความ อะไรก็ได้ ไม่เกี่ยวกับชื่อสินค้า หรือตารางสินค้า จะเขียน code อย่างไร หรือมีเทคนิคอย่างไรครับ
(https://www.thai-access.com/tiupld/images/pyjpvl-fb925c.JPG)
-
กรณีนี้ ถ้าผมสร้าง text field(other_detail) วางทับซ้อน ฟิลด์รายการสินค้า(detail_goods) และ visible=no ไว้ เมื่อเราจะใช้ text fieldนี้ เราก็จะ double click, text field ก็จะ visible และให้ field รายการสินค้า visible=no ผมจะเขียน codeได้้แบบไหนครับ อจ.
field รายการสินค้า text field(ที่ซ่อนไว้)
name detail_goods other_detail
-
กรณีนี้ ถ้าผมสร้าง text field(other_detail) วางทับซ้อน ฟิลด์รายการสินค้า(detail_goods) และ visible=no ไว้ เมื่อเราจะใช้ text fieldนี้ เราก็จะ double click, text field ก็จะ visible และให้ field รายการสินค้า visible=no ผมจะเขียน codeได้้แบบไหนครับ อจ.
field รายการสินค้า text field(ที่ซ่อนไว้)
name detail_goods other_detail
ใช้ ColumnHidden ก็ได้ครับ
ถ้าบนฟอร์ม
Private Sub detail_goods_DblClick(Cancel As Integer)
Me.other_detail.ColumnHidden = False
Me.other_detail.SetFocus
Me.detail_goods.ColumnHidden = true
End Sub
Private Sub Form_Load()
Me.detail_goods.ColumnHidden = False
Me.other_detail.ColumnHidden = True
End Sub
ถ้าทำบนรายงาน
Private Sub detail_goods_DblClick(Cancel As Integer)
Me.other_detail.Visible = True
Me.other_detail.SetFocus
Me.detail_goods.Visible = False
End Sub
Private Sub Report_Load()
Me.detail_goods.Visible = True
Me.other_detail.Visible = False
End Sub
-
ผมเอา code ไปวางที่ on dbl click ที่ ฟิลด์ detail_goods
มี error ตามนี้ครับ can't move the focus to the control other_detail ครับ
ขอเพิ่มข้อมูลที่ ฟอร์ม porperties
field รายการสินค้า text field(ที่ซ่อนไว้)
name detail_goods other_detail
control source good_id other_detail
-
ลองดูตัวอย่างนี้คับ
-
แบบที่ท่านแนะนำครั้งแรก ใช้ได้แล้วครับ แต่มันยังติดตรงที่ว่า ถ้าจะให้ว่าหลังจากบันทึกข้อมูลใน field other_detail แล้ว ผมจะต้องป้อนข้อมูลบรรทัดถัดไป อยากจะให้คืนสภาพ ก่อน dbl click ที่ฟิลด์ หรือแบบว่าสลับไปสลับมาได้ ตัวอย่างใหม่ที่ท่านแนบมาจะนำไปศึกษาดูว่าดัดแปลงที่ผมต้องการได้หรือไม่ ขอบพระคุณอย่างสูงครับ
-
อีกนิดครับ เดิม field other_detail จะอยู่หลัง field detail_goods แและ visible=no เมื่อ dbl click ที่field detail_goods ให้ other_detail อยู่หน้าแทน และ visible=yes ส่วน field detail_goods ไปหลบแทน other_detail สลับสลับมาครับ(ที่ table ผมมี field ลองรับ 2 data ครับ)
-
อีกนิดครับ เดิม field other_detail จะอยู่หลัง field detail_goods แและ visible=no เมื่อ dbl click ที่field detail_goods ให้ other_detail อยู่หน้าแทน และ visible=yes ส่วน field detail_goods ไปหลบแทน other_detail สลับสลับมาครับ(ที่ table ผมมี field ลองรับ 2 data ครับ)
สลับตัว Control ด้วยใช่ไหมคับ เดี่ยวลองดูก่อน
-
แจ้งปัญหาเพิ่มเติม เมื่อ dbl click ที่ detail_goods ผลที่ได้รับเป็นไปตามที่ต้องการ แต่ถ้าต้องการ switching กลับๆไม่ได้ และสมมติว่าป้อนรายการขายสินค้าใน subform ไปได้ 2 รายการ เมื่อถึงรายการที่ 3 dbl click เพื่อต้องการเปลี่ยน ได้เกิดผลตามต้องการ แต่ field detail_goods ของ รายการที่ 1-2 เปลี่ยนไปด้วย (ไม่ต้องการให้เปลี่ยน)
-
อีกทางเลือก
1 กำหนดtextbox detail_goods และ other_detail ให้มีความกว้างและสูงเท่ากัน
2 กำหนดtextbox other_detail recordsource =other_detail และ textbox detail_goods recordsource =detail_goods
3 textbox other_detail คลิกขวา กำหนดตำแหน่ง ย้ายไปหลังสุด
4 texbox detail_goods กำหนด porperty เหตุการณ์ onclick หรือ DblClick : me.other_detail.setfocus
5 ว่าง textbox detail_goods และ other_detail ซ้อนทับกันให้พอดี
เปิด form ทดสอบลอง click หรือ DblClick กรอกข้อมูล
เป็นอีกทางเลือกแต่ไม่รู้ว่าตรงตามที่ต้องการหรือเปล่านะครับ
-
เรียนคุณ SU หมายถึงให้เปลี่ยน control source แล้ว name ไม่ต้องเปลี่ยน และ code ที่คุณ PNR ยังใช้หรือไม่ครับ
-
code ของ อ. PNR ไม่ต้องใช้ control source ยังเหมือนเดิม name ยังเหมือนเดิมครับ
-
มี error ครับ runtime error 2110 can't move the focus to the control other_detail ถามเพิ่ม ต้อง เอาเรื่อง visible ออกไหม ให้เป็นyes ตาม default หรือเปล่าครับ
-
ไฟล์ตัวอย่าง
-
เรียน อจ ทั้ง 2 ่ท่าน ผมขอต่อยอดจาก อจ.PNR เมื่อวันที่ 30/09/62 จบที่ other_detail รับข้อมูลได้แล้ว แต่ยังไม่สามารถ switching กลับไปให้ detail_goods เป็น default ของ entry record นี้ ต้องจบการบันทึกข้อมูลในฟอร์ม เมื่อเปิดใหม่จึงได้ default เดิม(เป็นที่สุดของกระทู้นี้)........ ถ้าเราจะเขียน code ไว้ที่ even ON ENTER ของ field other_detail หรือ even ที่ เมื่อป้อน entry ใหม่ code นั้นจะเป็นอย่างไรครับ อจ. ผมไปไม่ถึงจริงๆๆครับ
-
ขอดูโค้ดตอนนี้หน่อยครับ
ความต้องการต่อไปคือ เมื่อใส่ข้อมูลใน Otherdetail แล้ว พอกด Enter ให้ แสดง detail_goods เหมือนเดิมใช่หรือไม่
-
ใช่ครับ กด enter ให้ กลับเป็น detail_goods
code ที่ใช้ตอนนี้เป็นของ อจ
Private Sub detail_goods_DblClick(Cancel As Integer)
Me.other_detail.Visible = True
Me.other_detail.SetFocus
Me.detail_goods.Visible = False
End Sub
Private Sub Report_Load()
Me.detail_goods.Visible = True
Me.other_detail.Visible = False
End Sub
-
เพิ่มเป็น
Private Sub detail_goods_DblClick(Cancel As Integer)
Me.other_detail.Visible = True
Me.other_detail.SetFocus
Me.detail_goods.Visible = False
End Sub
Private Sub Form_Load()
Me.other_detail.Visible = False
Me.detail_goods.Visible = True
End Sub
Private Sub other_detail_Exit(Cancel As Integer)
Me.detail_goods.Visible = True
Me.detail_goods.SetFocus
Me.other_detail.Visible = False
End Sub
เวลาเรา Enter มันจะกลับไปที่ textbox detail_goods
-
ได้แล้วครับ ขอบพระคุณครับ อจ