แสดงกระทู้

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 ... 17
1
ตั้งค่า Page setup ให้พิมพ์ตาม default printer แล้ว Save ครับ

ขอบคุณมากนะครับ

2

ผมเจอปัญหาเวลาเอาไปเปิดกับเครื่องอืน ตอนพิมพ์ report จะขึ้นแบบนี้ก่อนตลอดครับ (เหมือนจำค่าจากเครื่องเก่าที่เราสร้างรายงาน) พอกด ok ก็ print ได้นะครับ แต่จะ print ครั้งต่อไปก็ขึ้นอีก รบกวนสอบถามว่าต้องแก้ยังไงครับ ขอบคุณครับ

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

4
ขออนุญาตสอบถามเพิ่มเติมเรื่องเลขที่ Inv นะครับ กรณีเราลบ invoice หรือ add new เลขที่ inv มันจะ run ไปเรื่อยๆเลยใช่ไหมครับ แล้วถ้าสมมติเราเปิด
inv.ใบที่1 เลข inv จะเป็น 001
inv.ใบที่2 เลข inv จะเป็น 002

แล้วหากเราลบ inv ใบที่2 แล้วเปิดใหม่ เลข inv จะเป็น 003 เลย จะไม่กลับมาเป็น 002 แบบนี้ถูกต้องแล้วใช่ไหมครับ

ขอบพระคุณครับ

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

6
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


ได้แล้วครับ ขอบคุณมากนะครับ

7
รบกวนสอบถามเพิ่มเติมเกี่ยวกับรูปแบบเลขที่ Invoice ถ้าต้องการเพิ่มเดือนเข้าไปด้วยต่อจากปี ต้องแก้ตรงไหนบ้างครับ
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")
        If DCount("Val(Right([InvNo],6))", "[tbl_main]", "Mid([InvNo],1,4) = '" & vInv & "'") = 0 Then
            vInvNo = vInv & "000001"
           
        Else
            IntMax = DMax("Val(Right([InvNo],6))", "[tbl_main]", "Mid([InvNo],1,4) = '" & vInv & "'")
            vInvNo = vInv & Format(IntMax + 1, "000000")
           
        End If
       
        'ใส่ค่าลงไป»
        Me.InvNo = vInvNo
   
    End If
   
End Function

8
ทำได้แล้วนะครับ
Private Sub Command33_Click()
If MsgBox("R U sure?", vbYesNo + vbDefaultButton2) = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "delete from tbl_sub where ID_main= " & MainID
DoCmd.RunCommand acCmdDeleteRecord
End If
End Sub

9
ขอรบกวนอีกนิดนะครับ ถ้าผมต้องการลบ main form แล้วให้ ข้อมูลใน subform ลบไปด้วย ต้องเขียน code ยังไงครับ ตอนนี้ลบที่ main form แล้ว subform ไม่ลบตามครับ

10
ตัวอย่างครับ
ขอบพระคุณมากนะครับอาจารย์ ทำได้แล้วครับ

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

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

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

ลองฝึกทำครับ แค่ประสบการณ์จะบังเกิด
ขอบพระคุณมากๆเลยนะครับ เดี๋ยวผมลองทำดูครับ

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


อ๋อ ป่าวครับ หมายถึงว่ารายการเดียวกันที่ยิงแล้วเพิ่มจำนวนเป็น 1 2 3 หากเราต้องการลบยอดเหลือ2 ต้องทำยังไงครับ ถ้าลบทั้งแถวทำได้ครับ

13
ให้ Download ตัวอย่างไฟล์อีกครั้งครับ
ผมมีการปรับให้ใหม่แล้ว
ได้แล้วครับ ไม่พบปัญหาดังกล่าวแล้ว
ปล.แล้วหากยิงรายการนั้นๆเกิน เราจะลบออกยังไงครับ

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

โดยตัวอย่างที่ทำให้มีทำตัวอย่างฟังค์ชั่นอื่นเพิ่มให้นิดหน่อย เพื่อ่ให้มองเห็นภาพได้เร็วขี้น


ขอบพระคุณมากๆนะครับ ผมมีคำถามครับ
1.เวลา Ad Record ใหม่ พิมพ์เลข barcode แล้วกด enter หรือกด tab จะไม่มีอะไรเกิดขึ้นครับ หรือบางครั้งก็ขึ้น error ตามรูป
2.กรณีเรายิง barcode เกิน เราจะลบยอดนั้นได้อย่างไรครับ เช่น item A ยิงไป4 แต่ของจริงแค่3 อยากลบออก1

ขอบคุณมากครับ

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

16

รบกวนสอบถามอาจารย์ทุกท่านนะครับ คือผมจะทำฟอร์มโปรแกรมขาย โดยมีลักษณะเป็นฟอร์มที่มี main form และ subform โดยที่บน main form จะมี text box เพื่อรับค่า barcode เวลาเราสแกนบาร์โค้ดบนสินค้า1ครั้ง ก็ให้เพิ่มสินค้า item นั้นๆลงบน subform ยิงแต่ละอันก็เพิ่มลง subform ไปเรื่อยๆครับ

ปล.เคยมีอาจารย์ OddyWriter แนะนำไว้ก่อนหน้านี้ให้ใช้การ append query โดยใส่คำสั่ง append query บน event after update ของ text box scan barcode ผมทำได้แล้วครับ แต่อันนั้นเป็น form ที่ไม่มี subform พอมาเป็นแบบมี subform เลยทำไม่เป็นครับ

ทั้งนีผมได้แนบตัวอย่างฟอร์มมาให้ดูด้วยครับ รบกวนด้วยนะครับ

ปล.แล้วเป็นไปได้ไหมครับ หากสแกนแล้วเป็นบาร์โค้ดเดียวกัน คือสินค้าเป็นitemเดียวกัน ก็ให้นับจำนวนเพิ่มเข้าไปเลย
เช่นยิงครั้งที่1 สินค้าitem A = 1 ชิ้น พอยิงสินค้าA อีก จำนวนก็จะเพิ่มเป็น2ชิ้น โดยที่บรรทัดไม่เพิ่ม

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

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


อาจารย์ครับ ถ้า Text box "Scan barcode อยู่บน main form แต่เราต้องการ append query ให้ลงบน subform มันต้องทำยังไงครับ ( ถ้าไม่มี subform เป็นform ปกติผมทำได้ครับ เหมือนมัน relationship กันอยู่ มันเลยทำไม่ได้)

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

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

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