Ms access 插入外键。Excel VBA和MS Access 2003

Ms access 插入外键。Excel VBA和MS Access 2003,ms-access,excel,vba,Ms Access,Excel,Vba,我有两张桌子:部门ID,部门名称。和表employeeemploy\u ID、employ\u Name、Salary、depart\u ID。ID是自动编号。 Employee表中的Dept_ID是一个外键,引用表Department中的Dept_ID。现在,我想使用Excel VBA将一条记录插入到Employee表中,Excel VBA连接到我的表所在的Access 2003数据库。如果用户只提交属于已提交员工的部门名称,如何获取部门ID的正确值并将其插入表Employee?我使用一个简单

我有两张桌子:部门ID,部门名称。和表employeeemploy\u ID、employ\u Name、Salary、depart\u ID。ID是自动编号。 Employee表中的Dept_ID是一个外键,引用表Department中的Dept_ID。现在,我想使用Excel VBA将一条记录插入到Employee表中,Excel VBA连接到我的表所在的Access 2003数据库。如果用户只提交属于已提交员工的部门名称,如何获取部门ID的正确值并将其插入表Employee?我使用一个简单的insert Append查询:

insert into table Employee (Empl_Name,Salary,Dept_ID)
values (Parameter_Empl_Name, Parameter_Salary, Parameter_Dept_ID)
除了引用外键Dept\u ID的参数\u Dept\u ID的值之外,我有所有的值。我不知道如何生成正确的Dept\u ID并将其插入表Employee,因为我知道该ID的Dept\u名称。 问题清楚了吗?
请提供帮助,

我想最好的办法是首先查找部门id,这将允许您检查它是否存在,如果不存在,则提示用户,因此,以下行中的某些内容:

Set rs=CreateObject("ADODB.Recordset")

sSQL="SELECT DeptID FROM Depts WHERE DeptName='" & <Cell with Dept Name> & "'"

rs.Open sSQL, <connection>

DeptID=rs!DeptID

谢谢你。我首先想到了这一点,但我认为这可能很耗时。通过创建存储过程,我可以轻松地使用SQL server实现这一点。因为在SQL server中,它允许您在一个查询存储过程中编写多个select语句,其中我可以让第一个select语句执行查找,第二个语句插入。但我试图将此应用于MS Access,但没有成功。您知道在Access查询中使用多个语句的方法吗?例如,是否有一种方法可以在Access中的一个查询中执行以下操作:从Dept\u Name=Finance的depart中选择参数\u Dept\u ID=Dept\u ID,然后在我编写的同一查询中的新行中:insert into table Employee values Mike,2000,Parameter\u Dept\u IDNo。但是您应该能够在我的头顶上创建一个插入查询:插入到员工的雇员姓名、薪资、部门ID中,从DeptTable中选择“&Employee姓名和”作为雇员姓名,&Salary&AS薪资、部门ID,其中DeptName=”&Dept姓名和“,但是Select语句包含属于employee表而不是Depts表的EMPLOYOU name和salary字段。在From子句中,您只使用了DeptsTable。您的示例仅包括从另一个表中选择的值,而不包括字段列0。如果您想修改您的问题以显示数据来源,则可以给出更完整的答案。