การหาผลรวมออกมาเป็น week ครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 515   9
URL.หัวข้อ / URL
การหาผลรวมออกมาเป็น week ครับ

เรื่องการรวมตัวเลขเป็น week ครับ
Field > DateIn
Field > ListMsp
Field > Total( จำนวนของเสีย)
ข้อมูลนี้จะเก็บทุกวันครับ ผมมีข้อมูลเก็บมาแล้ว 1 เดือน อยากจะรวมออกมาเป็นอาทิตย์ ต้องออกแบบทำอย่างไรครับถึงจะได้ข้อมูลออกมาเป็นอาทิตย์
อยากได้รายงานออกมาเป็น
Week1 Week2 Week3 Week4
520 202 451 145

9 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R02797
ลองใช้ Crosstab Wizard ช่วยครับ

หรือจะลองเอาข้อมูลสัก 1 เดือนมาลองดูครับ โดยโพสต์ไว้ในกระทู้นี้
2 @R02798
ข้อมูลเก่าใช้ Excel เก็บครับพอดีหัวหน้าให้ผมเป็นคนเก็บข้อมูลต่อ ผมเลยนำมาลองทำใน Access ครับ ซึ่งไม่สามารถนำเข้าข้อมูลได้เพราะเขาจะใช้ cell เดียวยาวเลยครับ แต่ที่แนบมาเป็นตัวอย่างที่นำมาเก็บใหม่ครับ รบกวนอ.และเพื่อน Access ช่วยดูให้ผมหน่อยนะครับ
3 @R02860
อ.และเพื่อนครับ ขอใหม่ครับพอจะตัวอย่างการหาว่าช่วงวันนี้อยู่ในweek ที่เท่าไรไหมครับ ขอบคุณครับ
4 @R02862
หมายถึง วันนี้เป็นสัปดาห์ที่เท่าไรของเดือนนี้ใช่มั๊ยครับ

ลองใช้ DatePart() ช่วยครับ

หลักการ

1. ถ้าใส่ Interval เป็น ww จะหมายถึง สัปดาห์ที่เท่าไรของปีนั้น

ถ้าเป็นวันที่ปัจจุบันจะได้
? DatePart("ww",date)
20

หมายถึง สัปดาห์ที่ 20 ของปี

2. หาว่าวันที่ 1 ของเดือนปัจจุบันอยู่สัปดาห์ที่เท่าไรของปี
จะได้

? DatePart("ww",Dateserial(Year(date),Month(Date),1))
18

แล้วค่อยนำค่า 20 มาลบด้วย 18 จะได้ 2 คือสัปดาห์ที่ 2 ของเดือนนี้ครับ


5 @R02863
ขอบคุณครับอ.
6 @R02894
พอดีผมไม่ได้ตอบทางเมล์ ขออนุญาต ตอบลงทางนี้ก็แล้วกันครับ...

ผมทำตัวอย่างไว้ใน module1 ชื่อ function test() นะครับ ..
เป็นตัวอย่างเกี่ยวกับการหาวันที่ภายใน 1 สัปดาห์ โดยผมกำหนดให้เริ่ม
เมื่อวันจันทร์ - อาทิตย์ ในกรณีที่วันแรกของเดือน ไม่ตรงกับจันทร์ ก็ให้เริ่มตั้งแต่วันนั้นเลย
และวันสุดท้ายของเดือน ไม่ตรงกับวันอาทิตย์ ก็ให้ใช้วันนั้นเลย คือ
จะเริ่มตั้งแต่วันที่ 1 - วันสุดท้ายของเดือนนั้นๆครับ

ส่วนการนำวันที่ที่หาได้ไปใช้ประโยชน์ ก็ให้เป็นหน้าที่ของคุณ sjs ต่อไปนะครับ
เป็นต้นว่า อาจจะใช้ DSum หาค่าระหว่างวันที่ที่หามาได้ ก็จะได้ค่าภายในสัปดาห์นั้นๆครับ
7 @R02913
จะทำอย่างไรดีครับ ทดลองทำตามมันสมองอันน้อยนิดที่มีอยู่ Function ที่อ.ให้มาพอจะเอาออกมาได้แต่ค่าที่นำมาเปรียบเทียบนี่ใช้อะไรครับ ไปไม่เป็นจริงๆครับ อ.และเพื่อนๆครับ ช่วยแบ่งให้ผมพอกระจ่างหน่อยเถอะครับ ทำอย่างไรจะนำค่าออกมาใช้กับ Dsum ได้ ขอบคุณครับ
8 @R02921
ผลการทดลองวันนี้ครับได้ออกมาเป็นแบบนี้ครับ
Private Sub คำสั่ง1_Click()
Dim cury As Integer
Dim D1 As Date, D2 As Date 'เก็บวันแรก และวันสุดท้ายของสัปดาห์แรก
Dim FirstOfMonth As Byte 'ตรวจสอบว่าวันแรกของเดือนตรงกับวันอะไร
FirstOfMonth = Format(DateAdd("d", 1 - DatePart("d", Date), Date), "w")
D1 = DateAdd("d", 1 - DatePart("d", Date), Date)
D2 = DateAdd("d", 1 - DatePart("d", Date), Date) + ((7 - FirstOfMonth) + 1)
' ******************************************
Dim dbs As Object, strSQL As String, rst As Object
Set dbs = CurrentDb
'strSQL = " SELECT tblMsp.Total FROM tblMsp WHERE (((tblMsp.DateKey) Between " & D1 & " And " & D2 & " ));"
strSQL = "select Sum(tblMsp.Total) as Fix from tblMsp where DateKey between " & CDbl(D1) & _
" and " & CDbl(D2)


Set rst = dbs.OpenRecordset(strSQL)
If rst(0) > 0 Then

MsgBox "Week1 " & rst(0), 64, "Data"
MsgBox D1
End If

End Sub
แต่ยังต้องหาคำตอบในคำถามที่อ.BADMan ให้ไว้ต่อครับ
9 @R02936
ผมก็ลองพยายามใช้ Dsum() อยู่เหมือนกัน แต่พอแทนที่ด้วยตัวแปรของวันที่ที่ได้
ปรากฏว่า ไม่มีข้อมูล ...ยังไม่ทราบคำตอบเหมือนกันครับ คิดว่าน่าจะเป็นเกี่ยวกับ
format ของระบบวันที่ครับ...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1413s