2013-06-19 31 views
1

我有一個Access數據庫2個表插入到Access數據庫:試圖通過SQL獲得ID從另一個表

  • tblMachine
  • 領域:
  • 機號
  • MachineDescription

  • tbl問題

  • 領域
  • ProblemID
  • 機號
  • ProblemDescription

我想添加一個新的記錄插入tblProblem,使用MachineDescription找到從tblMachine

的機號

然而,我SQL語句在子選擇語句中引發錯誤

這裏是我的發言:

string sql = "INSERT INTO tblProblem" + 
       " ([MachineID], [ProblemDescription], [ProblemOrder])" + 
       " VALUES (" + 
       "(SELECT ([MachineID] FROM tblMachine WHERE MachineDescription = @MachineDescription))," + 
       " @ProblemDescription, @ProblemOrder);"; 

問題被突出的這一部分:

"(SELECT ([MachineID] FROM tblMachine WHERE MachineDescription = @MachineDescription))," 

難道我做錯了什麼?這是告訴我有一個語法錯誤...

回答

1

額外的括號,也許是不合格的字段名稱:

String sql = "INSERT INTO tblProblem " + 
    "([MachineID], [ProblemDescription], [ProblemOrder])" + 
    "SELECT tblMachine.[MachineID], @ProblemDescription, @ProblemOrder " + 
    "FROM tblMachine " + 
    "WHERE tblMachine.MachineDescription = @MachineDescription"; 
+0

仍然得到:語法錯誤在查詢表達式「SELECT(tblMachine [機號] FROM tblMachine WHERE tblMachine。[MachineDescription] = @MachineDescription)'。 – iabbott

+0

編輯建議 – DonBoitnott

+0

好吧,我不再有錯誤,它似乎通過罰款,但當我檢查數據庫沒有新的記錄添加 – iabbott