แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - prajak

หน้า: 1 ... 8 9 10 [11] 12 13 14 ... 17
181
เดี่ยวทำตัวอย่างให้ดูครับ ถ้ามีไฟล์ตัวอย่างก็ดีครับ :D
 :cool: :cool:
ไม่รู้ที่ผมอธิบายไปจะพอเข้าใจหรือเปล่าครับ

182
1.ผมใช้การ UNION All ที่ Date และ ODNo ก่อนว่ามีอะไรบ้าง
2.ในแต่ละคิวรี่ ผมให้ Group By และ Sum Total ไว้เลย
3.เอามา Join กับ GroupDate&ODno  โดยกำหนดว่าถ้า ODno ไหน มีเหมือนกัน ให้แสดงผลรวมออกมา ครับ
วิธีผมอาจจะดูเยอะไป หรือเปล่า พี่อาจจะลองเอาไป ประยุกต์ดูนะครับ เพื่อเจอแบบที่ง่ายกว่า


ผลลัพท์ที่ได้ ครับ


อันนี้ถ้ากรองแค่วันที่ 1 วันเดียว


รบกวนสอบถามเพิ่มเติมครับ จากรูป



จากรูปด้านบนเป็น Query ที่ผมนำมาสร้าง Report ได้ตามรูปด้านล่าง ( โดยก่อนเปิด report จะต้องป้อนวันที่เริ่มต้นและวันที่สิ้นสุด )


ความต้องการคือ ผมอยาก sum ค่าแรงของแต่ละแผนก จากตาราง TblHr มาใส่ในส่วนท้ายของ report FinalCost (โดยsum เฉพาะวันที่ที่เรากรองก่อนเปิด Report )
นี่เป็นตาราง tblHr ครับ


ไม่ทราบว่าจะต้องทำอย่างไรครับ ลองมาหลายวันละ ยังไม่ได้ครับ


183
ขอบคุณคุณNewbies และอาจารย์pizza_p มากๆนะครับ ผมทำตามที่คุณNewbies แนะนำไปก่อนแล้ว OK เลย ตอนนี้ได้แล้วครับ ส่วนของอาจารย์ก็ลดขั้นตอนลงไปได้เยอะเลย แต่ผมจะมีปัญหากับ Query แบบ Crosstab มากๆ คือเวลาสร้างformจาก crosstab query มักจะใช้ตัว ApplyFilter บนฟอร์มไม่ได้ ต้อง append ลง table ก่อนตามคำแนะนำของคุณ Newbies ก่อนหน้านี้ (ด้วยความที่ไม่ค่อยเป็นด้วย) ขอบคุณมากๆนะครับ

184
เพื่อให้เข้าใจง่ายๆผมสร้างdataมาให้ดูครับ โดยเปลี่ยนจาก query มาสร้างเป็นข้อมูลตารางแทน เนื่องจาก Query มันเชื่อมโยงกันเยอะเอามาไม่หมดครับ
รบกวนด้วยนะครับ

185
แลกเปลี่ยนความรู้กันคับพี่ เจอเคสใหม่ๆเราได้ศึกษาทำกันคับ :yuush:
รบกวนสอบถามเพิ่มเติมนะครับ ที่ผมเคยเกริ่นไว้
 ผมมีข้อมูลที่ Query มาได้ทั้งหมด 6 query ดังรูป


และอยากให้ได้ Output ออกมาโดยที่ สมมติหากเรากรองวันที่ 1/3/2018 ถึง 31/3/2018 ให้ ODNo ที่อยู่ในช่วงของวันที่ที่เรากรอง ODNoไหนที่เหมือนกันดึงมาแสดงแค่อันเดียว และเอา TotalCost ของODNo นั้นมารวมกัน คล้ายๆตามตารางที่ด้านล่างนี้ครับ


186
ส่งไฟล์ตัวอย่างมาให้ดูครับ
ติดปัญหาจริงๆด้วยครับท่านแต่ถ้าจะสร้างดัดแปลงการค้นหาแบบนี้ได้ไหม
1.เมื่อได้ Crosstab มาแล้ว ให้ Append มายัง ตารางใหม่ และ กำหนด Form กับตารางใหม่นั้นมันก็จะสามารถค้นหาได้เหมือนกันครับ
โค๊ด: [Select]
Private Sub Command62_Click()
DoCmd.ApplyFilter , "[DateA] Between Forms.FinalOutput.DateFrom And Forms.FinalOutput.DateTo"
End Sub
Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM TblFinalOutput"
    DoCmd.OpenQuery "MakeTblFinalOutput", acViewNormal
    Me.Form.Requery
End Sub
ขอบคุณมากครับคุณNewbies ทำตามที่แนะนำได้แล้วครับ แต่หลักการทำงานจริงๆต้องเรียนรู้และทำความเข้าใจเพิ่มเติม เพราะผมเพิ่งหัดเขียนครับ ตอนนี้ยังงงกับอีกตารางหนึ่งครับ ขอลองลองผิดลองถูกด้วยตัวเองดูก่อนนะครับ ถ้าไม่ได้ยังไงคงต้องรบกวนอีกครั้งนะครับ

187
ส่งไฟล์ตัวอย่างมาให้ดูครับ

188
นำไปใว้ในปุ่มสถานะ Click

โค๊ด: [Select]
Me.Filter = "[DateA] Between Forms.FinalOutput.DateFrom And Forms.FinalOutput.DateTo"
Me.FilterOn = True


หรือ จะใช้  DoCmd.ApplyFilter ก็ทำได้ ตัวอย่างตามนี้ครับ
โค๊ด: [Select]
DoCmd.ApplyFilter , "[DateA] Between Forms.FinalOutput.DateFrom And Forms.FinalOutput.DateTo"
ตัวอย่างด้านล่าง
ต้องขอบคุณมากสำหรับความช่วยเหลือนะครับ แต่ยังคงไม่ได้ครับ ปกติผมใช้คำสั่งพวกนี้กับฟอร์มที่สร้างจาก query ก็ไม่มีปัญหาอะไร สังเกตว่าฟอร์มนี้สร้างจาก query ที่เป็น crosstab query ก็เลยไม่รู้ว่าต้องทำยังไงครับ

189
ไม่ต้องอ้างคำสั่ง form!... แล้วคับ ใส่ชื่อ control ที่ ระบุวันที่ได้เลย
ก็ยังไม่ได้ครับ



190
อาจารย์ครับ รบกวนสอบถามเพิ่มเติมนะครับ หลังจากสร้าง Query FinalOutput แล้วสร้างฟอร์มจาก query FinalOutputแล้ว ทำไมผมใช้ macro apply filter เพื่อกรองวันที่ไม่ได้อะครับ ขึ้น error ตามรูป สร้างจาก vba ก็error เหมือนกันเลย


191
ทำได้แล้วครับ ขอบคุณมากครับอาจารย์

192
เพิ่งจะได้ลองทำตามที่อาจารย์แนะนำครับ ขึ้น error ตามรูป ไม่รู้ว่าผิดตรงไหนครับ

193
รบกวนสอบถามครับ ผมจะทำ Query ยังไงเพื่อดึง Output จากตาราง B,C,D ที่วันที่ตรงกับตาราง A ได้ครับ โดย Output ที่มีวันที่เหมือนกันให้นำมารวมกัน ตามรูปครับ

194
ใช้คิวรีสร้าง Datasheet แล้วใช้คิวรีอันนี้สร้างรีพอร์ตครับ

ถ้าจะบอกว่าด้วยเหตุผลอะไรก็แล้วแต่ ไม่สามารถใช้คิวรีได้ ก็ต้องเขียนโค้ดที่อ้างถึงตัวกรองใน Datasheet

ประมาณนี้ครับ
SELECT ชื่อตาราง.* FROM ชื่อตาราง LEFT JOIN ชื่อฟิลด์ที่กรอง AS Lookup_ชื่อฟิลด์ที่กรอง ON ชื่อฟิลด์ที่กรอง = Lookup_ชื่อฟิลด์ที่กรอง.ชื่อฟิลด์ที่กรอง WHERE (([Lookup_ชื่อฟิลด์ที่กรอง].[ข้อมูลที่แสดงในฟิลด์ที่กรอง] In ("กรอง1","กรอง2")));

ใช้คิวรีง่ายกว่าครับ ช่วงนี้ไม่ถนัดเรื่องเครียด
[ข้อมูลที่แสดงในฟิวด์ที่กรอง] และกรอง1 กรอง2 คืออะไรครับ รบกวนอธิบายเพิ่มเติมหรือพอจะมีตัวอย่างมั้ยครับ

195
ถ้าบอกว่าสร้างจากคิวรีตั้งแต่แรกก็จบแล้วครับ
ดังนั้นโปรดแจ้งข้อมูลให้ละเอียดตั้งแต่แรก อ้างคำพูดอาจารย์สันติสุข ๓(_ _)๓

ในเมื่อใช้ ในเมื่อใช้คิวรี
1. ก็ให้คิวรีเป็นตัวกรองข้อมูลแทน อย่าใช้ฟิลเตอร์ใน Datasheet
2. สร้างรีพอร์ตจากคิวรีเดียวกับ Datasheet
3. ที่ปุ่มก็ใส่คำสั่ง docmd.openreport

แค่นี้ครับ อาจต้องใช้คำสั่ง docmd.requery ในบางจุดเพื่อให้คิวรีกรองข้อมูลแล้วแสดงใน Datasheet
ขอบคุณครับอาจารย์ แต่ผมก็ยังไม่เข้าใจอยู่ดี จะว่าโง่ก็ได้ครับ ยกตัวอย่างถ้าผมใช้ตัวกรองใน data sheet ผมสามารถกรองได้หลายเงื่อนไขเลย เช่น จะเลือก print เฉพาะลูกค้า BOLO และเลือกบาง Style และเลือกบาง shipment ใน Query มันจะยังไงอะครับ เป็นไปได้พอแนะนำตัวอย่างเพื่อให้เห็นภาพได้หรือเปล่าครับ ขอบคุณครับ


196
ใช้คิวรีสร้าง Datasheet แล้วใช้คิวรีอันนี้สร้างรีพอร์ตครับ

ถ้าจะบอกว่าด้วยเหตุผลอะไรก็แล้วแต่ ไม่สามารถใช้คิวรีได้ ก็ต้องเขียนโค้ดที่อ้างถึงตัวกรองใน Datasheet

ประมาณนี้ครับ
SELECT ชื่อตาราง.* FROM ชื่อตาราง LEFT JOIN ชื่อฟิลด์ที่กรอง AS Lookup_ชื่อฟิลด์ที่กรอง ON ชื่อฟิลด์ที่กรอง = Lookup_ชื่อฟิลด์ที่กรอง.ชื่อฟิลด์ที่กรอง WHERE (([Lookup_ชื่อฟิลด์ที่กรอง].[ข้อมูลที่แสดงในฟิลด์ที่กรอง] In ("กรอง1","กรอง2")));

ใช้คิวรีง่ายกว่าครับ ช่วงนี้ไม่ถนัดเรื่องเครียด
ใช่ครับ ผมใช้คิวรีสร้าง Datasheet แล้วใช้คิวรีอันนี้สร้างรีพอร์ตครับ แต่เราจะopen reportยังไงถึงจะให้ข้อมูลที่ออกreportเหมือนกันกับขอมูลที่filterในdatasheet ครับ งงครับ พอดีเพิ่งหัดเขียนอะครับ

197
ผมว่ามันเป็นเรื่องใหม่นะครับ ตั้งกระทู้ใหม่เถอะครับ
รบกวนอาจารย์ตามไปชี้ทางสว่างให้ด้วยนะครับ

198
รบกวนสอบถามครับ หากผมต้องการกดปุ่ม PRINT แล้วให้มันเปิดหน้ารายงานขึ้นมา โดยจะแสดงข้อมูลตามที่เราใช้ตัวกรองในแต่ละ Column พูดง่ายๆคือข้อมูลแสดงบนฟอร์มแบบไหน บนหน้ารายงานก็เป็นแบบนั้นอะครับ (ผมจะมี report ที่สร้างไว้แล้วชื่อ PYN ) ไม่ทราบต้องใช้คำสั่งอะไรครับ
เท่าที่หาข้อมูลดูจะมีคำสั่ง DoCmd.OpenReport strReportname, acViewPreview,"[ID] = & Me.ID"
แต่มันจะแสดงแค่ record เดียวตามที่ตำแหน่งเม๊าส์เราอยู่ครับ

หน้า: 1 ... 8 9 10 [11] 12 13 14 ... 17