2017-10-09 13 views
0

お願いします。ここに私のテーブルがあります。ループ付きリストビューのサブアイテムを追加する

ID Item  Qty Added Qty 

1 Ballpen  23  5 

2 Pencil  44  4 

3 Pentelpen 12  5 

アイテムを一度更新したいのですが、プログラムを実行すると、最初のアイテムと同じになります。

たとえば、保存ボタンをクリックすると、すべてのアイテム数はballpenのように28になります。

ここに私のコードです。前もって感謝します。

   Dim lvitem As Object 
       Dim iCount As Integer 
       Dim iLoop As Integer 
       Dim qty As Double = Val(lvPO.Items(0).SubItems(1).Text) + Val(lvPO.Items(0).SubItems(2).Text) 

       iCount = lvPO.Items.Count() 
       If Not lvPO.Items.Count = 0 Then 
        Do Until iLoop = lvPO.Items.Count 
         lvitem = lvPO.Items.Item(iLoop) 
         With lvitem 
         Call SEDCommand("E", "tbl_item", " qty = '" & qty & "' WHERE itemid ='" & .SubItems(0).text & "'") 
         End With 
         iLoop = iLoop + 1 
         lvitem = Nothing 
        Loop 
        MsgBox("Purchase Order (" & tb_refpo.Text & ") is added in database!", MsgBoxStyle.Information, "SYSTEM") 
        ClearTextBox(Me) 
       End If 
+1

あなたのコードだけ 'qty'のための一つの値を算出し、それは最初の項目を使って行います。 – Blackwood

+0

@Blackwoodどうすればこの権利を行えますか?あなたが私を助けてくれることを願います。 – Sadnerd

答えて

1

@Blackwoodによると、ループの外側で一度だけqtyを計算し、各項目に同じ値を使用しています。 (読みのコードが簡単になります。これは、VB6 :-)ではなく、より多くのVB.NETスタイルの構築物を用いて)あなたは、このようなループでそれをやりたい

If lvPO.Items.Count <> 0 Then 
     For Each lvitem as ListViewItem in lvPO.Items 
     With lvitem 
      Dim qty As Double = Val(.SubItems(1).Text) + Val(.SubItems(2).Text) 
      SEDCommand("E", "tbl_item", " qty = '" & qty & "' WHERE itemid ='" & .SubItems(0).text & "'") 
     End With 
     Next 
     MsgBox("Purchase Order (" & tb_refpo.Text & ") is added in database!", MsgBoxStyle.Information, "SYSTEM") 
     ClearTextBox(Me) 
    End If 
+0

ありがとうたくさんの男!神のお恵みがありますように!良い一日を! – Sadnerd

関連する問題