Page 1 of 1

การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 11:50 am
by Godtheking
ตอนนี้ผมติดปัญหาเรื่องของการ UPDATE
ผม Edit ข้อมูลขึ้นมาแก้ไข แร้วกด Update ข้อมูลของผมที่ Update ไม่ได้ทับตัวที่ Edit
ขั้นมาแต่ข้อมูลลงไปอยู่ล่าสุด ผมต้องปรับแก้ Code ตรงไหนบ้างครับ

Code: Select all

Sub Update_Weight() '''    *** Update   *** '''
    Dim sh As Worksheet
    Dim iRow As Long
    Dim x As Object
    Dim str As String

    For Each x In frmForm.Frame5.Controls
        If x.Value = True Then
            str = x.Name
            Exit For
        End If
    Next

        Set sh = ThisWorkbook.Sheets(str)

        If frmForm.txtRowNumber.Value = "" Then
            iRow = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
        Else
            iRow = frmForm.txtRowNumber.Value
        End If
            If frmForm.txtPart.Value = "" Then
                MsgBox "Please specify Part No."
            ElseIf frmForm.txtName.Value = "" Then
                MsgBox "Please specify PART Name."
            ElseIf Len(frmForm.txtModel.Value) <> 3 Then
                MsgBox "Please specify Model"
            ElseIf Len(frmForm.txtControl.Value) <> 4 Then
                MsgBox "Please specify CONTROL"
            ElseIf frmForm.txtQty.Value = "" Then
                MsgBox "Please specify Q'TY"
            ElseIf frmForm.txtPiece.Value = "" Then
                MsgBox "Please specify By Piece"
            ElseIf Len(frmForm.txtDate.Value) <> 8 Then
                MsgBox "Please specify Date."
            ElseIf Len(frmForm.txtID.Value) <> 4 Then
                frmForm.txtPart.SetFocus
            Else
            
             With sh
                .Cells(iRow, 1) = iRow - 2
                .Cells(iRow, 2) = frmForm.txtPart.Value
                .Cells(iRow, 3) = frmForm.txtName.Value
                .Cells(iRow, 4) = frmForm.txtModel.Value
                .Cells(iRow, 5) = frmForm.txtControl.Value
                .Cells(iRow, 6) = frmForm.txtQty.Value
                .Cells(iRow, 7) = frmForm.txtBox1.Value
                .Cells(iRow, 8) = frmForm.txtBox2.Value
                .Cells(iRow, 9) = frmForm.txtBox3.Value
                .Cells(iRow, 10) = frmForm.txtBox4.Value
                .Cells(iRow, 11) = frmForm.txtBox5.Value
                .Cells(iRow, 12) = frmForm.txtBox6.Value
                .Cells(iRow, 13) = frmForm.txtBox7.Value
                .Cells(iRow, 14) = frmForm.txtBox8.Value
                .Cells(iRow, 15) = frmForm.txtBox9.Value
                .Cells(iRow, 16) = frmForm.txtBox10.Value
                .Cells(iRow, 17) = frmForm.txtPiece.Value
                .Cells(iRow, 18) = frmForm.txtStandard.Value
                .Cells(iRow, 19) = frmForm.txtLower.Value
                .Cells(iRow, 20) = frmForm.txtUpper.Value
                .Cells(iRow, 21) = frmForm.txtPercent.Value
                .Cells(iRow, 22) = frmForm.txtPercent1.Value
                .Cells(iRow, 23) = frmForm.txtID.Value
                .Cells(iRow, 24) = frmForm.txtDate.Value
                .Cells(iRow, 25) = frmForm.txtIDName.Value
                .Cells(iRow, 26) = Left(frmForm.txtPart.Value, 8)
                .Cells(iRow, 27) = frmForm.txtCheck.Value
            End With
        End If
    'Call SaveData
 End Sub

Re: การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 12:33 pm
by snasui
:D ถ้ายังตั้งใจแขียน "แล้ว" เป็น "แร้ว" มาอีกสักรอบผม Block นะครับ

Re: การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 1:17 pm
by Godtheking
ขอโทษครับผมจะระวังในการใช้ภาษาครับ
Godtheking wrote: Wed Mar 06, 2024 11:50 am ตอนนี้ผมติดปัญหาเรื่องของการ UPDATE
ผม Edit ข้อมูลขึ้นมาแก้ไข แล้วกด Update ข้อมูลของผมที่ Update ไม่ได้ทับตัวที่ Edit
ขั้นมาแต่ข้อมูลลงไปอยู่ล่าสุด ผมต้องปรับแก้ Code ตรงไหนบ้างครับ

Code: Select all

Sub Update_Weight() '''    *** Update   *** '''
    Dim sh As Worksheet
    Dim iRow As Long
    Dim x As Object
    Dim str As String

    For Each x In frmForm.Frame5.Controls
        If x.Value = True Then
            str = x.Name
            Exit For
        End If
    Next

        Set sh = ThisWorkbook.Sheets(str)

        If frmForm.txtRowNumber.Value = "" Then
            iRow = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
        Else
            iRow = frmForm.txtRowNumber.Value
        End If
            If frmForm.txtPart.Value = "" Then
                MsgBox "Please specify Part No."
            ElseIf frmForm.txtName.Value = "" Then
                MsgBox "Please specify PART Name."
            ElseIf Len(frmForm.txtModel.Value) <> 3 Then
                MsgBox "Please specify Model"
            ElseIf Len(frmForm.txtControl.Value) <> 4 Then
                MsgBox "Please specify CONTROL"
            ElseIf frmForm.txtQty.Value = "" Then
                MsgBox "Please specify Q'TY"
            ElseIf frmForm.txtPiece.Value = "" Then
                MsgBox "Please specify By Piece"
            ElseIf Len(frmForm.txtDate.Value) <> 8 Then
                MsgBox "Please specify Date."
            ElseIf Len(frmForm.txtID.Value) <> 4 Then
                frmForm.txtPart.SetFocus
            Else
            
             With sh
                .Cells(iRow, 1) = iRow - 2
                .Cells(iRow, 2) = frmForm.txtPart.Value
                .Cells(iRow, 3) = frmForm.txtName.Value
                .Cells(iRow, 4) = frmForm.txtModel.Value
                .Cells(iRow, 5) = frmForm.txtControl.Value
                .Cells(iRow, 6) = frmForm.txtQty.Value
                .Cells(iRow, 7) = frmForm.txtBox1.Value
                .Cells(iRow, 8) = frmForm.txtBox2.Value
                .Cells(iRow, 9) = frmForm.txtBox3.Value
                .Cells(iRow, 10) = frmForm.txtBox4.Value
                .Cells(iRow, 11) = frmForm.txtBox5.Value
                .Cells(iRow, 12) = frmForm.txtBox6.Value
                .Cells(iRow, 13) = frmForm.txtBox7.Value
                .Cells(iRow, 14) = frmForm.txtBox8.Value
                .Cells(iRow, 15) = frmForm.txtBox9.Value
                .Cells(iRow, 16) = frmForm.txtBox10.Value
                .Cells(iRow, 17) = frmForm.txtPiece.Value
                .Cells(iRow, 18) = frmForm.txtStandard.Value
                .Cells(iRow, 19) = frmForm.txtLower.Value
                .Cells(iRow, 20) = frmForm.txtUpper.Value
                .Cells(iRow, 21) = frmForm.txtPercent.Value
                .Cells(iRow, 22) = frmForm.txtPercent1.Value
                .Cells(iRow, 23) = frmForm.txtID.Value
                .Cells(iRow, 24) = frmForm.txtDate.Value
                .Cells(iRow, 25) = frmForm.txtIDName.Value
                .Cells(iRow, 26) = Left(frmForm.txtPart.Value, 8)
                .Cells(iRow, 27) = frmForm.txtCheck.Value
            End With
        End If
    'Call SaveData
 End Sub

Re: การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 3:27 pm
by snasui
:D ผมต้องทดสอบอย่างไรให้พบปัญหานั้น ช่วยลำดับมาให้ด้วยจะได้เข้าถึงปัญหาโดยไวครับ

Re: การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 3:52 pm
by Godtheking

เปิด Userform ที่ sheet Trim ขึ้นมาครับและเลือกที่ Line Packing ให้เลือก Trim ครับ
และจะมีข้อมูลขึ้นมาให้ เลือกข้อมูลด้านล่าง 1 ข้อและกด Edit และลองแก้ไขข้อมูล
เสร็จแล้วกด Update ครับ
พอกด Update แล้วข้อมูลที่จะ Update ไม่ได้วางทับตัวที่ Edit ขึ้นมาครับแต่ข้อมูลไปเพิ่มบรรทัดใหม่ครับ

Re: การ Update ข้อมูลที่มีการแก้ไขครับ

Posted: Wed Mar 06, 2024 5:08 pm
by puriwutpokin
ลองปรับตามนี้ดูครับ

Code: Select all

Sub Update_Weight() '''    *** Update   *** '''
    Dim sh As Worksheet
    Dim iRow As Long
    Dim lrow As Long
    Dim x As Object
    Dim str As String

    For Each x In frmForm.Frame5.Controls
        If x.Value = True Then
            str = x.Name
            Exit For
        End If
    Next

        Set sh = ThisWorkbook.Sheets(str)
      lrow = sh.Range("b" & sh.Rows.Count).End(xlUp).Row
        If frmForm.txtRowNumber.Value = "" Then
           ' iRow = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
            iRow = Application.Match(frmForm.txtPart.Value, sh.Range("b1:b" & lrow), 0)
        Else
            iRow = frmForm.txtRowNumber.Value
        End If
'Other Code