แสดงกระทู้

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] 2 3 4 ... 9
1
ตั้งค่า Page setup ให้พิมพ์ตาม default printer แล้ว Save ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

2
สวัสดีครับ
สำหรับเพื่อนสมาชิกท่านใดติดปัญหา mdb ไฟล์ชำรุด ฟ้อง Unrecognized database format
สามารถติดต่อมาที่ผมได้ครับผม

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

3
ในความเห็นของผม
ถ้าจะให้ถูกตามหลักการ เกี่ยวกับเลขที่ Inv ถ้าถูกใช้แล้ว หากต้องการยกเลิก ควรจะมีฟิลด์สักอันหนึ่งเป็นตัวมาร์คว่า  Cancel
เป็นต้นว่า InvCancel = (Y/N)
เพราะจะได้ทราบว่า Inv เลขที่ดังกล่าวโดน Cancel ในระบบไปแล้ว แต่ตัวเอกสารจริงอาจจะไปถึงมือ หรือ อยู่ในมือลูกค้า
หากมีประเด็นก็จะได้ทราบว่า เอกสาร เลขที่ดังกล่าวโดนยกเลิกไปแล้ว
ถ้าลบ ก็จะเป็นการลบร่องรอยของเอกสารที่ออกไป
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

4
มีน้องอีกคน ไม่ทราบวิธี Save As ไฟล์จาก accdb --> mdb
ผมรบกวนเข้าไปแนะนำหน่อยครับ
https://www.thai-access.com/index.php?topic=2436.msg16060#new
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

5
Function GenInvNo()
    Dim rst1, rst2, rst3 As DAO.Recordset
    Dim vStkID, vInvID, vInv1, vInv2, IntMax, vValRef As Long
    Dim vStkNo, vInvNo, vInv As String
   
    Dim dbs As Database
    Set dbs = CurrentDb()
   
    If IsNull(Me.INvNo) Or (Me.INvNo = "") Then
        'สร้างเลขที่ Inv ใบใหม่
        vInv = "IV" & Format(Date, "yy") & Format(Date, "MM")
        If DCount("Val(Right([InvNo],4))", "[tbl_main]", "Mid([InvNo],1,6) = '" & vInv & "'") = 0 Then
            vInvNo = vInv & "0001"
           
        Else
            IntMax = DMax("Val(Right([InvNo],4))", "[tbl_main]", "Mid([InvNo],1,6) = '" & vInv & "'")
            vInvNo = vInv & Format(IntMax + 1, "0000")
           
        End If
       
        'ใส่ค่าลงไป
        Me.INvNo = vInvNo
   
    End If
   
End Function

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

6
อันนี้ต้องทำหน้าแยกเพิ่มขี้นมาอีกอันในการยกเลิกรายการ โดยอาศัยหลักการเดียวกัน เพียงแต่จากบวกเพิ่มเป็นลบ

      rst2.Edit
      rst2!Qty = rst2!Qty - 1
      rst2.Update

หรือจะไปกำหนดให้ User ไปแก้จำนวนเอาก็ได้ที่ SubForm โดยไปดูที่ Property ของ SubForm : Editting แต่มีความเสี่ยงตรงแก้ผิด
วิธีที่ปลอดภัยสุดคือ ยิงด้วยเลขที InvNo --> ยิงบาร์โค๊ต เพื่อให้ระบบวิ่งไปตรวจสอบความถูกต้องแล้ว ค่อยลดจำนวน

ลองฝึกทำครับ แค่ประสบการณ์จะบังเกิด
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

7
ผมมีปรับตัวอย่างเพิ่ม เป็น Sample3.Zip
หากต้องการลบ รายการไหนให้คลิ๊เลือกแบบนี้แล้วกด Del

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

8
ให้ Download ตัวอย่างไฟล์อีกครั้งครับ
ผมมีการปรับให้ใหม่แล้ว
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

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

10
ได้ทำตัวอย่างมาให้ศึกษาเป็นแนวทางแล้วนะครับ
โดยมีการแก้ไขซื่อฟิลด์ที่ซื่อ ID ในบาง Table เพื่อให้มือใหม่ได้ตามถูก
เนื่องจากตัวอย่างต้นฉบับที่ได้มาใช้ฟิลด์ ชื่อ ID เหมือนกันหลาย Table อาจจะทำให้เกิดความสับสนได้

โดยตัวอย่างที่ทำให้มีทำตัวอย่างฟังค์ชั่นอื่นเพิ่มให้นิดหน่อย เพื่อ่ให้มองเห็นภาพได้เร็วขี้น
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

11
สามารถทำได้ครับ โดยใช้ DAO ช่วยจะทำให้ง่ายขี้น
แต่เนื่องจากไฟล์ตัวอย่างที่ให้มานั้นเป็นเวอร์ชั่นใหม่ รบกวน Convert ลงเป็น Access2002
ที่มีนามสกุล mdb แล้ว Upload เข้ามาใหม่ครับ เพราะผมใช้เวอร์ชั่นเก่า เลยไม่สามารถทำเป็นตัวอย่างให้ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

12
เปลี่ยนมาใช้ IF dcount(...) = 0 then
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

13
ถ้าเราต้องการให้ cursor อยู่ที่ตำแหน่ง text scanbarcode ตลอด ต้องทำยังไงครับ
-ใช้คำสั่ง text scanbarcode.setfocus

ถ้า barcode ที่เราสแกนลงไป ไม่พบในฐานข้อมูล ให้แสดงเป็นข้อความหรือ error ต้องเขียนยังไงครับ
-ใช้คำสั่ง On Error Goto xxx (ไปค้นวิธีการใช้คำสั่งนี้เองนะครับ)
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

14
จะยิงกี่ครั้งก็ได้ครับ Text Box ไม่พังแน่นอน

ที่ After Update เมื่อ สั่ง Append Query แล้ว ก็สั่ง Clear ค่าใน Text Box ให้เป็น "" หรือ Null ก็ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

15
เปลี่ยนวิธีนะครับ
ไปใส่ Text Box เพิ่มอีกอันนึง แบบตรงสีส้มที่มีข้อความ "Scan Barcode"
ที่ Event: After Update ของ Text Box อันใหม่นี้ก็สั่ง Run: Append Query เพื่อนำข้อมูลที่มี Barcode ตรงกันมาใส่ในตารางของฟอร์มข้างล่าง

แบบนี้จะเร็วกว่าครับ

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

16
ใช้คำสั่ง SQL ครับ เร็วกว่าเยอะ

SELECT * FROM ชื่อตาราง WHERE ชื่อฟิลด์ในตาราง = text box หรือ combo box บนฟอร์ม;

อย่าลืมปิดท้ายคำสั่งด้วย ; ทุกครั้ง
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

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

18
เพิ่ม Microsoft office 16.0 object library เข้าไปครับ

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

หน้า: [1] 2 3 4 ... 9