TOP > Microsoft Office Users Forum
[リストへもどる]
一括表示
タイトルAccess2007 クエリでのフィールド型の設定
記事No46
投稿日: 2011/04/27(Wed) 15:00
投稿者るしあ
Access2007で、テーブル作成クエリで、作成されたテーブルの型を数値型に設定したいのですが、

http://www.wanichan.com/pc/access/faq/03.htm

上記の通り、クエリの抽出条件に「Val([フィールド名])で設定してクエリを実行したのですが、作成されたテーブルのフィールドはテキスト型になってしまいます。
フィールドの値は整数です。

データ型の設定がうまくいかない原因はなんでしょうか?
教えて頂けますとありがたいです。

タイトルRe: Access2007 クエリでのフィールド型の設定
記事No47
投稿日: 2011/04/27(Wed) 15:37
投稿者アイライト
参照先http://www.ailight.jp
こんにちは、るしあさん

こちらで、確認したところ(Access2007)
Valを付けたフィールドの型は、倍精度浮動小数点になるみたいです。

で、一度確認をしてもらいたいのですが、
「データベース ツール」のタブにある「データベース構造の解析」をクリックしてください。
そこで、対象となるクエリーを選んでもらって、OKを押してください

すると、見辛い帳票が出ます(笑)
設定がデフォルトだと、帳票の真ん中辺にボールドされた字で、「フィールド」ってのが
あります。

その下に、「フィールド名」と右には「データ型」とタイトルがあります。
ここから下に見ていきます。
御自分でつけられた名前が、フィールド名の列にあるかと思います。
それを右に辿ると、型が出てきますので、そちらを確認してください。

もしその方が、テキスト型となっているとしたら、
クエリーの作り方に問題がある用に思います。

もしよかったら、調べてみてください。

タイトルRe^2: Access2007 クエリでのフィールド型の設定
記事No48
投稿日: 2011/04/27(Wed) 16:59
投稿者るしあ
アイライトさん、

返信ありがとうございます。

見づらい帳票(笑)なのですが、クエリの帳票には「フィールド」の項目はありませんでした。

色々四苦八苦してみたのですが、フィールド欄に「Val([フィールド名])」と書けば数値型に変換できることがわかりました。

ただ、たとえば「シリアル番号」というフィールド名だったとすると、「シリアル番号:Val([シリアル番号])」とすると循環参照になってしまい、フィールド名を元のフィールド名から変更せざるを得ないのが難点です。

タイトルRe: Access2007 クエリでのフィールド型の設定
記事No49
投稿日: 2011/04/28(Thu) 00:31
投稿者シムリー
テキスト型で数値が登録されているフィールドを f1 とすると
テーブル作成クエリで、フィールド名には f2:val([f1]) とします。(f2は演算型の新たなフィールド名です)
もし、どうしてもフィールド名がもとの f1 でないとまずい場合は
テーブル作成後に、フィールド名を変えればいいのじゃないかと思います。
数値変換した結果をどう使いたいか分かりませんが、新たなテーブルを作らなくても
選択クエリで、テキスト型の f1 と、数値型の f2:val([f1]) を取り出すことで
解決するんじゃないかなぁと、思ったり....します。

抽出条件では、整数値と同じ文字を、文字として取り出すに過ぎませんから
データ型は文字のままで数値型にキャストされません。
valもしくはint関数で数値型にキャストする必要がありますね。