• 締切済み

ACCESSでVBを使って特定のデータを変更したいのですが・・・

ACCESSのVB初心者です。 専門書も買って読んでるのですが、どうにも行き詰ったので質問させてください。 今やろうとしているのは、データNoが入るフィールドと文字列が入るフィールドの2つのフィールドから出来ている「Aテーブル」を作ってあり・・・フォームのテキストボックスに入力された任意の数字とAテーブルのデータNoを照合し、同じ番号を処理するコードを打ち込みたいのですが、どうにもやり方がわかりません。 フォームで「12」という数字をテキストボックスで指定し、「新規追加」をすると、Aテーブルに12のデータNoがない場合は、Aテーブルに12というデータNoと文字列を追加し、「データ削除」をすると、AテーブルのデータNo12を削除と言う感じでやりたいのですが・・・。 どなたか知識のある方、教えてくださいませ。 または、このサイトを見れば分かるんじゃないかと言う情報もお待ちしております。

みんなの回答

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.3

> 理由があって、フォームのコントロールソースは使えないんですよ Set Rs = Me.Recordset の部分を Set Rs = CurrentDb.OpenRecordset("SELECT * FROM Aテーブル", dbOpenDynaset) と変更してもOKです。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Aテーブル(出来上がっている) データNO 氏名 112    山田太郎 ・・・・ ーー フォームにテキストボックスがある。 テキストボックスに例えば「112]と入力 ーーー Aテーブルの「112 山田太郎」を見て(読んで) >同じ番号を処理するコードを打ち込みたいのですが この意味がわかりません。 山田太郎に関する、他のデータを追加して、Bテーブルを作りたいということか?(更新的) ーー テキストに入力した例えば「113」がAテーブルに無い場合は 新規レコードを追加したい。(新規追加的) ーーー >データ削除」をすると、AテーブルのデータNo12を削除と言う感じでやりたいのですが・・・。(レコード削除的) 実際はAテーブルを読み飛ばして処理しないでよいと思うが) データ削除はどのように、して知らせるのか。質問に書いてない。 削除ボタンを作るのか? ーー 「文字列」と言っているのは番号の名前(人名だけでなく商品名など名前らしい)だったらそのような模擬実例を考えて挙げるべきだ。 変に抽象化しないほうが良い。 === 結局、ファイル更新の1セットのVBAの知識が要る課題であって、もっとコード実例でもWEBや本で調べまくり(特にADOのファイル更新プログラム例)、それをいじくってから質問すべきだ。中級以上のレベルだ。 「したい」というだけで、すぐ質問に走り、課題丸投げではないか。

yuji83
質問者

お礼

そうですね。 もっと自分で調べてみます。 一応、 Aテーブル(出来上がっている) データNO 氏名 112    山田太郎 ・・・・ で当たっていて(氏名でなく商品名ですが)、フォームにはテキストボックスの他に削除ボタンと追加ボタンもつける感じです。 処理内容は、フォームのテキストボックスでAテーブル内のデータNoを指定、追加・削除の処理をしたいってことです。分かりにくくてすみません(汗 回答ありがとうございました。

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

書き方は色々ありますが、フォームのコントロールソースを利用する基本的なもので Aテーブルの中身が、データNo(長整数)、テキスト(テキスト) フォームのコントロールソースがAテーブル データNoが入るコントロール名 データNo、テキストが入るコントロール名 テキスト とします。 コマンドボタンのイベント(Click)コードが以下の通り Dim Rs As Recordset Set Rs = Me.Recordset 'フォームのコントロールソースをデータNoで検索 Rs.FindFirst "データNo = " & Me.データNo If Rs.NoMatch Then  '検索の結果が不一致なら新規レコードの追加  Rs.AddNew Else  '検索の結果が一致なら該当レコードの編集  Rs.Edit End If Rs.Fields("データNo") = Me.データNo Rs.Fields("テキスト") = Me.テキスト Rs.Update Set Rs = Nothing Me.テキスト = vbNullString Me.データNo = vbNullString

yuji83
質問者

お礼

理由があって、フォームのコントロールソースは使えないんですよ(汗 とりあえず、自分でなんとか頑張ってみます。 回答ありがとうございました。