このクエリで表すことができる 2 つのテーブルがあります (このクエリをフォームのレコードソースにしました)。
SELECT tblrcmtask.id, tblrcmtask.rcmtask,tblrcmtaskoptions.id,
tblrcmtaskoptions.rcm_id,
tblrcmtaskoptions.rcmtaskoptions
FROM tblrcmtask
INNER JOIN tblrcmtaskoptions
ON tblrcmtask.id=tblrcmtaskoptions.rcm_id
Access 2007 のフォームを使用して、ユーザーがこれらのテーブルに新しいエントリを追加できるようにしたいと考えています。列tblrcmtask.id
およびは、それぞれテーブルおよびtblrcmtaskoptions.id
の主キーです。ユーザーが新しいエントリを追加している間に、両方のテーブルに新しい ID を作成する方法がわかりません。ユーザーは、tblrcmtaskoptions.rcmtaskoptions と tblrcmtask.rcmtask のみをフォームに追加できます。また、各 tblrcmtask のテーブル tblrcmtaskoptions には複数の行があります。 .id. ユーザーが既存の tblrcmtask.id のテーブル tblrcmtaskoptions に新しい行を追加できるようにしたいtblrcmtask
tblrcmtaskoptions
これら 2 つのドロップダウンを使用してみましたが、ID の最大値 + 1 として新しい ID を作成するときに問題に直面しています。
Dim MyRecords As DAO.Recordset
Dim Myfield As DAO.Fields
SQL = "SELECT Max(tblRCMTASK.ID) AS MaxOf_RCMTASKID FROM tblRCMTASK;"
Set MyRecords = dbTHIS.OpenRecordset(SQL)
Set Myfield = MyRecords.Fields
Me.txtRCMTASKID = Myfield("MaxOf_RCMTASKID") + 1
Me.txtRCMTASKID.DefaultValue = Myfield("MaxOf_RCMTASKID") + 1
MyRecords.Close
End If
Dim MyRecords1 As DAO.Recordset
Dim Myfield1 As DAO.Fields
SQL = "SELECT Max(tblRCMTASKOPTIONS.ID) AS MaxOf_RCMOPTIONSID FROM tblRCMTASK;"
Set MyRecords = dbTHIS.OpenRecordset(SQL)
Set Myfield1 = MyRecords1.Fields
Me.txtRCMOPTIONSID = Myfield1("MaxOf_RCMOPTIONSID") + 1
Me.txtRCMOPTIONSID.DefaultValue = Myfield("MaxOf_RCMOPTIONSID") + 1
MyRecords1.Close
このオブジェクトに値を代入できないというエラーが表示され、次の行を指しています: Me.txtRCMTASKID = Myfield("MaxOf_RCMTASKID") + 1
どうすればいいですか?