我在数据库中有三个表,它们使用外键相互链接。我想做一个INSERT查询,以便我可以输入数据。我可以单独向每个表插入数据但是当使用外键约束时我得到错误。这是表关系和VBA表单,我试图通过它输入数据 VBA Form,Relationships & Data Types
我现在使用这两个查询,但第二个是抛出错误。
sql = "insert into T1(ID,FName,Email)values('" & TextBox1.Text & "', '" & TextBox2.Text & "','" & TextBox3.Text & "')"
sql = "insert into T2(ID,PhoneNumber,City) Values (Select(ID FROM T1 WHERE FName=" & TextBox2.Text & "),'" & TextBox4.Text & "','" & TextBox5.Text & "')"
请注意ID是我表格中的主要字段,我将使用该字段进行搜索,更新和删除
答案 0 :(得分:0)
您在第二个查询中使用的synatx无效,您必须使用INSERT INTO .... SELECT ....
进行编写并删除VALUES
关键字,如下所示:
INSERT INTO T2(ID,PhoneNumber,City)
SELECT ID,'" & TextBox4.Text & "','" & TextBox5.Text & "'
FROM T1
WHERE FName=" & TextBox2.Text & "
来自'" & TextBox4.Text & "','" & TextBox5.Text & "'
的值将被选为字符串文字,其值来自ID
列,这是您如何将查询中选择的值与字符串文字混合并将其插入另一张桌子。
答案 1 :(得分:0)
答案 2 :(得分:0)
对于你的第二个查询,我正在使用VB.NET,因为我之前没有做过VBA编程:
Dim sql As String = String.Empty
sql = "insert into T2(ID,PhoneNumber,City) Values ("
'// T2.ID(Number)
sql += "Select(ID FROM T1 WHERE FName=" & TextBox2.Text & "),"
'// T2.PhoneNumber(Number)
'// instead of "'" & TextBox4.Text & "'," remove the single quotes
sql += TextBox4.Text & ","
'// T2.City(Text) only text need to be enclosed in 'single quotes'
sql += "'" & TextBox5.Text & "'"
sql += ")"
您的第二个查询是抛出错误,因为您试图将文本插入数据库中的数字列(T2.PhoneNumber)。
包括您的图片: