2013-10-28 126 views
0

所以我使用一個訪問(可悲)來驅動一個VB程序註冊學生上課。我有三張表格,學生和課程。查詢插入基於其他表的數據類型

enter image description here

我想添加的學生證和課程ID在登記表中的關係。 這是因爲我做了SQL所以我可怕的第一次失敗了很久:

INSERT students.id INTO register.studentid WHERE 1 = students.id 
INSERT courses.id INTO register.courseid WHERE '12345' = courses.crn 

使用INSERT INTO的是錯誤的。但是,你可以這樣做:

INSERT INTO register (studentid, courseid) VALUES (1 = students.id, '12345' = courses.crn); 

,因爲我現在的VB代碼的工作原理是這樣的:

If Not TextBox1.Equals("") Then 

     query += "INSERT students.id INTO register.studentid WHERE '" & StudentID & "' = students.id " 
     query += "INSERT courses.id INTO register.courseid WHERE '" & TextBox1.Text & "' = courses.crn" 
    End If 

回答

0

INSERT的說法應該是按以下格式

INSERT INTO table_name (column1,column2,column3,...) 
VALUES (value1,value2,value3,...) 

那麼,是什麼你正在尋找是這樣的:

INSERT INTO register (studentid, courseid) VALUES (1, '12345') 

If Not TextBox1.Equals("") Then 
    query += "INSERT INTO register (studentid, courseid) VALUES (" & StudentID & ", '" & TextBox1.Text & "')" 
End If 

下面是一個例子SQL Fiddle你可以玩。

+0

好的,那我該如何查詢,找到相應的course.id,其中的course.crn是12345 – user1093111

+0

'SELECT ID FROM courses WHERE crn ='12345'' – Linger

+0

你可以嵌套嗎? INSERT INTO註冊(studentid,courseid)VALUES(SELECT ID FROM courses WHERE crn ='12345',SELECT course.id FROM courses WHERE crn ='12345' – user1093111