2017-07-26 135 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秒前編輯 –