スタックオーバーフロー。あまりにも長い間取り組んできた問題があります。現在、コンソーシアム データを表示するフォームがあり、「新しいコンソーシアムを作成する」というボタンがあります。クリックすると、下の画像に示すように、名前を入力できるポップアップ ウィンドウが表示されます。新しいレコードを作成した後に表示できないことを除いて、ほとんどすべてが正常に機能します。以下のコードを参照してください。私が何をしようとしているのかがわかります。
ちなみに、「コンソーシアム名」コンボボックスでレコードを選択できるようになっています。どうすれば私の更新がうまくいかないのかわかりませんが、その情報を含めるべきだと思いました。
フォームは次のとおりです。
コードは次のとおりです。
興味深いことに、編集を行った後、StackOverflow はコードを適切にインデントしていないようです。新しいテスト投稿で、正常にインデントすることができました。しかたがない。私もこれに初心者です:
Private Sub CreateConsortiumButton_Click()
If IsNull(Me.ConsortiumNameText) Or Me.ConsortiumNameText = "" Then ''insert better validation here
MsgBox "Please enter a valid consortium name."
Else
'' Create a new Consortium record with the ConsortiumNameText field on the popup window
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Consortium")
rst.AddNew
rst("Consortium name").Value = Me.ConsortiumNameText
ConsortiumID = rst("ConsortiumID").Value
rst.Update
'' Now, create a corresponding record in the ResearchContributions table
Set rst = CurrentDb.OpenRecordset("ResearchContributions")
rst.AddNew
rst("ConsortiumID").Value = ConsortiumID
rst.Update
MsgBox "Consortium " & Me.ConsortiumNameText & " successfully created."
'' Change the form's combo box to reflect the new record
Forms!Main!NavigationSubform!ConsortiumNameCombobox = Me.ConsortiumNameText
'' Close popup
DoCmd.Close
'' Attempt to set the record on the main form to the newly created one - NOT WORKING!
DoCmd.OpenForm "Main", acNormal, , "[ConsortiumID] = " & ConsortiumID
End If
End Sub
この問題の一部は、タブ コントロールに基づく「コンソーシアム フォーム」フォームを「メイン」フォームに配置したことに関係しているのではないかと思います。おそらく、特定の ConsortiumID でMainフォームを開こうとしているために、その ConsortiumID はConsortium Formに適用されません。マスターとその子をリンクできないように見えますが、これは過去には必要ありませんでした。概念が曖昧で混乱しているように聞こえる場合は、ご容赦ください。これは、私の心の中でまだ概念が曖昧で混乱しているためです。これは私の最初の Access プロジェクトです。誰にもヒントはありますか?