แสดงกระทู้

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

หน้า: 1 [2]
19
ห้อง MS Access / > การ SUM Unbound Textbox บนForm Footer
« เมื่อ: 20 เม.ย. 61 , 17:17:22 »
=DSum("[ชื่อTextboxที่จะคำนวน]","[ชื่อตารางหรือคิวรี่]")
ใช้ Dsum แทนนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

20
ห้อง MS Access / > สอบถามการQuery คำนวนค่า
« เมื่อ: 18 เม.ย. 61 , 15:47:09 »
คิวรี่ที่1 ไม่ต้องมี Format( )  ให้มาใส่ในคิวรี่ที่ 2 ที่ผมบอกไปครั้งล่าสุด
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

21
ห้อง MS Access / > > สอบถามการQuery คำนวนค่า
« เมื่อ: 10 เม.ย. 61 , 17:37:30 »
ข้อมูลแยกตามItemID ค่ะ และลำดับวันที่ก่อน ไปหลัง
ตามรูปใหม่ด้านล่างค่ะ



งั้นตามคิวรี่ที่ผมให้ไปก็ควรจะให้ผลลัพธ์ที่ถูกต้องแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

22
ห้อง MS Access / > สอบถามการQuery คำนวนค่า
« เมื่อ: 10 เม.ย. 61 , 16:46:57 »
สมมุติเทเบิล T มีฟิลด์รายการสินค้า ItemCD, วันที่ D, ยอดยกมา BFQty, จำนวนรับเข้าในวันนั้น InQty, จำนวนจ่ายออกในวันนั้น OutQty  และมี Primary Key เป็น ItemCD, D

คิวรี่คือ
SELECT T1.BFQty+(select nz(sum(T2.InQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D <= T1.D)-(select nz(sum(T2.OutQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D < T1.D) AS TotalQty, *
FROM T AS T1
ORDER BY T1.ItemCD, T1.D;

ความหมายคือ

T1.BFQty
ยอดยกมา

+ (select nz(sum(T2.InQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D <= T1.D)
+ ผมรวมของจำนวนรับเข้าสำหรับสินค้าเดียวกันตั้งแต่วันแรกจนถึงวันนั้น (วันของเรคอร์ดนั้น)

(select nz(sum(T2.OutQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D < T1.D)
-  ผมรวมของจำนวนจ่ายออกสำหรับสินค้าเดียวกันตั้งแต่วันแรกจนถึงก่อนวันนั้น (วันของเรคอร์ดนั้น)

ที่ต้องใส่ฟังก์ชั่น nz( ) เพราะถ้าผลรวมนั้นไม่มีมาก่อน เช่นจำนวนจ่ายออกของวันที่น้อยกว่าวันแรก ซึ่งไม่มีค่า จะไม่ใช่ศูนย์ แต่เป็น NULL ซึ่งพอเอามาคำนวนกับค่าอื่นแล้ว จะให้ผลลัพธ์ซึ่งก็คือช่อง TotalQty ของเรคอร์ดนั้นเป็น NULL ไปด้วย ดังนั้นถ้าต้องการให้เป็นศูนย์ เราจึงต้องใส่ฟังก์ชั่น nz(... , 0) เพื่อแปลงค่า NULL เป็นศูนย์แทน
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

23
ห้อง MS Access / > การเพิ่มเงื่อนไข SQL ค่ะ
« เมื่อ: 05 เม.ย. 61 , 18:10:57 »
สร้างคิ่วรี่ใหม่ ใส่ sql ตามนี้
โค๊ด: [Select]
SELECT StockMonthlyOld.ItemID, StockMonthlyOld.Name, StockMonthlyOld.Type, StockMonthlyOld.Date, StockMonthlyOld.QtyReceived, StockMonthlyOld.Task
FROM StockMonthlyOld LEFT JOIN StockMonthlyOld AS StockMonthlyOld_1 ON StockMonthlyOld.ItemID = StockMonthlyOld_1.ItemID
GROUP BY StockMonthlyOld.ItemID, StockMonthlyOld.Name, StockMonthlyOld.Type, StockMonthlyOld.Date, StockMonthlyOld.QtyReceived, StockMonthlyOld.Task
HAVING (((Count(StockMonthlyOld_1.Task))<>0));
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

24
ใช่ครับ F22 ในทีนี้ผมว่า อาจจะอ้างไปถึง คอลั่มที่ 22 ของตาราง excel หรือเปล่าถึงมันจะว่างเปล่าอยู่ก็ลองกดเลือก
กดลบ และกด ล้างการจัดรูปแบบ ดูเผื่อช่วยได้
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

25
ห้อง MS Access / > สอบถามการแยกคอลัมน์
« เมื่อ: 21 มี.ค. 61 , 11:25:55 »
โค๊ด: [Select]
Public Function FormatLocation(stLocation As String, zone_or_id As Byte) As String
Dim splitText() As String, nPart As Integer, stResult As String, i As Integer

splitText = Split(stLocation, "-")
nPart = UBound(splitText)
stResult = ""
If zone_or_id = 1 Then
    stResult = splitText(0)
Else
    If nPart > 0 Then
        For i = 1 To nPart
            If i = nPart then
                stResult = stResult & Format(splitText(i), "00")
            Else
                stResult = stResult & Format(splitText(i), "000")
            End If
        Next i
    Else
        stResult = "00000000"
    End If
End If
FormatLocation = stResult

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

26
ห้อง MS Access / > สอบถามการแยกคอลัมน์
« เมื่อ: 20 มี.ค. 61 , 23:48:25 »
เพิ่ม i As Integer เข้าไปบรรทัดนี้ครับ

Dim splitText() As String, nPart As Integer, stResult As String, i As Integer
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

27
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 15 มี.ค. 61 , 09:47:34 »
ลองดูตัวอย่างในฟอร์ม DemoForm ครับ ผมเรียกใช้งาน Query และ Module อยู่ในนั้น
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

28
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 14 มี.ค. 61 , 17:40:43 »
ลองดูตามตัวอย่างในไฟล์นะครับ

- มีการใช้ฟังก์ชั่นใน Module InvoiceConv ด้วยนะครับ
- เรียกใช้งานจากฟอร์ม DemoForm จะได้ผลลัพธ์เป็นตาราง ResultTable
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

29
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 14 มี.ค. 61 , 14:54:05 »
Import Excel เข้ามาก่อน เอาไปไว้ที่ตารางชั่วคราวที่เรากำหนด แล้วก็ Query ข้อมูลให้เป็นอย่างที่เราต้องการครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

30
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 14 มี.ค. 61 , 14:02:17 »
การแปลงข้อมูลเป็นสิ่งที่ควรทำใน Excel ก่อนครับ การนำข้อมูลในรูป 1 มาใส่เลย แล้วค่อยแปลง จะเป็นอะไรที่ยุ่งยากมาก และมีโอกาสมากที่ข้อมูลจะผิดพลาดได้ เพราะถ้าอยู่ใน Excel ข้อมูลแต่ละแถวสามารถสัมพันธ์กันได้ แต่ใน Access ข้อมูลแต่ละแถวหรือก็คือเรคอร์ดนั้นเป็นอิสระต่อกันครับ

แนะนำว่าทำให้ Excel ก่อนแล้วค่อยนำมาใส่ใน Access ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

31
ไม่ได้เหมือนกันเลยค่ะ
Me.Type_cmb คือชื่อ Combobox ที่เลือก Type ในหน้าฟอร์มนั้นหรือเปล่าครับ / หรือถ้าสะดวกส่งไฟล์ มาที่เมล pinnarong1115@hotmail.com เดี่ยวผมดูให้
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

32
มีอีกแบบนะครับ ใช้ตัวนี้แทน ทำให้แสดง All ไว้ตลอด ตอนกดเลือกรายการครับ
โหลดตัวอย่างได้ด้านล่าง
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

33
มันไม่หายนะครับ เมื่อเปิดรายงานแล้วปิดรายงาน All ก็จะแสดงขึ้นมาใหม่ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

34
มันมี 2 อันนะครับ อันบน นั้นผมเขียนคำสั่งผิดเอาอันนี้นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

หน้า: 1 [2]