• 締切済み

access リストボックスから文章を選び、テーブルに挿入

> > テーブルとして、 > > テーブル:T_患者 > 患者ID 氏名 > 1 あいうえお > 2 かきくけこ > > テーブル:T_具体策 > 具体策ID 具体策 > 1 観察項目A > 2 観察項目B > 3 観察項目C > 4 観察項目D > 5 援助項目A > 6 援助項目B > > テーブル:T_看護計画 > 患者ID 具体策 > 1 観察項目A > 1 観察項目B > > とあったとします。 > > で、フォームとして > > フォーム:F_看護計画入力 ※メイン/サブフォーム形式 >  メインフォーム:患者情報 >  サブフォーム:看護計画の情報 > > フォーム:F_看護計画選択>>  リストボックス:具体策 >   値集合ソース:SELECT 具体策 FROM T_具体策 >   複数選択:標準  ※これで、複数選択ができるようになります。 >  コマンドボタン:追加 >   > とあり、F_看護計画入力のコマンドボタンで、F_看護計画選択に画面遷移し、リストボックスで > 選択した後に、コマンドボタン:追加をクリックすると、テーブル:T_看護計画にデータを追加します。 > > コマンドボタン:追加 のクリック時イベント > > Dim dbs As DAO.Database > Dim rst As DAO.Recordset > Dim varItm As Variant > > Set dbs = Application.CurrentDb > Set rst = dbs.OpenRecordset("テーブル12") > > For Each varItm In Me!具体策.ItemsSelected > rst.AddNew > rst!患者ID = Forms!F_看護計画入力!患者ID > rst!具体策 = Me!具体策.ItemData(varItm) > rst.Update > Next varItm > > rst.Close > dbs.Close > Set rst = dbs.OpenRecordset("テーブル12") のところで、エラーが出て、存在しませんとでます。これは何をいみしているのですか? とりあえず、つくってみました。そこで、("テーブル12")とはなんなんでしょうか?存在しませんとでます。

みんなの回答

noname#140971
noname#140971
回答No.2

補足: <改善点2=改悪>もありえます。

noname#140971
noname#140971
回答No.1

同じテーブルとフォームを作成してテストしてみました。 <T_患者> 患者ID___氏名 ________1___鈴木 一郎 ________2___中村 主水 <T_具体策> 具体策ID__具体策 ___________1__観察項目A ___________2__観察項目B ___________3__観察項目C <F_看護計画入力>から入力した結果は以下のようです。 <T_看護計画> 患者ID__具体策ID ________1__1 ________1__2 ________1__3 もちろん、<T_看護計画>は、次のようにサブフォームでは表示。 <T_看護計画> 患者ID__具体策ID ________1__観察項目A ________1__観察項目B ________1__観察項目C さて、<F_看護計画入力>のコードは次のようです。 Private Sub コマンド_コマンド計画追加_Click()   Dim I   As Integer   Dim N   As Integer   Dim lngKID As Long   Dim dbs  As DAO.Database   Dim rst  As DAO.Recordset   Set dbs = Application.CurrentDb   Set rst = dbs.OpenRecordset("T_看護計画")   lngKID = Forms("F_患者").Controls("患者ID")   N = Me.具体策.ListCount - 1   For I = 0 To N     If Me.具体策.Selected(I) Then       With rst         .AddNew         .Fields("患者ID") = lngKID         .Fields("具体策ID") = CLng(Me.具体策.ItemData(I))         .Update       End With     End If   Next I   rst.Close   dbs.Close   Forms("F_患者").Requery End Sub エラーの原因は、両者を比較すると明らかだと思います。 改善点1、Forms("F_患者").Controls("患者ID")の参照を一度だけにしていること。 改善点2、<T_看護計画>では、[具体策ID]を記録していること。 お昼ですので、これ位に・・・。

ayusukemx8
質問者

お礼

今夜ためしてみます

関連するQ&A