@ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่บอร์ดนี้หรือไม่ก็ตามสะดวกครับ


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


Back to Board : Thai Access Webboard

รายงานตามเงื่อนไข


Topic by Message Posted : on : 16/12/2553 12:02:03
saknoi  

อยากเปิดรายงานตามเงื่อนไข ตามรูปครับ โดยที่
คอมโบ เลือกบริษัท = cbo1
คอมโบ เลือกสาขา   = cbo2
คอมโบ เลือกพนักงาน = cbo3
คอมมานด์ เปิดรายงาน = cmdopen
เทกบอกซ์ วันเริ่มต้น = txtstrat
เทกบอกซ์ วันสิ้นสุด = txtend

รายงานจากคิวรี่เดี่ยวกัน ประกอบด้วย
jobid    date   cus   branch service

เงื่อนไข
1. เมื่อเลือก บริษัท ไม่เลือกอย่างอื่น ก็เปิดรายงานเกี่ยวกับบริษัทที่เลือกทั้งหมด
     และกรณีเดียวกัน เมื่อเลือก คอมโบอื่น ๆ
2 เมื่อ เลือก 2 คอมโบ ก็ให้เปิดรายงานตามเงือนไขที่เลือก
3 เมื่อเลือกวันที่ ต้องใส่วันที่เริ่มต้น และวันที่สิ้นสุด โดยตรวจสอบคอมโบ ด้านบนว่ามีการเลือกหรือไม่ ถ้าเลือกก็นำมาใส่ในเงือนไขด้วย แล้วเปิดรายงาน

ต้องเขียนโค้ดอย่างไรครับ หรือว่าต้องใช้ อะไรในการต้องการเงือนไขอย่างนี้ครับ

รบกวนด้วยครับ

ขอบคุณครับ

32 Reply in this Topic. Dispaly 2 pages and you are on page number 2

Reply by Message on : 21/1/2554 9:11:08
saknoi
(R07712)
ไม่ทราบว่า combo แต่ละตัวของท่าน ใช้เชื่อมกับข้อมูลกี่คอลัมน์ มีอะไรบ้าง

แล้วลอง ทำตาม คำตอบที่อาจารย์ให้ทำใน (R07457) มาให้ดูหน่อยครับ เดี่ยวช่วยดูให้ ตรง

เพิ่มบรรทัดนี้
debug.print stWhere
เบรคบรรทัดนี้
' DoCmd.OpenReport "rptJobNo", acViewPreview, , stWhere

End Sub


Back to Top
Reply by Message on : 21/1/2554 10:54:45
มือใหม่
(R07716)
[station] Like '*' AND [station] = rpr AND ([DATE start] BETWEEN forms!frmreport.t39 and forms!frmreport.t41)

ผมมี หนึ่งตาราง ชื่อ all data
Form เรียกรายงานชื่อ Frmreport
มี textbox ชื่อ t39 เชื่อมต่อวันเริ่มต้น และ textbox ชื่อ t41 เชื่อมต่อวันสิ้นสุด
มีคอมโบ cb31 เชื่อมต่อ station
มีคอมโบ cb 33 เชื่อมต่อ No.
มีคอมโบ Cb 35 เชื่อมต่อ Equipment
รายงานชื่อ all data query


ตามนี้ ครับ คิวรี่ ผม สร้างแบบ อย่างง่าย ตารางมาไง คิวรี่มาอย่างนั้นเลยครับ
Back to Top
Reply by Message on : 21/1/2554 11:11:04
saknoi
(R07718)
[station] Like '*' AND [station] = rpr AND ([DATE start] BETWEEN forms!frmreport.t39 and forms!frmreport.t41)


rpr คืออะไรหรอครับ
Back to Top
Reply by Message on : 21/1/2554 11:19:20
มือใหม่
(R07719)
rpr คือ คำที่ผมใส่ไปในคอม31cเพื่อต้องการให้หา คับ พอกดเรียกรางาน มันจะขึ้นว่าให้ใส่พารามิเตอร์ RPR ต้อง พิม RPR อีกทีมันถึงจะออกมาให้คับ

ในส่วนของวันที่ และ No สามารถ รันได้ปกติ คับ

ขอเมล์ได้ไหม ครับเดียวผมส่งไฟลืให้ดู ของผมใช้ 2007 อยู่ ครับ
Back to Top
Reply by Message on : 21/1/2554 11:22:49
saknoi
(R07720)
ฝากเมลเข้า gmail บอร์ดได้เลยครับ

user : accboard
pass: accgmail

ครับ

Back to Top
Reply by Message on : 21/1/2554 11:33:31
มือใหม่
(R07721)
ส่งแล้วครับ อยู่ที่ จม ร่าง ครับ   subject ช่วยดูหน่อยครับไฟล์งานชื่อ test report คับ
Back to Top
Reply by Message on : 21/1/2554 12:04:39
saknoi
(R07722)
แก้โค้ดใหม่ ตามนี้ครับ

Sub cmdOpen_click()
Dim stWhere As String
stWhere = "[Work order] Like '*'"

If Cb33 <> "" Then stWhere = stWhere & " AND [equipment] like '" & Cb33 & "'"
If Cb35 <> "" Then stWhere = stWhere & " AND [no] like '" & Cb35 & "'"
If Cb31 <> "" Then stWhere = stWhere & " AND [station] '" & Cb31 & "'"
If T39 <> "" Then
   If T41 = "" Or T41 < T39 Then
      T41.SetFocus
      Exit Sub
   End If
stWhere = stWhere & " AND ([DATE start] BETWEEN forms!frmreport.t39 and forms!frmreport.t41)"
              
ElseIf T41 <> "" Then
      T39.SetFocus
      Exit Sub
End If
'Debug.Print stWhere

DoCmd.OpenReport "All Data Query", acViewPreview, , stWhere
End Sub
Back to Top
Reply by Message on : 21/1/2554 12:21:49
มือใหม่
(R07723)
ขอบคุณ คุณ Saknoi มากครับตอนนี้ได้เเล้วครับ
มีคำถามเพิ่มครับ ทำไมตัวแปล stwhere ถึงใช้ work order ครับ
ถ้าวันข้างหน้าผมต้องการหา work order ด้วยจะมีผลอะไรไหม คับ
Back to Top
Reply by Message on : 11/2/2554 16:22:57
อนัญญาพรมโคตร
(R08047)
ขอสอบถามด้วยคนค่ะ อยากถามการรายงานตามเงื่อนไข เช่น ต้องการแสดงข้อมูลสมาชิก แบ่งตามเขตตำบล อำเภอ โดยต้องการให้รายงานเฉพาะตำบลหรือ อำเภอที่ต้องการเท่านั้นค่ะ ไม่ทราบว่าทำอย่างไรคะ
Back to Top
Reply by Message on : 12/2/2554 1:19:52
yeadram
(R08049)
ตอบคุณ มือใหม่ (ไม่ควรใช้นามแฝงนี้)
ทำไมถึงต้องใช้ work order
เพราะว่าเราต้องการหาตัวเริ่มต้น ในสายอักขระ เพื่อจะนำไปเป็นเงื่อนไขครับ
ถ้าเราไม่ระบุคำเริ่มต้นให้มัน เราจะต่อสายอักขระได้ลำบาก คือเราต้องตรวจสอบทุกๆ คอมโบ ว่า ก่อนนี้ เคยมีสายอักขระแล้วหรือยัง ถ้ามีแล้ว ให้ต่อด้วยคำว่า AND ถ้ายังไม่มี เราต้องเริ่มต่อเองใหม่ ซึ่งต้องทำทุกๆ คอมโบ ครับ

อย่างนี้ เป็นต้น
Dim stWhere As String
stWhere =""

If Cb33 <> "" Then
   if stWhere <> "" then
   stWhere = stWhere & " AND [equipment] like '" & Cb33 & "'"
   else
    stwhere = "[equipment] like '" & Cb33 & "'"
   end if
end if


If Cb35 <> "" Then
   if stWhere <>"" then
        stWhere = stWhere & " AND [no] like '" & Cb35 & "'"
    else
        stWhere = "[no] like '" & Cb35 & "'"
    end if
end if

If Cb31 <> "" Then
   if stWhere <>"" then
       stWhere = stWhere & " AND [station] '" & Cb31 & "'"
   else
        stWhere = "[station] '" & Cb31 & "'"
    end if
end if
Back to Top
Reply by Message on : 12/2/2554 1:22:04
yeadram
(R08050)
ตอบคุณ อนัญญาพรมโคตร
- ใช้คิวรี่เป็นแหล่งข้อมูลครับ ในคิวรี่สามารถระบุเงื่อนไขได้ ให้สร้างคิวรี่ให้เป็นก่อนครับ ลองสร้างคิวรี่แบบมีเงื่อนไขให้เป็นนะครับ แล้วนำคิวรี่นั้นไปสร้างเป็นรายงาน

Back to Top
Reply by Message on : 14/2/2554 16:49:05
อนัญญาพรมโคตร
(R08084)
ขอบคุณมากๆ เลยนะคะที่ชี้แนะช่วยได้เยอะเลยนะคะ
Back to Top
Page:   << Prev 1 2

 @ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ


Sorry, you can NOT post a reply.
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++