プロが教えるわが家の防犯対策術!

テーブル作成クエリの抽出条件について
テーブルAとテーブルBを使って、テーブル作成クエリを作ろうとしています(テーブルC)

その際、ある1つの項目に文字数指定する抽出条件を設定したいのです

ひっぱってきたその項目のデータは、全て50文字以上あるのですが
それを最大36文字に設定して、それ以降の文字は「切り捨て」にした形で
テーブルCを作成したいのです。
この場合の抽出条件はどのように入力すればよいのでしょうか??

どなたか親切な方、教えて下さい。
また、質問内容に不備がありましたらご指摘をお願いします。

A 回答 (2件)

> この場合の抽出条件はどのように入力すればよいのでしょうか??



作成するテーブルの『フィールドサイズ』を36文字に設定したい、
ということだと、クエリのデザインビューが使えない分、難易度が
上がりますが、テーブルに実際に保存されるデータとしての
最大文字数が36文字になっていればいい、ということでしたら、
それほど面倒ではありません。

まず、50文字以上あるフィールドをそのまま転記する形のテーブル
作成クエリを作成してください。

そうしたら、そのフィールドを、以下のように変更すればOKです
(対象がテーブルAの『コメント』フィールドの場合):

<修正前>
『フィールド:』欄: コメント
『テーブル:』 欄: テーブルA

<修正後>
『フィールド:』欄: コメント: Left([テーブルA].[コメント], 36)
『テーブル:』 欄: (空白にします)


・・・以上です。


【余談】
もしも「フィールドサイズとして設定したい」という場合は、SQL文
(Create Tableステートメント)を記述することになります:
http://office.microsoft.com/ja-jp/access/HP01032 …

これだと恐らく一気にハードルが高くなると思います(汗)

どうしても「フィールドサイズを設定しつつ、クエリで対応したい」
という場合は、以下のような方法もあります:

1)上述のテーブル作成クエリ(Left関数を使用)で、テーブルを作成
 (クエリも一旦保存しておく)
2)作成したテーブルをデザインビューで開いてフィールドサイズ
 などを設定
3)テーブル作成クエリをデザインビューで開いたら、これを追加
 クエリに変更して保存
 (テーブル作成クエリを指定したのと同じメニュー/ツールバーに
  追加クエリを指定する項目があります)
 ※追加先は、そのままテーブルCを指定しておきます
4)新規クエリをデザインビューで開く
 (『テーブルの追加』ダイアログではテーブルCを追加)
5)削除クエリを指定して、保存
 (フィールドは何も指定しなくてもOKですが、気になるようなら
  テーブルのフィールド一覧の一番上にある「*」を指定します)

・・・以上です。

これで、テーブル作成クエリを実行する代わりに、1)削除クエリ、
2)追加クエリ、の順で実行すれば、実質的に同じ結果が得られます。

テーブルの構造自体は変化しないまま保持されるため、主キーなど
を設定すればそれらも維持される分、テーブル作成クエリよりも
便利だと思いますので、合わせて参考まで。
    • good
    • 0

LEFT(対象文字列、抜き取りたい文字数)という関数があります。



テーブル作成クエリのある項目で、
フィールドC:LEFT(フィールドA、フィールドB)
フィールドAからフィールドBで指定した文字数分左側から抜き取ってフィールドCとする。フィールドBには数値(=36)。

抽出条件では
「LIKE ”XX”+* ~ 」を使えばあいまい検索条件となります。
先頭が”XX”と一致するもののみ抽出とかできます。

それともここで「=フィールドC」とするか、でしょうか・・・・。

この回答への補足

すみません。
Accessの質問です

補足日時:2010/05/27 09:04
    • good
    • 0

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