กระทู้เก่าบอร์ด อ.Yeadram
2,070 7
URL.หัวข้อ /
URL
ต้องการส่งค่าจาก Mainform ไปที่ หลาย ๆ เรคคอร์ดใน
เรียนผู้รู้ค่ะ
คือต้องการส่งค่า true ไปที่ checkbox ของ subform ทุกบรรทัดค่ะ เช่นตอนนี้นะคะ มี subform ชื่อ orderbill2 โดย checkbox ชื่อ Kit ค่ะ โดยต้องการให้คลิกที่ปุ่มคำสั่งที่Mainform เพียงครั้งเดียว ก็ให้checkbox ของ subform ทุกบรรทัดที่มีใน subform ตอนนั้นขึ้นเป็น true หรือ ค่า yes น่ะค่ะ หลักการคล้าย ๆ กับการที่เราเลือก เมลล์ในเมลล์บ๊อกซ์ของเรา เลือกแบบ all ก็จะเท่ากับเลือกทุกเมลล์ที่แสดงผลอยู่ในหน้านั้นตอนนั้น รบกวนหน่อยเถอะนะคะลองหลายรูปแบบแล้วค่ะ ยังไม่ได้เลย TT
คือต้องการส่งค่า 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
2 @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
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
3 @R13004
ทำได้แล้วค่ะ ขอบพระคุณค่ะอาจารย์
4 @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
ขอบคุณครับ
อาจารย์ครับผมติดตรง !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
ขอบคุณครับ
5 @R21019
CK ไม่ใช่ชื่อฟิลด์ที่อยู่ใน recordset RS ครับ ต้องใช้ชื่อฟิลด์นะครับ ไม่ใช่ชื่อคอนโทรลที่อยู่บนฟอร์ม
6 @R21020
ขอบคุณครับ
แล้วผมต้องการใช้ คอนโทรลที่อยู่บนฟอร์ม แล้วส่งค่าไปที่่ตารางเลย
หรือส่งไปที่ Subform ผมจะเขียนยังไงครับ
ขอบคุณครับ
แล้วผมต้องการใช้ คอนโทรลที่อยู่บนฟอร์ม แล้วส่งค่าไปที่่ตารางเลย
หรือส่งไปที่ Subform ผมจะเขียนยังไงครับ
ขอบคุณครับ
7 @R21021
อ่อ เข้าใจล่ะครับ ตะกี่ยังงงอยู่ " ขอโทษครับ"
สามารถเอาไปดัดแปลงใช้งานได้แล้วครับ
ขอบคุณอาจารย์ครับ
สามารถเอาไปดัดแปลงใช้งานได้แล้วครับ
ขอบคุณอาจารย์ครับ
Time: 0.3852s
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
แค่นี้ครับ