Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย

น้อมรำลึกในพระมหากรุณาธิคุณอันหาที่สุดมิได้ พระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดชฯ พระผู้เสด็จสู่สวรรคาลัย

Back to Board : Thai Access Webboard New Topic    Reply
ต้องการส่งค่าจาก Mainform ไปที่ หลาย ๆ เรคคอร์ดใน

Topic by Message Posted : on : 14/6/2555 16:43:15
jemie  เรียนผู้รู้ค่ะ

คือต้องการส่งค่า true ไปที่ checkbox ของ subform ทุกบรรทัดค่ะ เช่นตอนนี้นะคะ มี subform ชื่อ orderbill2 โดย checkbox ชื่อ Kit ค่ะ โดยต้องการให้คลิกที่ปุ่มคำสั่งที่Mainform เพียงครั้งเดียว ก็ให้checkbox ของ subform ทุกบรรทัดที่มีใน subform ตอนนั้นขึ้นเป็น true หรือ ค่า yes น่ะค่ะ หลักการคล้าย ๆ กับการที่เราเลือก เมลล์ในเมลล์บ๊อกซ์ของเรา เลือกแบบ all ก็จะเท่ากับเลือกทุกเมลล์ที่แสดงผลอยู่ในหน้านั้นตอนนั้น รบกวนหน่อยเถอะนะคะลองหลายรูปแบบแล้วค่ะ ยังไม่ได้เลย TT

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

Reply by Message on : 14/6/2555 22:13:55
สันติสุข
(R13000)
ในกรณีของ Bound Form ข้อมูลที่เราเห็นบนหน้าจอนั้นแสดงมาจาก RecordSet ซึ่งเชื่อมโยงเข้าหาข้อมูลในฐานข้อมูล เขียนเป็นโมเดลง่ายๆตามลำดับชั้นก็ได้รูปแบบนี้

Checkbox object on form
--------------------------------------------------------
Recordset object, RecordsetClone object
--------------------------------------------------------
Records in database

ดังนั้นมีวิธีเล่นอยู่ 3 อย่าง แต่ละแบบก็เล่นตามลำดับชั้นนั้นๆ นั่นคือ

- ลำดับบนสุด ก็แก้ไขที่ Checkbox โดยตรง แต่มันไม่สะดวกในกรณีที่ต้องทำกับหลายๆเรคอร์ด   

- ลำดับกลางก็กระทำกับ Recordset object หรือ RecordsetClone object วิธีนี้สะดวก เพราะไม่ต้องกำหนดเงื่อนไขในการหาเรคอร์ดที่ต้องการจากฐานข้อมูลอีกที เรคอร์ดไหนที่แสดงบนหน้าจอ subform มันก็มีเรคอร์ดเหล่านั้นปรากฏใน Recordset object หรือ RecordsetClone object นั่นเอง และเรามักกระทำกับ RecordsetClone object มากกว่า Recordset object (ทำไมเป็นอย่างนี้ ก็ไปกด F1 อ่านจาก Help file เอาเอง)

- ลำดับล่างสุด ก็คือไปกระทำกับเรคอร์ดในฐานข้อมูลโดยตรง แล้วให้ลำดับบนสุดไป Refresh ข้อมูลจากฐานข้อมูลมาใหม่ แต่วิธีนี้ก็ต้องกำหนดเงื่อนไข (โดยปกติก็คือกำหนด WHERE clause ให้กับ SQL statement) เพื่อหาเรคอร์ดให้ได้ตรงกับที่แสดงอยู่แล้วบน subform

ดังนั้น ตกลงแล้วเราจะทำวิธีที่ 2 กัน เราก็ใส่โค้ดนี้ลงในปุ่มคำสั่งของ mainform

dim RS as DAO.Recordset

set RS = Me.orderbill2.form.recordsetclone
With RS
Do Until .EOF
    .Edit
    !Kit = True
    .Update

    .MoveNext
Loop
.Close: Set RS = Nothing
End With

Me.orderbill2.form.Refresh

แค่นี้ครับ
Back to Top
Reply by Message on : 14/6/2555 22:18:25
สันติสุข
(R13001)
แก้ไขเพิ่มเติมจาก

set RS = Me.orderbill2.form.recordsetclone
With RS
Do Until .EOF

เป็น

set RS = Me.orderbill2.form.recordsetclone
With RS
if .RecordCount > 0 then .MoveFirst
Do Until .EOF
Back to Top
Reply by Message on : 15/6/2555 10:30:24
jemie
(R13004)
ทำได้แล้วค่ะ ขอบพระคุณค่ะอาจารย์
Back to Top
Reply by Message on : 14/8/2558 19:44:33
มดเอ็ด
(R21017)
ผมเอาที่อาจารย์แนะนำไปใช้แต่ ติดครับ
อาจารย์ครับผมติดตรง !CK=True ครับ
มัน Error 3265 ครับ ช่วยรบกวนดูให้หน่อยครับ

Dim RS As DAO.Recordset


Set RS = Me.FM_PD4OGAA.Form.RecordsetClone
With RS
If .RecordCount > 0 Then .MoveFirst
Do Until .EOF
    .Edit
    !CK = True
    .Update

    .MoveNext
Loop
.Close: Set RS = Nothing
End With

Me.FM_PD4OGAA.Form.Refresh


ขอบคุณครับ
Back to Top
Reply by Message on : 14/8/2558 22:16:47
สันติสุข
(R21019)
CK ไม่ใช่ชื่อฟิลด์ที่อยู่ใน recordset RS ครับ ต้องใช้ชื่อฟิลด์นะครับ ไม่ใช่ชื่อคอนโทรลที่อยู่บนฟอร์ม
Back to Top
Reply by Message on : 15/8/2558 9:39:37
มดเอ็ด
(R21020)
ขอบคุณครับ

แล้วผมต้องการใช้ คอนโทรลที่อยู่บนฟอร์ม แล้วส่งค่าไปที่่ตารางเลย
หรือส่งไปที่ Subform ผมจะเขียนยังไงครับ

ขอบคุณครับ
Back to Top
Reply by Message on : 15/8/2558 9:51:49
มดเอ็ด
(R21021)
อ่อ เข้าใจล่ะครับ ตะกี่ยังงงอยู่ " ขอโทษครับ"
สามารถเอาไปดัดแปลงใช้งานได้แล้วครับ

ขอบคุณอาจารย์ครับ

Back to Top

Reply

 *Indicates required fields
Format:
Bold Under Line Italic Add Hyperlink Add Email Link Italic List Indent Add Image Emoticons Insert code Mode:
Message:*
Your Name*:
Normal word*: Please input : ไทยแอ็คเซส
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++