首页 > 解决方案 > 将数据从列表框插入表格

问题描述

各位大佬能帮忙看看下面的代码吗

作为附加的发票表单屏幕截图,我正在尝试通过循环将数据从列表框插入到表中,但它不起作用。请检查下面的 VBA,让我知道我哪里出错了。

Private Sub btn_Save_Click()

Dim i As Integer

For i = 0 To ItemsListBox.ListCount - 1 Step 1
CurrentDb.Execute "INSERT INTO tblSE_B(Inv_No,Item_ID,Qty,LP,MRP,GST,IGST,C_Dsic,LPR_Total,R_Total) VALUES('" & txtInvNo & "','" & ItemsListBox.Column(0, i) & "','" & ItemsListBox.Column(1, i) & "','" & ItemsListBox.Column(2, i) & "','" & ItemsListBox.Column(3, i) & "','" & ItemsListBox.Column(4, i) & "','" & ItemsListBox.Column(5, i) & "','" & ItemsListBox.Column(6, i) & "','" & ItemsListBox.Column(8, i) & "','" & ItemsListBox.Column(9, i) & "')"
      Next i
      MsgBox "Successfully done", vbInformation, "Sales"

End Sub

在此处输入图像描述

谢谢

标签: vbams-access

解决方案


其实你的错误是这样的:

---> 您在 Sql中混合了文本(前后需要撇号文本标记 ['])数字(前后不需要 [']) :


更新

'Qty: Number 
'LP: Number 
'MRP: Number 
'C_Disc: Number 
'GST: Number 
'IGST: Number 
'LPR_Total: Number 
'R_Total: Number    

Private Sub btn_Save_Click()

Dim i As Integer
Dim Sql As String

    For i = 0 To ItemsListBox.ListCount - 1 Step 1
        Sql = "INSERT INTO tblSE_B( Inv_No, " & _
                                   "Item_ID," & _
                                   "Qty," & _
                                   "LP, " & _
                                   "MRP," & _
                                   "GST," & _
                                   "IGST," & _
                                   "C_Disc," & _
                                   "LPR_Total," & _
                                   "R_Total)" & _
                " VALUES('" & txtInvNo & "','" & _              
                            ItemsListBox.Column(0, i) & "'," & _
                            ItemsListBox.Column(1, i) & "," & _ 
                            ItemsListBox.Column(2, i) & "," & _ 
                            ItemsListBox.Column(3, i) & "," & _ 
                            ItemsListBox.Column(4, i) & "," & _ 
                            ItemsListBox.Column(5, i) & "," & _ 
                            ItemsListBox.Column(6, i) & "," & _ 
                            ItemsListBox.Column(8, i) & "," & _ 
                            ItemsListBox.Column(9, i) & ");"
            CurrentDb.Execute Sql

    Next i
          MsgBox "Successfully done", vbInformation, "Sales"

End Sub

所以Item_ID is now Text我不得不放回(')。所以,现在请使用这个脚本。

调试 Sql 查询:

现在这是您需要做的:

  1. 设置断点CurrentDb.Execute Sql
  2. Sql立即窗口局部变量窗口中获取值
  3. 在剪贴板中复制Sql文本
  4. 打开你的数据库
  5. 尝试根据剪贴板中的内容创建一个新查询。Sql Script
  6. 测试插入是否成功。
  7. 如果是这样,那么问题出在您的 VBA 中。如果不是,那么脚本有问题。
  8. 请用新的错误更新您的问题,我们可以看看如何解决它!

希望对你有帮助!


推荐阅读