現在、オートナンバーを使用して別のテーブルに挿入できるように、少しデータを挿入したテーブルからオートナンバーの値を取得しようとしています。
2 つのテーブルがあります。1 つは顧客情報 (CustMaster) を格納し、もう 1 つは RMA 情報 (RMAMaster) を格納します。これらの両方のテーブルの CustNbr フィールドは、リレーションシップを介してリンクされています。CustMaster テーブルにデータを挿入すると、CustNbr フィールドが 1 ずつ増加するオートナンバー型になります。RMAMaster テーブルにデータを挿入すると、RMANbr フィールドがオートナンバーとして 1 ずつ増加します。
ユーザーが新しい顧客の情報を入力するフォームがあります (顧客が「新規」の場合、つまりデータベースにない場合)、「RMA の生成」という適切な名前のボタンをクリックすると、新しい顧客が CustMaster テーブルに保存されます (会社名、住所、都市、都道府県、郵便番号、国) を作成し、RMA 情報を RMAMaster テーブルに保存します (作成日、RMA を作成した人のイニシャル、メモ、および CustMaster テーブルからの CustNbr)。
顧客が新規の場合、作成した CustMaster エントリから AutoNumber CustNbr を取得し、それを RMAMaster テーブルに挿入して 2 つをリンクする必要がありますが、それをうまく行う方法がわかりません。次のコードを試しましたが、成功しませんでした:
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
How to retrieve autonumbered field via ADODBから「SELECT @@Identity」クエリを見つけましたが、その回答には、それを私の状況にうまく適用する方法に関する実際のコンテキストはありませんでした。
私の "Generate RMA" の OnClick イベントで上記のコードを使用すると、"Object Required" というエラーが発生し、エラーの場所に関する参照はありません。データは CustMaster テーブルに保存されますが、新しいデータは RMAMaster テーブルに表示されません。
Windows XP マシンで Access 2003 を使用しています。ActiveX Data Objects ライブラリの前に DAO オブジェクト ライブラリをリストするデフォルトから参照を変更していません。
私が行方不明になっている可能性のあるもの、またはどこにあるかについて、誰か助けてもらえますか? うまくいけば、私はいくつかの意味を成しています。
前もって感謝します。