Page 1 of 1

ต้องการรันเลขใบสั่งซื้อโดยใช้ VBA

Posted: Thu Jul 28, 2022 9:49 am
by teenoie
ผมต้องการรันเลขใบสั่งซื้อที่มีรูปแบบที่มีรูปแบบดังนี้ครับ
รูปแบบเลขที่ใบสั่งซื้อ P22001-001

P คือค่าคงที่
22 คือ ปี ค.ศ. 2022 แต่เอามาแค่ 2 ตัว
001 คือรหัส job
-001 คือลำดับที่ 1 แล้วต้องการให้มันรันไปทีละหนึ่ง

Code: Select all

Function ModRunPoNo() As String
Dim Db As DAO.Database
Dim Rstpo As DAO.Recordset
Dim Stryear As String                                                 
Dim Strdummy As String                                             
Dim StrSQL As String
Dim StrPlat As String, StrOrderNo As String
Stryear = Format(Right(Year(Date), 2), "00")
Strdummy = "P"
StrOrderNo = Format(Mid(!PONo, 4, 3), "000")
StrPlat = Strdummy & Stryear & StrOrderNo & "-"
StrSQL = "SELECT POHeader.* FROM POHeader WHERE POHeader.PONo" & _
         " Like '" & StrPlat & "*'" & _
         " Order by POHeader.PONo"

Set Db = CurrentDb
Set Rstpo = Db.OpenRecordset(StrSQL, dbOpenDynaset)
    With Rstpo
        If .RecordCount > 0 Then
            .MoveLast
            ModRunPoNo = StrPlat & "-" & Format(Str(Right(!PONo, 3) + 1), "000")
        Else
            ModRunPoNo = StrPlat & "-" & "000"
        End If
        .Close
    End With
End Function

Re: ต้องการรันเลขใบสั่งซื้อโดยใช้ VBA

Posted: Thu Jul 28, 2022 8:35 pm
by snasui
:D กรุณาแนบไฟล์ Access ตัดมาเฉพาะที่เกี่ยวข้องกับปัญหานี้มาด้วยจะได้ช่วยกันดูให้ได้ครับ

Re: ต้องการรันเลขใบสั่งซื้อโดยใช้ VBA

Posted: Sat Jul 30, 2022 9:02 pm
by teenoie
ผมหาทางแนบไฟล์ Access ไม่ได้ ผมขออนุญาตแชร์เป็น link แทนนะครับ
https://nepsolutions-my.sharepoint.com/ ... w?e=fj1uA9

ซึ่งผมทำเป็น form ไว้ ผมจะคีย์ในหัวข้อ PO เมื่อเวลาคลิ๊กปุ่ม Add แล้ว จะให้โปรแกรมมันรันเลข PO ทีละ 1 โดยที่มีเงื่อนไขดังนี้ครับ
1. เลขที่ PO อาจจะมี OrderNo หลาย Order เพราะฉะนั้น เลขที่ขึ้นต้นด้วย P22001 หมายถึง OrderNo Lot ที่ 1
2. ในเลขที่ PO นั้นจะมี OrderNo อื่นด้วย เช่น P22002 คือ OrderNo Lot ที่ 2

ผมต้องการให้โปรแกรมมันรันเลขที่ PO เป็น P22001-001 (หมายถึง เราเริ่ม PO ใน Lot ที่ 1 ลำดับที่ 1) ไปเรื่อยๆ หากเรามี PO P22002-001 (หมายถึงเราเริ่ม PO Lot ที่ 2 ใบที่ 1) แล้วให้มันรันต่อไปเรื่อยๆ โดยให้โปรแกรมมันรันลำดับในแต่ละ Lot เองครับ

ผมขอคำแนะนำด้วยครับ ขอบคุณครับ

Re: ต้องการรันเลขใบสั่งซื้อโดยใช้ VBA

Posted: Sun Jul 31, 2022 6:48 pm
by snasui
:D กรุณาแจ้งปัญหาของการแนบไฟล์ว่าเกิดปัญหาใด จะได้ช่วยแนะนำต่อได้ครับ