Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Access 2010)
空白の時のデータコピー
投稿日時: 18/05/10 15:30:04
投稿者: seint-takemaru

いつもお世話になっております。
 
同一テーブルの中に、フィールド1〜3の3つのフィールド存在します。
クエリを実行し、フィールド1の値が空白だった場合に、フィールド2
のデータをフィールド2に置き換える方法が知りたいです。
 
Access初心者でお恥ずかしい質問ですが、ご教示お願いします。
 
 
 

回答
投稿日時: 18/05/10 15:36:00
投稿者: sk

引用:
同一テーブルの中に、フィールド1〜3の3つのフィールド存在します。
クエリを実行し、フィールド1の値が空白だった場合に、フィールド2
のデータをフィールド2に置き換える方法が知りたいです。

結果として何も変わらないのでは。
 
仮に「あるテーブルから[フィールド1]の値が Null であるレコードを抽出し、
それらの[フィールド1]の値を[フィールド2]と同じ値に更新する」
場合は、更新クエリを使用なさればよろしいかと。

回答
投稿日時: 18/05/10 16:48:03
投稿者: Suzu

テーブルとして更新が必要でしょうか。
 
必要となる場合には、クエリにて関数を使用し別の列の値を参照する事が可能です。
=IIF(IsNull([フィールド2]),[フィールド1],[フィールド2])
 
 
ご質問の内容とは変わってしまいますが
フォームの入力時に、フィールド2 の既定値を、フィールド1 に入力した値にしてしまう事も可能です。
 
コントロール名  コントロールソース
ctl1         フィールド1
ctl2         フィールド2
 
として、VBAなら
 
Private Sub ctl1_AfterUpDate()
  'ctl1 の値が 空白以外の時
  If Not Is Null(ctl1) Then
    'ctl2 の既定値プロパティーに、ctl1の値を代入
    Me.ctl2.DefaultValue = Me.ctl1.Value
  End If
End If

投稿日時: 18/05/10 17:16:29
投稿者: seint-takemaru

返信、ありがとうございます。
 
質問の内容が誤っていました。申し訳ございません。
 
正しくは、
同一テーブルの中に、フィールド1〜3の3つのフィールド存在します。
クエリを実行し、フィールド1の値が空白だった場合に、フィールド2
のデータをフィールド1に置き換える方法が知りたいです。
 
よろしくお願いいたします。

回答
投稿日時: 18/05/10 17:29:44
投稿者: sk

引用:
同一テーブルの中に、フィールド1〜3の3つのフィールド存在します。
クエリを実行し、フィールド1の値が空白だった場合に、フィールド2
のデータをフィールド1に置き換える

ならば既にお答えした通り、そういう処理を実行する
更新クエリを作成、実行なさればよろしいでしょう。
 
Office サポート より:
https://support.office.com/ja-jp/article/%E6%9B%B4%E6%96%B0%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B-9dddc97c-f17d-43f4-a729-35e5ee1e0514
 
( SQL ビュー)
---------------------------------------------------------------------
UPDATE [テーブル名]
SET [テーブル名].[フィールド1] = [テーブル名].[フィールド2]
WHERE [テーブル名].[フィールド1] Is Null;
---------------------------------------------------------------------

投稿日時: 18/05/11 10:42:52
投稿者: seint-takemaru

Skさん、Suzuさん、ありがとうございました。
 
 Skさんに教えていただきました更新クエリ作成にて、解決しました。
 ありがとうございました。