我有一张名为cpns的表格,其字段为C_Bk_No(优惠券簿号),St_No(起始优惠券号码)和End_No(最后一张优惠券号码)所有整数。
我用第一个记录启动了表格,分别为1,1,25。
我正在尝试让系统插入新行,其中cpn编号为+ 1,start_No + 25和End_No + 25作为单击表单上的按钮(Command13)的新记录。
因此,预期的第二条记录应该有cpn_bk_no = 2,St_No = 26,End_No = 50.
我不确定为什么以下SQL无效:
Private Sub Command13_Click()
Dim Sql As String
Dim CbkNo As Long
Dim StNo As Long
Dim EndNo As Long
CbkNo = Me![C_bk_No].Value + 1
StNo = Me![St_No].Value + 25
EndNo = Me![End_No].Value + 25
Sql = "Insert Into cpns ([C_bk_No], [St_No], [End_No]); Values (CBkNo, StNo, EndNo))"
CurrentDb.Execute Sql
End Sub
每次点击按钮,都会显示"运行时错误3061,参数太少:预计为3。"和#34; CurrentDb.Execute Sql"以黄色突出显示。
请有人帮忙吗?
答案 0 :(得分:1)
很难知道从哪里开始,但您面临的基本问题是您已将变量的名称键入字符串。与其他一些语言不同,vb不会查看你的字符串内容并认为“哦,他在该字符串中输入了一个变量名称,我将把它换成当前变量中的值”
此代码还存在其他问题,但不是那么基本。我真的建议你抛弃所有代码,然后按照本教程,关于如何以Microsoft推荐的方式访问数据库:
https://msdn.microsoft.com/en-us/library/ms171884.aspx
即使您没有制作win表单应用程序,其中的概念也可以应用于各种应用程序
答案 1 :(得分:0)
这个分号是错误的。分号用于将sql语句彼此分开。
Insert Into cpns ([C_bk_No], [St_No], [End_No]) **;** Values (CBkNo, StNo, EndNo)
删除它并把它放在它上面它会起作用:
Insert Into cpns ([C_bk_No], [St_No], [End_No]) Values (CBkNo, StNo, EndNo);