Vba 将数据从列表框插入表
你们能帮我写下面的代码吗 作为附带的发票表单屏幕截图,我试图用循环将数据从Listbox插入到表中,但它不起作用。请检查下面的VBA,让我知道哪里出了问题Vba 将数据从列表框插入表,vba,ms-access,Vba,Ms Access,你们能帮我写下面的代码吗 作为附带的发票表单屏幕截图,我试图用循环将数据从Listbox插入到表中,但它不起作用。请检查下面的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_D
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
谢谢我怀疑您尝试插入的某些数据是数字,因此不需要将值用单引号括起来。例如,如果所有的值都是数字,那么您可以在循环中使用:
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) & ")"
存储所有这些字段也可能不是一个好的数据库实践,因为您可能只需要ID字段,但不知道您在做什么以及为什么要这样做,很难说清楚
关于,我怀疑您尝试插入的某些数据是数字,因此不需要将这些值用单引号括起来。例如,如果所有的值都是数字,那么您可以在循环中使用:
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) & ")"
存储所有这些字段也可能不是一个好的数据库实践,因为您可能只需要ID字段,但不知道您在做什么以及为什么要这样做,很难说清楚
实际上,你的错误是: --->您在Sql中混合了文本(需要撇号文本标记[']前后)和数字(不需要[']前后):
更新: 所以
Item_ID现在是Text
然后我不得不放回(')。所以,现在请使用这个脚本
调试Sql查询:
现在,您需要做的是:
CurrentDb.executesql上设置断点
Sql
的值Sql
文本复制到剪贴板中Sql脚本创建一个新查询
希望这对你有帮助 实际上,你的错误是: --->您在Sql中混合了文本(需要撇号文本标记[']前后)和数字(不需要[']前后):
更新: 所以
Item_ID现在是Text
然后我不得不放回(')。所以,现在请使用这个脚本
调试Sql查询:
现在,您需要做的是:
CurrentDb.executesql上设置断点
Sql
的值Sql
文本复制到剪贴板中Sql脚本创建一个新查询
希望这对你有帮助 我已将表中的Item_ID数据类型从Number更改为短文本,并尝试了以下代码,但仍然不起作用
'ID: AutoNumber
'Inv_No: Short Text
'Item_ID: Short Text
'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
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
我已将表中的Item_ID数据类型从Number更改为短文本,并尝试了以下代码,但仍然不起作用
'ID: AutoNumber
'Inv_No: Short Text
'Item_ID: Short Text
'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
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
嗨,桑提亚,1。请您也展示一下您问题的表格结构,以便我们更好地调查您的操作不起作用的原因?#2。另外,如果您可以更新问题:错误消息是什么Hi Siriniaina,我正在共享我的数据库,请打开frmSEHi@Sandhya的表单,我现在在下面为您发布了答案。请阅读我给您的评论,为什么您的查询失败,您可以尝试解决方案。但不要忘记删除注释,因为它们只是为了帮助您,VBA Access不接受它们!嗨,桑提亚,1。请您也展示一下您问题的表格结构,以便我们更好地调查您的操作不起作用的原因?#2。另外,如果您可以更新问题:错误消息是什么Hi Siriniaina,我正在共享我的数据库,请打开frmSEHi@Sandhya的表单,我现在在下面为您发布了答案。请阅读我给您的评论,为什么您的查询失败,您可以尝试解决方案。但不要忘记删除注释,因为它们只是为了帮助您,VBA Access不接受它们!感谢您的回复,前两个字段为文本输入,其余均为数值。感谢您的回复,前两个字段为文本输入,其余均为数值。@SandhyaSS,请不要忘记投票,并在对您有效时接受答案。非常感谢你。祝福:)我只是在上面的代码块中尝试了相同的方法。我删除了所有数字字段的('),并将其保留在前两个文本输入中,最后无效。以下字段是我的表字段和数据类型。ID:自动编号库存编号:短文本项\U ID:编号数量:编号LP:编号MRP:编号C\U光盘:编号GST:编号IGST:编号LPR\U总计:编号R\U总计:编号请立即尝试,并在工作时通知我!请检查下面张贴的代码。我确实试过那样做,但仍然不起作用(@SandhyaSS,请不要忘记投票,并在对您有效时接受答案。非常感谢。祝福:)我刚刚尝试了与上面代码块相同的方法。我删除了所有数字字段的('),并将其保留在前两个文本输入中,最后无效。以下字段是我的表字段和数据类型。ID:自动编号库存号:短文本项\U ID:编号数量:Num