質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

2598閲覧

Access 列フィールドの空白を左詰め

退会済みユーザー

退会済みユーザー

総合スコア0

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/10/27 14:41

Accessのテーブルで列フィールドに空白がある場合、左詰めにしたいのですが、そのようなことは可能でしょうか。

ID 区分1 区分2 区分3
001 aaaa bbbb Null
002 aaaa Null bbbb
003 aaaa Null Null
004 Null aaaa bbbb

↓このように区分フィールドの中で左詰めしたいです。
ID 区分1 区分2 区分3
001 aaaa bbbb
002 aaaa bbbb
003 aaaa
004 aaaa bbbb

エクセルではVBAで作業しているのですが、Accessでも可能か調べています。
ご教授頂けますでしょうか。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

希望通りに更新するなら、基本iif()で判定します。
Nz()は簡易判定ができるので、組み合わせるとそれなりにシンプルにはなります。
以下をSQLビューで張り付けて、デザインビューで確認してみて下さい。

SQL

1UPDATE テーブル1 SET 2 区分1 = Nz([区分1],Nz([区分2],[区分3])) 3, 区分2 = iif([区分1] is Null,[区分3],Nz([区分2],[区分3])) 4, 区分3 = iif([区分1] is Null or [区分2] is null,Null,[区分3]);

正規化するにしても、上記の対応を行ってからですね。

投稿2020/10/27 15:36

編集2020/10/28 00:02
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/18 10:54

返事が遅くなり申し訳ございません。有難うございます。 正規化してから参考にしてみます。
guest

0

ベストアンサー

更新クエリかVBAを使えば可能ではありますが、データベースとしては正規化されていない形なので正規化すべきです。正規化されていないデータではデータベースの機能や性能を活かすことでできません。

例示のデータを正規化すると下記のようになります。

ID区分
001aaaa
001bbbb
002aaaa
002bbbb
003aaaa
004aaaa
004bbbb

上記のように変換するには下記のSQLで可能です。

sql

1SELECT ID, 区分1 AS 区分 FROM テーブル名 WHERE Not 区分1 Is Null 2UNION ALL 3SELECT ID, 区分2 AS 区分 FROM テーブル名 WHERE Not 区分2 Is Null 4UNION ALL 5SELECT ID, 区分3 AS 区分 FROM テーブル名 WHERE Not 区分3 Is Null;

上記のクエリをテーブル作成クエリにして実行すれば正規化されたテーブルになります。

データベースでは正規化は必須事項なのでしっかり理解してからテーブル設計をすべきです。
書籍で学習するか、「テーブル 正規化」をキーワードにWEB検索すればいろいろ見つかります。

例えば、下記はACCESSで説明しているので分かりやすいかも。

正規化とは - もう一度学ぶMS-Access

Access データベースの正規化 講座 Vol.1 | パソコン生活サポートPasonal

投稿2020/10/27 15:12

編集2020/10/27 15:19
hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/18 10:55

返信が遅くなり申し訳ございませんでした。 正規化するテーブル作成クエリを参考にしてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問