แสดงกระทู้

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 - Mercury

หน้า: 1 2 [3]
33
ใช้คำสั่ง DLast หรือ Top-N Query ตามแต่รูปแบบของงานครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

34
ผมชื่นชมการตั้งกระทู้แบบนี้ครับ
มีการตั้งโจทย์สอบถามเป็นขั้นเป็นตอนมีการยกตัวอย่างด้วยรูป
และบอกถึงปัญหาที่พบ หรือ ผลลัพธ์ที่อยากได้ อย่างชัดเจนง่ายต่อการตอบมากๆ ครับ  :grin: :grin:
ท่านอื่นถ้าสะดวก ตั้งกระทู้แบบนี้จะดีต่อผู้ตอบและคนตอบจะได้คำตอบที่รวดเร็วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

35
แก้เป็น
โค๊ด: [Select]
Me.PackPerPallet = DLookup("[PackQuantity]", "[Packing]", "Number='" & [SizeOfCarton] & "'")
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

36
แนะนำให้ใช้ Me.ToTalWeight = Nz([cal2], 0) + 0
และเพิ่มเดิมนั่นคือมีการเรียกใช้ CalculateTotal คำนวนชุดล่างอยู่แล้ว ดังนั้นชุดบนเปลี่ยนชื่อสักนิดตามรูปตัวอย่างครับ


โค๊ด: [Select]
Private Sub WeightPerPack_AfterUpdate()
Call CalculateTotal2
End Sub
Private Sub WeightPallet_Afterupdate()
Call CalculateTotal2
End Sub
Private Sub PackPerPallet_Afterupdate()
Call CalculateTotal2
End Sub

Sub CalculateTotal2()
Dim cal1, cal2 As Double
cal1 = Nz([WeightPerPack], 0) * Nz([PackPerPallet], 0)
cal2 = Nz([cal1], 0) + Nz([WeightPallet], 0)

Me.ToTalWeight = Nz([cal2], 0) + 0
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

37
ห้อง MS Access / : การผูก Queries
« เมื่อ: 17 ต.ค. 62 , 10:52:57 »
ไม่ค่อยเข้าใจคำถาม แต่เอาเป็นว่า ภาพจาก Query Design ที่นำเอาคิวรี่แต่ละตัวมาเชื่อมความสัมพันธ์กับตัวก่อนหน้า ก็จะให้ผลเป็นว่า   box-inqty จะเป็นคิวรี่หลัก ถ้ามีเรคอร์ดของ 1A030000008 ก็ถึงจะแสดงบรรทัดออกมาให้เห็น แต่ว่า 1A030000008 ไม่มีใน box-outqty ดังนั้น inhouse (และฟิลด์อื่นๆ) ของ box-outqty จะเป็นค่าว่างๆ ดังนั้นมันก็ไม่สามารถไปหา inhouse จากคิวรี่ตัวถัดไปได้ สมมุติถ้ามี 1A030000008 จากทุกคิวรี่ยกเว้น pcs-in ผลก็คือมันจะแสดงค่าจาก box-inqty และ box-outqty เท่านั้น  หรือว่า ถ้ามีในทุกคิวรี่ยกเว้น box-inqty ทีนี้ก็กลายเป็นว่าจะไม่มีแสดงบรรทัดของ 1A030000008 ออกมาเลย

วิธีแก้ไขก็คือ เปลี่ยนเป็นสร้างความสัมพันธ์ระหว่างคิวรี่ทุกตัวกับตัวหลักแทนครับ ก็คือ box-inqty กับ box-outqty, box-inqty กับ pcs-in, ...
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

38
ห้อง MS Access / : การผูก Queries
« เมื่อ: 16 ต.ค. 62 , 20:22:24 »
ใช้ nz(ฟิลด์)+0 ร่วมครับ ไม่รู้จะใช่ที่ต้องการหรือป่าว
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

39
ตามหัวข้อเลยครับ ผมทำฟอร์มไว้ฟอร์มนึง มันสามารถตั้งค่าให้เปิดเอาจาก Desktop เลยได้ไหมโดยไม่ต้องเปิดโปรแกรม
เหมือนการทำเป็น Shortcut อะไรประมาณนั้น

คลิกขวาที่ไฟล์ เลือก Send to > (Desktop Create shotcut) ได้เลยครับ แล้ว ไปกำหนด Icon ตามใจชอบ

โดยที่ file access ต้องสร้าง Autoexec macro เพื่อสั่งเปิดฟอร์มที่เราต้องการแสดงขึ้นมา
หรือไปที่ File > Option > Current Database > ดูตรงตั้งค่าแสดงฟอร์ม ตามภาพ
โดยท่านสามารถตั้งชื่อโปรแกรมของท่าน / และใส่ Icon ได้ตรงส่วนนี้ด้วยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

40
โค้ด ถูกแล้วครับ แต่ทำมันไม่ทำงานเพราะเราเพิ่มโค้ดแล้ว แต่ลืมไปกำหนด Event ตรงคุณสมบัติให้มันด้วย
สังเกตุว่า Event Afterupdate แต่ตรงคุณสมบัติยังว่างอยู่ กดเข้าไปตามรูปครับ

อีกอย่างตรง textbox totalpcs ยังเป็นชื่อ Text80 อยู่อย่าลืมแก้นะครับ

โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

41
Private Sub จำนวนบรรจุ_AfterUpdate()
Call CalculateTotal
End Sub
Private Sub จำนวนชิ้นจ่ายออก_Afterupdate()
Call CalculateTotal
End Sub
Private Sub จำนวนลังจ่ายออก_Afterupdate()
Call CalculateTotal
End Sub

Sub CalculateTotal()
Dim cal1, cal2 As Double
cal1 = Nz([จำนวนบรรจุ], 0) * Nz([จำนวนลังจ่ายออก], 0)
cal2 = Nz([cal1], 0) + Nz([จำนวนชิ้นจ่ายออก], 0)

Me.ผลรวมจำนวนชิ้น = cal2
End Sub

ไม่มี textbox ชื่อผลรวมจำนวนชิ้นครับ อีกอย่างตั้งชื่อ Control เป็นภาษาอังกฤษเถอะครับ จะได้ไม่มีปัญหาในอนาคต


โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

42
สมการที่ 1 : จำนวนรับเข้า*จำนวนลัง = จำนวนชิ้น 
สมการที่ 2 : จำนวนชิ้น+จำนวนชิ้นจ่ายออก=ผลรวมจำนวนชิ้น


จำนวนชิ้น = nz([จำนวนรับเข้า],0) * nz([จำนวนลัง],0)

ผลรวมจำนวนชิ้น = nz([จำนวนชิ้น],0) + nz([จำนวนชิ้นจ่ายออก],0)

สอบถามเพิ่มเติมค่ะต้องวางสูตรที่ไหนคะ ใส่ในช่องฟอร์มได้เลยมั้ยคะ

ถ้าให้คำนวนตลอด ไว้ที่ form_current
หรือ สร้าง sub แล้วกำหนดevent Afterupdate ของ textbox ที่ใช้คำนวน ครับเช่น

Sub CalculateTotal
จำนวนชิ้น = nz([จำนวนรับเข้า],0) * nz([จำนวนลัง],0)
ผลรวมจำนวนชิ้น = nz([จำนวนชิ้น],0) + nz([จำนวนชิ้นจ่ายออก],0)
end sub


Private sub จำนวนรับเข้า_Afterupdate
Call CalculateTotal
end sub
Private sub จำนวนลัง_Afterupdate
Call CalculateTotal
end sub
Private sub จำนวนชิ้นจ่ายออก_Afterupdate
Call CalculateTotal
end sub
Private sub จำนวนลัง_Afterupdate
Call CalculateTotal
end sub

หมายเหตุดูว่า มีการเพิ่มข้อมูล textbox ไหน ก็วาง call ที่ event afterupdate textbox นั้นเพื่อให้ผลรวมจำนวนชิ้น คำนวนทุกครั้งที่ระบุจาก textbox ที่เกี่ยวข้อง
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

43
สมการที่ 1 : จำนวนรับเข้า*จำนวนลัง = จำนวนชิ้น 
สมการที่ 2 : จำนวนชิ้น+จำนวนชิ้นจ่ายออก=ผลรวมจำนวนชิ้น


จำนวนชิ้น = nz([จำนวนรับเข้า],0) * nz([จำนวนลัง],0)

ผลรวมจำนวนชิ้น = nz([จำนวนชิ้น],0) + nz([จำนวนชิ้นจ่ายออก],0)
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

44
ตัวอย่างแบบง่ายๆ ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

45
ยังไม่เข้าใจครับ

เอางี้ดีกว่า ผมแนะนำวิธีการละกัน

1. ต้องมีตาราง Product โดยต้องมีฟิลด์ UnitPack เช่น 12 ชิ้นต่อกล่อง
2. เวลาป้อนข้อมูล ถ้าหน่วยเป็นชิ้น ก็ป้อนปกติ
3. ถ้าป้อนข้อมูลเป็นกล่อง เช่น 3 กล่อง ก็ให้คำนวณไปเป็นชิ้น ก็จะได้ 3x12 คือ 36 ชิ้น
4. เวลาทำคำนวณ ก็คำนวณแบบเป็นชิ้นเอา
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

46
คือ คุณต้องการ รวมยอด การรับเข้า การส่งออก จำนวนคงเหลือ เศษรับเข้า เศษจ่ายออก โดยเงื่อนไข ให้รวมถ้า Inhouse_number และ Gcas เหมือนกันหรือเปล่าครับ

เช่นข้อมูลในตารางเป็นแบบนี้
Inhouse_number  / Gcas /   รับเข้า    /  ส่งออก 
11111111111      /  AA  /      10     /   5
11111111111      /  AA  /        5      /   5

คิวรี่ Q_Balance ต้องให้ได้
Inhouse_number  / Gcas /   รับเข้า    /  ส่งออก 
11111111111      /  AA   /      15     /   10

อยากให้แสดงแบบนี้หรือเปล่า ผมไม่ค่อยเข้าใจคำถามเหมือนกันครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

47
ผมลองดูตารางจากไฟล์ตัวอย่างเก่าที่คุณเคยส่งมา ลองไปแก้ตามนี้ดูก่อนครับ
Backup ต้นฉบับไว้ด้วยนะ
1.ลองล้างการจัดรูปแบบ
2.ลองกำหนด Format ของข้อมูลฟิลล์นั้น ตามภาพเพราะอาจจะเกิดจากการกำหนด Format ที่ไม่สอดคล้องกับ access เลยเกิดปัญหานี้ได้


เป็นที่ฟิลล์ไหนลองทำดูครับว่าหายไหม
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

หน้า: 1 2 [3]