ผลที่ได้จาก query สามารถนำไป สร้าง event action ต่
กระทู้เก่าบอร์ด อ.Yeadram

 3,409   6
URL.หัวข้อ / URL
ผลที่ได้จาก query สามารถนำไป สร้าง event action ต่

ผมมี query อยู่ 1 ตัว ได้ผลลัพธ์ดังนี้
มี ฟิล job id เก็บหมายเลข job
ฟิล exp1 เก็บข้อมูล
ฟิล exp2 เก็บข้อมูล

job ID       exp1        exp2    
gw1             a              b
nk1              b              b

หลังจากผลแสดงใน datasheet view แล้วผมอยากให้ กด เมาส์ ที่ job ID เช่น
กด บน ตัว gw1 หรือ nk1 แล้ว สามารถสร้าง event ให้เปิด form ได้หรือไม่ครับ
และพอจะมีตัวอย่าง หรือ source code บ้างหรือไม่ครับถ้าทำได้
หรือต้องให้ query ไปแสดงที่ไหนถึงจะสร้าง action แบบนี้ได้ครับ
รบกวนท่านผู้เชี่่ยวชาญด้วยครับหรือถ้าไม่เข้าใจคำถามอย่างไรแจ้งได้ครับ

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

1 @R13381
ต้องสร้างฟอร์มจากคิวรี่นี้อีกที จะเป็นฟอร์มประเภท Single Form, Continous Form หรือ Datasheet ก็ได้   ในเท็กซ์บ็อกซ์ที่แสดงฟิลด์ job ID ให้เลือก [Event Procedure] ใน On Cick หรือ On Dbl Click event   แล้วคลิกปุ่ม ... ที่อยู่ต่อท้าย    Access จะเปิดเข้ามาใน VBA Editor   ให้ใส่โค้ดข้างล่างนี้ จะได้เป็น

Private Sub xxx_Click() หรือ Private Sub xxx_DblClick()
   DoCmd.OpenForm "ชื่อฟอร์ม"
End Sub

2 @R13382
เรียนอาจารย์สันติสุขครับ
คือผมสร้าง form จาก query ไม่เป็นครับพอจะ guide ได้หรือไม่ครับ ต้องเข้าไปที่ คิวรี่แล้วเลือกสร้างจากส่วนไหนของคิวรี่ครับครับหรือพอจะมีตัวอย่างหรือไม่ครับ
3 @R13385
เรียนอาจารย์สันติสุขอีกครับครับ

ผมลองหาจนทำได้แล้วครับขอบคุณมาก ๆ เลยครับสำหรับความรู้ครับ
***ต้องขอโทษที่ไม่ได้ลองหาดูก่อน เลยรีบตอบขอความรู้ไปหน่อยครับ***
4 @R13387
เรียนอาจารย์เพิ่มเติมครับ,

ผมลืมบอกในครั้งแรกไปว่า ถ้าเปิด form ได้แล้วให้ส่งค่าใน text นั้นตามไปด้วยเช่นส่ง 'nk1' ไปยัง form ใหม่ที่เราเปิดด้วยครับต้องเขียนโค๊ตอย่างไรครับ
***รบกวนอีกซักครั้งครับ***
5 @R13391
มีหลายวิธีครับ

1. ส่งไปเป็นพารามิเตอร์นึงพร้อมคำสั่ง .OpenForm
   DoCmd.OpenForm "ชื่อฟอร์ม",,,,,,Me.ชื่อเท็กซ์บ็อกซ์ของ JobID
แล้วฟอร์มที่ถูกเปิด ให้อ่านค่าจากพารามิเตอร์ด้วยคำสั่ง Me.OpenArgs   ข้อเสียของวิธีนี้คือค่าที่ส่งไปจะเป็นประเภท string เท่านั้น และส่งได้เพียงค่าเดียว ถ้าจะส่งหลายค่า ก็ต้องรวมหลายค่าเป็น string อันเดียว แล้วไปเขียนโปรแกรมเพื่อตัดคำเอาเอง

หรือ 2. ฟอร์มที่ถูกเปิดสามารถอ้างอิงเท็กซ์บ็อกซ์จากฟอร์มที่มาสั่งเปิดด้วย
     Forms("ชื่อฟอร์มที่สั่งเปิด").ชื่อเท็กซ์บ็อกซ์ของ JobID    
วิธีนี้ ฟอร์มที่มาสั่งเปิดต้องยังเปิดอยู่ ถ้าปิดไปเมื่อไหร่ก็จะเกิด error

หรือ 3. หลังสั่งเปิดฟอร์มด้วย .OpenForm สามารถกำหนดค่าในเท็กซ์บ็อกซ์ของอีกฟอร์มด้วยคำสั่ง
     Forms("ชื่อฟอร์มที่ถูกเปิด").ชื่อเท็กซ์บ็อกซ์ที่ต้องการรับค่า = Me.ชื่อเท็กซ์บ็อกซ์ของ JobID
ข้อเสียของวิธีนี้คือ ถ้าฟอร์มที่ถูกเปิดต้องการใช้ค่าที่ส่งมาก่อนที่ฟอร์มจะเปิดเสร็จ ก็จะทำไม่ได้

หรือ 4. เก็บไว้ในตัวแปรที่เป็น Public Variable   ข้อเสียคือ รกโปรแกรม ยกเว้นออกแบบให้ดีๆ

หรือ 5. เก็บไว้ในเทเบิลใดเทเบิลนึง ข้อเสียคือ วุ่นวาย ลงแรงทำเยอะ

หรือ ...

เลือกให้เหมาะสมครับ
6 @R13394
ขอบคุณสำหรับความรู้มาก ๆ เลยครับอาจารย์ ผมจะทดลองนำไปใช้ตามที่อาจารย์แนะนำครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2470s