dポイントプレゼントキャンペーン実施中!

アクセスで、テーブル左列の文字が しお とあれば、その右列に 1 が入力されるようにしたいです。
具体的に添付ファイルのデータを例に説明します。

材料の列に、しお とあれば、結果の列に 1 が自動的にでるようにしたいです。
結果の列に、どのような関数をいれたらよいか、教えて下さい。

よろしくお願いします。

「アクセスで、テーブル左列の文字が しお 」の質問画像

A 回答 (1件)

幾つか考えられるパターンがあると思います。



(1) クエリを使う
「しお」の場合は絶対に「1」になるのなら、何もテーブルに「1」を持たなくてもクエリを使用すれば良いです。
テーブルを元にクエリを作成して、「フィールド」行に
結果 : iif([材料]="しお",1,0)
と記入します。

(2) フォームを使う
一般的に、データを登録したり変更したりする際は、直接テーブルを編集するのではなく、テーブルを元にしたフォームを作り、そこにいろいろな機能を持たせます。
「作成」-「フォームウィザード」を使用すれば簡単にそれっぽいフォームを作れます。
作成後、フォームのデザインビューを開き、「材料」のテキストボックスの「更新後処理」イベントで[イベント プロシージャ]を選択。
表示された画面に

Private Sub 材料_AfterUpdate()

If Me.材料 = "しお" Then
Me.結果 = 1
End If

End Sub

と書けばOKです。

(3) データマクロを使う
クエリやフォームを使いたくない。どうしてもテーブルだけでなんとかしたい。という場合は、テーブルに「データマクロ」をつける方法もあります。
テーブルデザインを開き、「デザイン」-「データマクロの作成」-「変更前」。
新しいアクションの追加で「If」を選択。入力欄に以下を入力。
([材料]<>[Old].[材料] Or [Old].[材料] Is Null) And [材料]="しお"
その下の新しいアクションの追加で「フィールドの設定」を選択。「名前」に「結果」、値に「1」と入力。
これで、「しお」と入力して「別の行に移動した時に」値が入ると思います。
フォームと違って、「しお」と入力したすぐ後に値が入るわけではありません。


「どのような関数を」と書いてらっしゃる感じからして、Excel感覚なのかな?と思いますが、Accessのテーブルはあくまでもデータの器であって、細かいことをするには、フォームやクエリが必須になります。
    • good
    • 1
この回答へのお礼

ありがとう

できました! 
おかげさまで、(1) クエリを使う デビューです。
ありがとうございました。

お礼日時:2020/04/21 20:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!