我目前正在尝试从已插入一些数据的表中检索 AutoNumbered 值,以便可以使用 AutoNumber 插入另一个表。
我有两张表:一张存储客户信息 (CustMaster),另一张存储 RMA 信息 (RMAMaster)。这两个表中的 CustNbr 字段通过关系链接。当我将数据插入 CustMaster 表时,CustNbr 字段是一个自动编号,递增 1。当我将数据插入 RMAMaster 表时,RMANbr 字段作为自动编号递增 1。
我有一个表单,用户在其中输入新客户的信息(如果客户是“新客户”,即不在数据库中),然后单击一个名为“Generate RMA”的按钮,它将新客户保存到 CustMaster 表中(公司名称、地址、城市、州、邮编、国家)并将 RMA 信息保存到 RMAMaster 表(生成日期、生成 RMA 的人的姓名首字母、任何注释和 CustMaster 表中的 CustNbr)。
如果客户是新客户,我必须从我创建的 CustMaster 条目中获取 AutoNumber CustNbr 并将其插入 RMAMaster 表以链接两者,但我不知道如何成功地做到这一点。我尝试了以下代码但没有成功:
DoCmd.RunSQL ("INSERT INTO [CustMaster] (fcompany,fmstreet,fcity,fstate,fzip,fcountry) VALUES ('" & Me.CustName & "','" & Me.CustAddr & "','" & Me.CustCity & "','" & Me.CustState & "','" & Me.CustZip & "','" & Me.CustCountry & "')") 'Insert the customer information into the CustMaster table
RetCustNbr = oConn.Execute("SELECT @@Identity")(0) ' (hopefully) grab the last autonumber from the CustMaster table so that we can insert it into the RMAMaster table
DoCmd.RunSQL ("INSERT INTO [RMAMaster] (Initials,DateIssued,CustNbr,ContactFirst,ContactLast,ContactEmail,Notes) VALUES ('" & Me.Initials & "','" & Today & "','" & RetCustNbr & "','" & Me.ContactFirst & "','" & Me.ContactLast & "','" & Me.ContactEmail & "','" & Me.RMANotes & "')") ' Insert data into the RMAMaster table
RetRMANbr = oConn.Execute("SELECT @@Identity")(0) ' (hopefully) grab the last AutoNumber RMANbr so that I can display it to the user
Me.RMANbr = RetRMANbr ' Set the Retrieved AutoNumber RMANbr from the table and query above and set a field on the form to it so that the user can see it and give it to the customer
我从如何通过 ADODB 检索自动编号字段中找到了“SELECT @@Identity”查询,但该答案中没有关于如何将其成功应用于我的情况的真正上下文。
在我的“生成 RMA”的 OnClick 事件中使用上面的代码会给我一个错误“需要对象”,但没有提及错误可能在哪里。数据会保存到 CustMaster 表中,但 RMAMaster 表中不会出现新数据。
我在 Windows XP 机器上使用 Access 2003。我没有更改我的任何默认引用,它在 ActiveX 数据对象库之前列出了 DAO 对象库。
任何人都可以帮助我可能会丢失什么,或者在哪里?希望我有点道理。
先感谢您。