อยากทราบว่าเรื่องของการ print จาก subform โดยที่มี combobox control อยู่
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 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 & "'" 
 
  

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
ขอบคุณสำหรับความห่วงใยที่มีให้ครับ วันนี้ที่ขอนแก่นฝนตกไปแล้วเมื่อเช้า เมื่อวานอากาศร้อน วันก่อนยังใส่เสื้อกันหนาวอยู่เลย ต้องดูแลสุขภาพให้ดีกันทุกๆ คนครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1472s