แสดงกระทู้

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

หน้า: [1] 2 3 4
1
หมายถึง พิมพ์ออกมาซ้ำ 2 ใบ หรือ รายการซ้ำ 2 รายการ
โพสต์นี้ได้รับคำขอบคุณจาก: apisitluang

2
ห้อง MS Access / : การหายอดคงเหลือ
« เมื่อ: 06 ส.ค. 67 , 18:23:54 »
ผมก็ใช้วิธีการลองผิดลองถูกแบบนี้
โดยใช้ตัวอย่างจาก อาจารย์หรือเพื่อนๆ ในนี้
ทำบ่อยๆ จะพบจุดผิด จุดที่เป็นเงื่อนไข
ดูคำสั่งแล้วทำความเข้าใจ มันจะเอาไปประยุกต์
ใช้ได้อีกเยอะเลยครับ

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

3
ห้อง MS Access / : การหายอดคงเหลือ
« เมื่อ: 05 ส.ค. 67 , 12:05:18 »
เข้าใจครับมือใหม่ คือจะให้ทำให้เลย คนที่เค้ามาดูเค้าไม่รู้ว่า ตารางไหนคืออะไร
แล้วเค้าจะทำให้ได้งัย ผมดูไปชั่วโมงนึง ยังไม่รู้เลยว่า ตารางไหนคือรับ ตารางไหนจ่าย
มันมั่วไปหมด เลยอยากให้ลองทำ ให้เหลือ 3-4 คิวรี่ เอาส่วนที่เกี่ยวข้องในตารางต่างๆ
มารวมใน คิวรี่เดียวจนเหลือคิวรี่สุดท้าย อันไหนไม่ใช้ไม่ต้องดึงลงมา

แล้วจากที่ดู ถ้าออกแบบ 2 ตาราง เป็นตาราง รับ ตารางจ่าย พอมารวมกัน
ไอดีมันจะไม่สามารถลำดับได้ เช่น
ตารางรับ
ID    วันที่       จำนวน
1  30/7/2567    20
2  2/8/2567    10
3  2/8/2567      5
4  2/8/2567    15
5  2/8/2567    25
ตารางจ่าย
ID    วันที่       จำนวน
1   31/7/2567     2
2    1/8/2567      4
3    1/8/2567      5
4    1/8/2567      6
5    2/8/2567      3
ตารางรับ-จ่าย
ID    วันที่       จำนวนรับ    จำนวนจ่าย   คงเหลือ
1  30/7/2567    20             0            20
1  31/7/2567      0             2            18
2    1/8/2567      0             4            14
2    2/8/2567    10             0            24
3    1/8/2567      0             5            19
3    2/8/2567      5             0            ....
4    1/8/2567      0             6            ...
จะเห็นว่าพอเรียงตาม ID วันที่จะเรียงผิด
วิธีแก้คือ ต้องใช้ตารางเดียว หรือต้องเขียนให้โปรแกรมนับไอดี ต่อกันใน 2 ตาราง
ลองทำดูครับ
.........
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

4
ห้อง MS Access / : การหายอดคงเหลือ
« เมื่อ: 05 ส.ค. 67 , 10:21:49 »
การออกแบบตารางดูสับสนมากเลยครับ
ถ้าเราออกแบบตารางดี มันจะเขียนโปรแกรมง่าย
ตอนนี้นั่งไล่ตาราง คิวรี ก็งงแล้ว ใช้เวลาสักพัก

ผมว่าคุณเริ่มใหม่ดีกว่า ดูจากตัวอย่างที่ผมส่งไป
มันใช้แค่หลักๆ 4 คิวรี่นี่แหละ ตารางก็ดึงไปใช้ในคิวรี่ได้เลย
ไม่ต้องเอามาเซฟเป็นชื่อใหม่ ถ้าเยอะแบบนี้ งง มาก
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

5


รับจ่าย เปลี่ยนเป็น  รับ:0  ก็ได้
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

6
ใช้ Union Query ได้
นำตารางแรกมาทำ Query โดยช่องจำนวนแบ่งเป็นรับจ่าย
ช่องรับก็นำช่องจำนวนของ Table Receive มาใส่
ช่องจ่ายเว้นว่างไว้แบบนี้ จ่าย:""
ทำ Query ตารางที่ 2 โดยสลับกัน
ช่องรับว่างไว้แบบนี้ รับ:"" ช่องจ่ายก็นำจำนวนของ Table Derivery มาใส่
1.เปลี่ยนมุมมอง Query เป็น SQL ทั้ง 2
2.Copy Query อันใดอันหนึ่งมาไว้อีกอัน โดยเชื่อระหว่างกันด้วยคำว่า UNION
ไม่รู้อธิบายเข้าใจป่าว ลองทำดู
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

7
สร้าง Append Query ชื่อ Query1
แล้วไปใส่คำสั่งให้ Run Query
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

8
ขอบคุณครับอาจารย์
โพสต์นี้ได้รับคำขอบคุณจาก: Su, ถวัลย์ วรจิตจํานงค์

9
ใช้ชื่อคอนโทลเป็นภาษาไทยหมดเลย จะต่อยอดยากนะครับ
ผมทำในส่วนที่ถามไม่ได้ดูอย่างอื่นนะครับ คือคลิกที่ครึ่งวันแล้ว รวมวันลา = 0.5
โพสต์นี้ได้รับคำขอบคุณจาก: John Memoriall

10
เพราะโจทย์มันไม่ละเอียดเลยตอบยาก
1.ไม่รู้ว่าตรง รวมวันลา ใช้การพิมพ์เอง หรือ เกิดจากการเลือกวันที่
2. วันที่ลา ที่ระบุถ้าหลายวัน จะติ๊กครึ่งวันได้รึป่าว
 แต่จากที่ดูรูป ครึ่งวันส่วนใหญ่ เป็นวันที่ ถึง วันเดียวกัน
 ผมจะใช้ AfterUpdate ถ้าคลิกที่ครึ่งวัน จะให้รวมวันลา = 0.5

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

11
1. ต้องเพิ่มฟิลด์ที่สินค้านั้นๆ ก่อนว่าเป็นสินค้าโปรโมชั่นรึป่าว เช่นค่า = 0 คือไม่เป็นสินค้าโปรชั่น = 1 เป็นสินค้าโปรโมชั่น
2. ให้ใส่ช่องนี้ในหน้าซื้อขาย
3. ใช้กล่องข้อความ Sum ฟิลด์ ที่เพิมมานี้
4. ในช่องคิดเงิน ใส่เงื่อนไขไป ว่าถ้ากล่องข้อความที่ Sum > 3 ก็เอาจำนวนเงินมา -20 ถ้าไม่ใช่ก็ เป็นจำนวนเงินเดิม
แนวคิดก็ประมาณนี้
โพสต์นี้ได้รับคำขอบคุณจาก: maicnx

12
ห้อง MS Access / ประมวลผลค่าเสื่อม
« เมื่อ: 17 ก.ค. 66 , 14:12:06 »
สืบเนื่องจากกระทู้ https://www.thai-access.com/index.php?topic=2233.0

เลยเอามาถามแทน เผื่อคนเอาไปใช้ได้เยอะเลย


ในการทำทะเบียนครุภัณฑ์ ส่วนใหญ่เราก็ใช้วิธีคำนวนกันเป็นรายปี เมื่อสิ้นปีงบประมาณ (30 ก.ย.)
เราก็จะคำนวนโดยใช้ Query Append ข้อมูลค่าเสื่อมตามที่คำนวนไปเก็บในตารางในแต่ละปี
แต่ในกระทู้นั้นเหมือนเก็บข้อมูลทุกปี ไม่ใช้ใช้เฉพาะปีปัจจุบัน ผมเลยออกแบบวิธีการคิดค่าเสื่อมดังนี้


-คิดค่าเสื่อมเป็นรายวัน โดยเริ่มคิดตั้งแต่ปี 2560 และราคาต้องเกิน 10,000 บาท
-เมื่อหมดอายุการใช่งาน ให้เหลือไว้ 1 บาท โดยไม่ต้องนำมาคำนวนอีก
-DEPRECIA เป็นตารางที่บันทึกครุภัณฑ์
-DEPRECPROCESS ไว้รับข้อมูลจากการคำนวน เอาไปเขียน Report ในภายหลัง
-ISSU เก็บรายการครุภัณฑ์ที่จำหน่ายแล้ว
เมื่อเปิดฟอร์ fProcess ขึ้นมา กดปุ่มคำนวนค่าเสื่อม (อันนี้ที่ทำไมเป็น)
ให้คำนวนค่าเสื่อมตั้งแต่ปี 2560 แล้วเอาไปใส่ในตาราง DEPRECPROCESS
จนถึงปีที่ระบุในฟอร์ม (30 ก.ย.2566)
โพสต์นี้ได้รับคำขอบคุณจาก: marut.navy

13
หลักการก็จากที่เราเก็บไฟล์ PDF ในฐานข้อมูล
เปลี่ยนมาเก็บ File Path แทน โดยเพิ่มฟิลด์เป็น Text
เมื่อเราจะเปิด PDF File ของเอกสารตัวไหน ก็เก็บPath
ของตัวนั้น แล้ว FollowHyperlink ชื่อไฟล์ Path ตามตัวอย่างที่ให้ไป

ในตัวอย่างกดปุ่ม ... มันจะไปเปิดที่เก็บ PDF File แล้วเราเลือกไฟล์ที่ต้องการ
มันจะนำ File Path มาเก็บ แล้วเรากดปุ่ม Open PDF มันก็จะเปิดไฟล์ให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: savetri

14
ทำได้ครับ โดย เก็บเป็น Path แทน แล้วสั่งเปิดโดย FollowHyperlink ชื่อไฟล์ Path
โพสต์นี้ได้รับคำขอบคุณจาก: savetri

15
Billnum=Day([tDate]) & Month([tDate]) & Year([tDate])+543 & Right('0000' & [ID],4)
วันที่กับเดือนเค้านิยมเป็น 2 หลักนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: marut.navy, seksan orm, maicnx

16
ห้อง MS Access / : การทำทะเบียนครุภัณฑ์
« เมื่อ: 29 มิ.ย. 66 , 13:30:41 »
ตามแนวกรมบัญชีกลาง ครับ คิดแบบเส้นตรง ครับผม
เค้าก็คิดเป็นเส้นตรงทั้งนั้นแหละ มหาดไทยคิดเป็นวันแล้ว
จากคำถาม อ่านแล้วไม่รู้จะตอบยังงัยนะ
ไม่ทราบพอมีโค้ดเขียนป่าวครับผม
คำถามที่ถาม ผมไม่รู้จะตอบตรงไหนครับ เขียนโคตตรงไหน
ส่งรูปหน้ารายงานมา ก็ไม่รู้จะตอบยังงัยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: marut.navy

17
ห้อง MS Access / : การใช้ MsgBox
« เมื่อ: 28 มิ.ย. 66 , 10:21:21 »
สมมุติกล่องข้อความ ชื่อ กล่อง1 และกล่อง2
ที่ปุ่มคำสั่ง

Private Sub Command_Click()
    Me.กล่อง1 = ""
    Me.กล่อง2 = ""
    Me.กล่อง1.Setfocus
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: maicnx

18
ห้อง MS Access / : การใช้ MsgBox
« เมื่อ: 27 มิ.ย. 66 , 17:44:59 »
         Dim RetValue As Variant
                RetValue = MsgBox("กด Yes เมื่อต้องการปิด", vbOKCancel + vbDefaultButton2, "Un")
                Select Case RetValue
                    Case 1
                        DoCmd.close acForm, "ชื่อฟอร์ม"
                    Case Else
                        '''
                 End Select

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

หน้า: [1] 2 3 4