Page 1 of 1

รบกวนสอบถาม การทำเลขที่เอกสาร VB 2012

Posted: Wed Jan 16, 2013 2:10 pm
by ณัฐวุฒิ เบ็ญชา
พอดีผมเขียนโปรแกรมขึ้นมาตัวหนึ่งซึ้ง report ต้องมีเลขที่เอกสารเลย สร้างฐานข้อมูลขึ้นมาเพื่อเก็บเลขที่ run โดยหลักการที่ผมใช้คือ

Select ข้อมูลจากฐานข้อมูลมาตรวจสอบ แล้วทำการ Update ฐานข้อมูลนั้น เพื่อจะ Run เลขที่เอกสารไปเรื่อยๆ แต่ติด Error ตรงการ Update ตามโค๊ต ครับ

Error จะเกิดในขั้นตอนที่จะ Update ครับ รบกวนผู้รู้ด้วยครับ

Code: Select all

 Private Sub Doc()

        ' อ่านข้อมูลเก็บไว้ใน Dataset

        Dim Sql As String = "SELECT * FROM Document WHERE Key='KEY'"
        _Cmd = New OleDbCommand(Sql, _Conn)
        'Dim Adapter As New OleDbDataAdapter(_Cmd)
        '_Dataset = New DataSet
        'Adapter.Fill(_Dataset, "Doc")

        Dim Reader As OleDbDataReader = _Cmd.ExecuteReader()
        Reader.Read()
        Dim MM As Integer = Reader("Month")
        Dim No As Integer = Reader("No")
        Dim MMnow As Integer = Month(Now)
        Dim YYnow As Integer = Mid(Year(Now), 3)
        Dim Document As String = ""

        If MMnow <> MM Then
            No = 1
            Document = "R" & YYnow & "0" & MMnow & "/" & "000" & No

        ElseIf MMnow > 9 And No > 9 Then
            Document = "R" & YYnow & MMnow & "/" & "00" & No + 1

        ElseIf MMnow < 9 And No < 9 Then
            Document = "R" & YYnow & "0" & MMnow & "/" & "000" & No + 1

        ElseIf MMnow > 9 And No < 9 Then
            Document = "R" & YYnow & MMnow & "000" & "/" & No + 1

        ElseIf MMnow < 9 And No > 9 Then
            Document = "R" & YYnow & "0" & MMnow & "00" & "/" & No + 1

        End If


        Sql = "UPDATE Document SET Year='" & YYnow & "', Month='" & MMnow & "', No='" & No + 1 & "',Doc='" & Document & "' WHERE Key='KEY'"
        _Cmd = New OleDbCommand(Sql, _Conn)


        _Cmd.Parameters.AddWithValue("YY", YYnow)
        _Cmd.Parameters.AddWithValue("MM", MMnow)
        _Cmd.Parameters.AddWithValue("No", No + 1)
        _Cmd.Parameters.AddWithValue("Do", Document)

        Dim Affected As Integer = _Cmd.ExecuteNonQuery

        If Affected < 1 Then
            MsgBox("เกิดข้อผิดพลาดในการแก้ไขข้อมูล!", MsgBoxStyle.OkOnly, "ผลการแก้ไข")
        Else
            MsgBox("ข้อมูลถูกแก้ไขแล้ว!", MsgBoxStyle.OkOnly, "ผลการแก้ไข")
        End If 

Re: รบกวนสอบถาม การทำเลขที่เอกสาร VB 2012

Posted: Wed Jan 16, 2013 9:14 pm
by snasui
:? ผมดูตรง sql Statement ตามที่ Post มาก็ไม่พบว่ามีอะไรผิดปกติครับ

Re: รบกวนสอบถาม การทำเลขที่เอกสาร VB 2012

Posted: Thu Jan 17, 2013 8:36 am
by ณัฐวุฒิ เบ็ญชา
ครับ ผมก็ข้อนข้าง มั่นใจ SQL เพราะ Copy มาจากที่เขียนก่อนหน้าซึ้งไม่ติด Error อะไรแต่พอมาถึงมาทำในส่วนของเลขที่เอกสารมันดัน Error ตามรูปครับ

Re: รบกวนสอบถาม การทำเลขที่เอกสาร VB 2012

Posted: Thu Jan 17, 2013 11:07 am
by ณัฐวุฒิ เบ็ญชา
มา Update ครับ สรูป งมไปงมมาได้แล้วครับ

ปัญหาอยู่ตรง ชื่อ Colum ในฐานข้อมูลครับ ตอนแรกเป็น Year Month No ไม่ได้ครับ เลยเปลี่ยนเป็น

Year_R Month_R No_R ตอนนี้ Update ได้แล้วครับ

ขอบคุณมาก ครับ ผม :rz: :rz: :rz:

Re: รบกวนสอบถาม การทำเลขที่เอกสาร VB 2012

Posted: Thu Jan 17, 2013 11:12 am
by snasui
:cp: ยินดีด้วยครับ :thup: