2017-07-26 134 views
0

我有一个名为cpns的表,其字段为C_Bk_No(优惠券帐号),St_No(开始优惠券编号)和End_No(最后一个优惠券编号)为所有整数。插入SQL不起作用

我已经开始与第一条记录为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”。并且“CurrentDb.Execute Sql”行以黄色突出显示。

请任何人都可以帮忙吗?

+2

什么是你想acheive?什么是错误信息?什么是表格cpns格式?你使用什么数据库? – Cedias

+2

从INSERT命令中删除';'? –

+0

嗨,我删除了分号,但仍然没有帮助。它说“运行时错误”3137'在SQL语句末尾缺少分号“。我正在使用MS Access 2007.谢谢。 –

回答

1

很难知道从哪里开始,但您面临的基本问题是您已将变量的名称输入到字符串中。与其他语言不同,vb不会查看字符串内容,并认为“哦,他在该字符串中键入了一个变量名称,我将其替换为当前变量中的值”

还有其他问题也有这个代码,但不是那么基本。我会真诚地建议你把所有的代码,距离本教程相反,如何在微软建议的方式之一访问数据库:

https://msdn.microsoft.com/en-us/library/ms171884.aspx

即使你不是做一个双赢的形式应用里面的概念可以应用于各种应用

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); 
+0

嗨,我删除了分号,但仍然没有帮助。它说“运行时错误”3137'在SQL语句末尾缺少分号“。我正在使用MS Access 2007.谢谢。 \t \t 行“CurrentDb.Execute Sql”以黄色突出显示。 - S.桑德普25秒前编辑 –