กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
387 13
URL.หัวข้อ /
URL
อยากทราบว่าเรื่องของการ print จาก subform โดยที่มี combobox control อยู่
อยากทราบว่าเรื่องของการ print จาก subform โดยที่มี combobox control อยู่ ตัวอย่างคือ มี รายงานของ subform ชื่อ frmIILsub ดังนี้
field1 field2 field3 field4
AFC E R 1
AFC E D 2
AFC E E 3
AFC E D 4
AFC I R 5
RST E R 6
RST E D 7
RST E E 8
RST E D 9
RST I R 10
และที่ Mainform ได้ทำ combobox ไว้ 3 ช่อง ดังนี้
combobox1 โดยเลือก AFC ที่ filed1
combobox2 โดยเลือก E ที่ filed2
combobox3 โดยเลือก D ที่ filed3
และ Report ที่ต้องการจะได้คือดังนี้
Field1 F-2 F-3 F-4
AFC E D 2
AFC E D 4
แต่ในรายงานที่ได้ จะออกทั้งหมดเลยดังนี้
field1 field2 field3 field4
AFC E R 1
AFC E D 2
AFC E E 3
AFC E D 4
AFC I R 5
โดยเขียน onclik ไว้ดังนี้
Private Sub Print_Click()
DoCmd.OpenReport "rptIIL1", acViewPreview, , "IFLeader='" & Me.frmIILSub.Form.IFLeader & "'"
field1 field2 field3 field4
AFC E R 1
AFC E D 2
AFC E E 3
AFC E D 4
AFC I R 5
RST E R 6
RST E D 7
RST E E 8
RST E D 9
RST I R 10
และที่ Mainform ได้ทำ combobox ไว้ 3 ช่อง ดังนี้
combobox1 โดยเลือก AFC ที่ filed1
combobox2 โดยเลือก E ที่ filed2
combobox3 โดยเลือก D ที่ filed3
และ Report ที่ต้องการจะได้คือดังนี้
Field1 F-2 F-3 F-4
AFC E D 2
AFC E D 4
แต่ในรายงานที่ได้ จะออกทั้งหมดเลยดังนี้
field1 field2 field3 field4
AFC E R 1
AFC E D 2
AFC E E 3
AFC E D 4
AFC I R 5
โดยเขียน onclik ไว้ดังนี้
Private Sub Print_Click()
DoCmd.OpenReport "rptIIL1", acViewPreview, , "IFLeader='" & Me.frmIILSub.Form.IFLeader & "'"
13 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R01165
โดยเขียน onclik ไว้ดังนี้
Private Sub Print_Click()
DoCmd.OpenReport "rptIIL1", acViewPreview, , "field1='" & Me.frmIILSub.Form.field1 & "'"
2 @R01167
น่าจะรับค่าจาก Combo box ทั้ง 3 จาก Main Form มากกว่านะครับ ดังนี้
Dim strWhere As String
strWhere = "field1='" & Me.Me.ComboBox1 & "' "
strWhere = strWhere & "field2='" & Me.ComboBox2 & "' "
strWhere = strWhere & "field3='" & Me.ComboBox3 & "'"
DoCmd.OpenReport "rptIIL1", acViewPreview, , strWhere
3 @R01170
อาจารย์ค่ะไม่ทราบว่าเป็นอะไร กด Click แล้วไม่ทำงานอะไรเลย และถ้าลองใช้แค่ strwhere ที่ 1 ดูอย่างเดี่ยว สามารถใช้งานได้ แต่พอนำมารวมกัน ไม่มีการเคลื่อนไหวอะไรเลยค่ะ
4 @R01172
ขออภัยครับ
ต้องเพิ่ม AND operator เข้าไปด้วย
ดังนี้
strWhere = "field1='" & Me.Me.ComboBox1 & "' "
strWhere = strWhere & "AND field2='" & Me.ComboBox2 & "' "
strWhere = strWhere & "AND field3='" & Me.ComboBox3 & "'"
5 @R01173
เรียบร้อยค่ะอาจารย์ Thanks a lot sir.
6 @R01501
อาจารย์ ขอเท้าความเรื่องที่เคยถามเอาไว้ข้างบนหน่อยนำค่ะ
คือเวลาสั่งพิมพ์รายงาน ถ้าเราสั่งเฉพาะ ComboBox1 อย่างเดียว รายงานไม่ออำให้ค่ะอาจารย์ แต่ถ้าทำครบ 3 ComboBox แล้วจะออกให้ตามที่เราได้ระบุไปค่ะ
อยากถามว่าจะทำอย่างไร ถึงจะสั่งแค่ ComboBox1 อย่างเดียวก็ Print ได้ค่ะ ขอบคุณมากค่ะ
7 @R01503
เปลี่ยนจาก AND เป็น OR แทนครับ
strWhere = "field1='" & Me.Me.ComboBox1 & "' "
strWhere = strWhere & "OR field2='" & Me.ComboBox2 & "' "
strWhere = strWhere & "OR field3='" & Me.ComboBox3 & "'"
8 @R01507
อาจารย์ค่ะ ลองใช้ or ดูแล้วค่ะ ถ้าเลือก ComboBox1 รายงานที่พิมพ์ออกมาถูกต้องค่ะ แต่พลเราใช้ ComboBox1 และ ComboBox2 พร้อมกัน รายงานจะออกมาให้แบบเยอะมาก คือ รวมถึงตัวอื่นๆด้วยไม่ใช่แค่ที่เราเลือก ComboBox1 เท่านั้นค่ะ
และอีกคำถามถึงค่ะ มีการ add ComboBox4 เข้ามา แล้วได้เพิ่มตามแบบที่อาจารย์ได้ให้ตัวอย่าง แต่ทำไม รายงานกลับขึ้นมาว่า Run-time error '3464' : Data Type mismatch in criteria expression. ไม่ทราบว่าทำไมค่ะทั้งๆ ที่ Report เดียวกัน
รบกวนหน่อยนะค่ะอาจารย์
9 @R01508
เนื่องจากใช้ OR operator จึงทำให้ได้รายการมากขึ้นกว่าเดิม
คงต้องใช้การตรวจหาว่ามีการเลือก Combo Box ตัวไหนลบ้างเข้าช่วย
If Me.ComboBox1 <>"" Then
strWhere = "field1='" & Me.Me.ComboBox1 & "' "
End If
If Me.ComboBox2 <>"" Then
If strWhere <> "" Then
strWhere = strWhere & "AND field2='" & Me.ComboBox2 & "' "
Else
strWhere = "field2='" & Me.ComboBox2 & "' "
End If
End If
If Me.ComboBox3 <>"" Then
If strWhere <> "" Then
strWhere = strWhere & "AND field3='" & Me.ComboBox3 & "' "
Else
strWhere = "field3='" & Me.ComboBox3 & "' "
End If
End If
ส่วน ComboBox4 ที่เพิ่มเข้ามา ผมเดาว่าน่าจะเป็น number ให้เพิ่มเข้าไปดังนี้
If Me.ComboBox4 <>"" Then
If strWhere <> "" Then
strWhere = strWhere & "AND field4=" & Me.ComboBox3
Else
strWhere = "field4=" & Me.ComboBox3
End If
End If
10 @R01510
เป็น Date ค่ะ ไม่ทราบว่าเหมือนเดิมหรือเปล่าค่ะ
11 @R01512
ต้องเปลี่ยนเป็น
If Me.ComboBox4 <>"" Then
If strWhere <> "" Then
strWhere = strWhere & "AND field4=#" & Me.ComboBox3 & "#"
Else
strWhere = "field4=#" & Me.ComboBox3 & "#"
End If
End If
12 @R01513
รอดตายแล้วค่ะอาจารย์ ขอบพระคุณมากๆ เลยค่ะ
เข้าไปอ่านของเพื่อนๆ ได้ข่าวว่าอาจารย์ไม่สบาย หรือค่ะ ขอให้หายไวไวนะระวังจะติดกันทั้งครอบครัว เพราะที่บ้านติดกันงมแงมเลยค่ะ
Take Care นะค่ะ และเพื่อนๆ Access ทุกท่านด้วยค่ะ มีความสุขกับวันแห่งความรักนะค่ะ(ครอบครัวหรือคนรักก็ได้ค่ะ)
13 @R01514
ขอบคุณสำหรับความห่วงใยที่มีให้ครับ
วันนี้ที่ขอนแก่นฝนตกไปแล้วเมื่อเช้า
เมื่อวานอากาศร้อน
วันก่อนยังใส่เสื้อกันหนาวอยู่เลย
ต้องดูแลสุขภาพให้ดีกันทุกๆ คนครับ
Time: 0.1472s