- ベストアンサー
テーブル作成クエリの抽出条件について
テーブル作成クエリの抽出条件について テーブルAとテーブルBを使って、テーブル作成クエリを作ろうとしています(テーブルC) その際、ある1つの項目に文字数指定する抽出条件を設定したいのです ひっぱってきたその項目のデータは、全て50文字以上あるのですが それを最大36文字に設定して、それ以降の文字は「切り捨て」にした形で テーブルCを作成したいのです。 この場合の抽出条件はどのように入力すればよいのでしょうか?? どなたか親切な方、教えて下さい。 また、質問内容に不備がありましたらご指摘をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> この場合の抽出条件はどのように入力すればよいのでしょうか?? 作成するテーブルの『フィールドサイズ』を36文字に設定したい、 ということだと、クエリのデザインビューが使えない分、難易度が 上がりますが、テーブルに実際に保存されるデータとしての 最大文字数が36文字になっていればいい、ということでしたら、 それほど面倒ではありません。 まず、50文字以上あるフィールドをそのまま転記する形のテーブル 作成クエリを作成してください。 そうしたら、そのフィールドを、以下のように変更すればOKです (対象がテーブルAの『コメント』フィールドの場合): <修正前> 『フィールド:』欄: コメント 『テーブル:』 欄: テーブルA <修正後> 『フィールド:』欄: コメント: Left([テーブルA].[コメント], 36) 『テーブル:』 欄: (空白にします) ・・・以上です。 【余談】 もしも「フィールドサイズとして設定したい」という場合は、SQL文 (Create Tableステートメント)を記述することになります: http://office.microsoft.com/ja-jp/access/HP010322201041.aspx?pid=CH010410161041 これだと恐らく一気にハードルが高くなると思います(汗) どうしても「フィールドサイズを設定しつつ、クエリで対応したい」 という場合は、以下のような方法もあります: 1)上述のテーブル作成クエリ(Left関数を使用)で、テーブルを作成 (クエリも一旦保存しておく) 2)作成したテーブルをデザインビューで開いてフィールドサイズ などを設定 3)テーブル作成クエリをデザインビューで開いたら、これを追加 クエリに変更して保存 (テーブル作成クエリを指定したのと同じメニュー/ツールバーに 追加クエリを指定する項目があります) ※追加先は、そのままテーブルCを指定しておきます 4)新規クエリをデザインビューで開く (『テーブルの追加』ダイアログではテーブルCを追加) 5)削除クエリを指定して、保存 (フィールドは何も指定しなくてもOKですが、気になるようなら テーブルのフィールド一覧の一番上にある「*」を指定します) ・・・以上です。 これで、テーブル作成クエリを実行する代わりに、1)削除クエリ、 2)追加クエリ、の順で実行すれば、実質的に同じ結果が得られます。 テーブルの構造自体は変化しないまま保持されるため、主キーなど を設定すればそれらも維持される分、テーブル作成クエリよりも 便利だと思いますので、合わせて参考まで。
その他の回答 (1)
- layy
- ベストアンサー率23% (292/1222)
LEFT(対象文字列、抜き取りたい文字数)という関数があります。 テーブル作成クエリのある項目で、 フィールドC:LEFT(フィールドA、フィールドB) フィールドAからフィールドBで指定した文字数分左側から抜き取ってフィールドCとする。フィールドBには数値(=36)。 抽出条件では 「LIKE ”XX”+* ~ 」を使えばあいまい検索条件となります。 先頭が”XX”と一致するもののみ抽出とかできます。 それともここで「=フィールドC」とするか、でしょうか・・・・。
補足
すみません。 Accessの質問です