Accessのクエリでクロス集計クエリウィザードを使っているといつも、「Nullの使い方が不正です」というエラーメッセージが表示されてしまいます。
こういった場合、どういうところをチェックすればよいのでしょうか?さらにどのような設定にすればよいのでしょうか?教えてください!!お願いします。m(__)m(>_<)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

Access2000の初期版は、ウイザードにバグを抱えています。


バグ修正パッチの、SR-1及びSP-2がリリースされていますので、仰ってる現象が、ウィザードのバグであれば、それを適用するれば直ります。

たしか、Access97でも初期版はウィザードに難があったような… こっちもサービスリリースの適用で解決したと思います。

あるいは、特定のデータをクロス集計しようとするとエラーになるとか?
その場合は、も少し詳しく、どんなテーブルがあって、どのような操作をしたのか、補足をお願いします。

参考URL:http://officeupdate.microsoft.com/japan/
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのクロス集計クエリから、追加クエリをvbaで記述したいが記述が分からない。

Windows7のAccess2007を使っています。
Accessのクロス集計クエリから、追加クエリをvbaで記述したいが記述
が分からない。

vbaを使わなければ、データベースウインドウで最初にクロス集計のク
エリを作って、そのクエリを使って追加クエリを作れば終わりですが。
これと同じ事をvbaで記述をしたいのですが。

出来るのでしょうか。

例として、収穫テーブルとサイズテーブルのクロス集計を作ると仮定し
て下記の構造で作る物とします。
収穫テーブルは下記の構造です。
1. idと言う名前でオートナンバーの型
2. サイズと言う名前で数値の型

サイズテーブルは下記の構造とします。
1. idと言う名前でオートナンバーの型
2. 名前と言うフィールドの名前でテキストの型

収穫のテーブルは下記のデータが入っています。
ID サイズ
1 1
2 2
3 2
4 2
5 1
6 2
7 3

サイズのテーブルは下記のデータが入っています。
ID 名前
1 大
2 中
3 小

リレーションシップは、一側のテーブルがサイズのテーブルで、idを主
キーとします。多側のテーブルは、収穫のテーブルで多側のキーはサイ
ズです。

ここで、クエリ1の名前で
TRANSFORM Count(収穫.ID) AS IDのカウント
SELECT 収穫.ID
FROM サイズ INNER JOIN 収穫 ON サイズ.ID = 収穫.サイズ
GROUP BY 収穫.ID
PIVOT サイズ.名前;

を実行すると、下記が得られます。
ID 小 大 中
1 1
2 1
3 1
4 1
5 1
6 1
7 1

ここで、クエリ1を使って下記のクエリ2を作ります。
INSERT INTO table1
SELECT クエリ1.*
FROM クエリ1;

上記の操作でクエリ1のクロス集計クエリを使って
クエリ2の追加クエリと言う二つの手段で
クロス集計からデータを作る事が出来ます。

この操作をvbaの手法で作る方法は無いのでしょうか。
この例でのコードの記述を宜しくお願いします。

Windows7のAccess2007を使っています。
Accessのクロス集計クエリから、追加クエリをvbaで記述したいが記述
が分からない。

vbaを使わなければ、データベースウインドウで最初にクロス集計のク
エリを作って、そのクエリを使って追加クエリを作れば終わりですが。
これと同じ事をvbaで記述をしたいのですが。

出来るのでしょうか。

例として、収穫テーブルとサイズテーブルのクロス集計を作ると仮定し
て下記の構造で作る物とします。
収穫テーブルは下記の構造です。
1. idと言う名前でオートナ...続きを読む

Aベストアンサー

こちらが参考になるでしょう。
http://www.accessclub.jp/bbs6/0008/das1904.html


おまけ、上記を参考にした
一応動作するコード。

Dim strSQL As String
strSQL = "INSERT INTO table1 " & _
   "SELECT Q.* " & _
   "FROM [" & _
   "TRANSFORM Count(収穫.ID) AS IDのカウント " & _
   "SELECT 収穫.ID " & _
   "FROM サイズ INNER JOIN 収穫 ON サイズ.ID=収穫.サイズ " & _
   "GROUP BY 収穫.ID " & _
   "PIVOT サイズ.名前 " & _
   "IN ('大','中','小')" & _
   "]. As Q"
Debug.Print strSQL
CurrentDb.Execute strSQL

QAccess クロス集計クエリについて

お世話になります。

クロス集計クエリの結果が以下の内容になっているとします。

項目   2013年10月  2014年07月  2014年08月  2014年09月
商品数  100        150       120        130
顧客数  2000       2200      2100       2200
※2013年11月~2014年6月までのデータ無し

上記クエリで、データの無い期間の商品数及び顧客数を0とし、また見出しも
埋めたいところです。

項目   2013年10月  2013年11月 ・・・2014年08月  2014年09月
商品数  100        0         120        130
顧客数  2000       0         2100       2200

このように表示したい場合、やはり元データにレコードを作成し各数量は0で
登録しなければなりませんでしょうか。
それとも、実際にレコードが無くても、上記表示は可能でしょうか。

************
当該クエリの内容は最終的にExcelファイルに貼り付けします。
現状、左詰めで貼り付けられてしまう為、可能であれば1年分の
体裁を整えた状態で貼り付けしたいところです。


ご教示の程、宜しくお願い致します。

お世話になります。

クロス集計クエリの結果が以下の内容になっているとします。

項目   2013年10月  2014年07月  2014年08月  2014年09月
商品数  100        150       120        130
顧客数  2000       2200      2100       2200
※2013年11月~2014年6月までのデータ無し

上記クエリで、データの無い期間の商品数及び顧客数を0とし、また見出しも
埋めたいところです。

項目   2013年10月  2013年11月 ・・・2014年08月  2014年09月
...続きを読む

Aベストアンサー

【補足の補足】

色々とテストした結果、列[年月]がテキスト型の場合には、In句が自動生成されませんね。日付型ですと、自動生成されるのですが・・・。

PIVOT [年月日] In ("2014年01月","2014年02月","2014年03月","2014年04月","2014年05月");

そして、テキスト型に限っては、このような書き方でも「型の不一致エラー」はでないようです。

In句を自動生成させるのか否か?

ちょっと、検討事項かもしれませんね。

Qアクセス2010 クロス集計クエリの列見出し

お世話になります。
クロス集計クエリの列見出しが、商品名にできずにコードになってしまいます!

先日こちらで、列見出しがコードの場合はクエリ列見出しに商品名で固定しようとしても空白になることを教えて頂きました。

ですが、列見出しがコードのままだと都合が悪い為、どうしても列見出しを商品名にしたくて考えているのですが、どうしてもできません・・

テーブル『販売実績』 フィールド[ID][販売日]・[店舗]・[担当者]
テーブル 『販売明細』 フィールド[ID]・[販売実績ID]・[部門]・[商品名]・[商品カラー]・[販売金額]・[販売本数のカウント]
という二つのテーブルから[販売明細]をサブフォームにするフォームを作ってそこから入力ができるようにしています。(クエリもこの2つのテーブルから作って、クロス集計にしています。)

フォームの[部門]・[商品名]・[商品カラー]はコンボボックスから選択できるようにしており、まず部門を選択するとそれに伴って商品名が絞り込まれて、さらに商品名から商品カラーが絞り込まれるようなコンボボックスにしています。

ここで、コンボボックスの商品名を、商品IDではなく商品名でテーブルに取得したいと思い、(それができれば列見出しも商品名にできると思い)、連結列を2にしてみると、テーブルには商品名で入ったんですが、今度はフォームの絞り込みのコンボボックスが使えなくなりました。

部門から商品名の絞り込みはできるんですが、商品名から商品カラーの絞り込みができなくなりました。
多分連結列を2にしたので、コンボボックスの値がIDから商品名になった為にIDで抽出していたものができなくなった為だと思うんですが、どうにかできないものかと考えているんですがどうにもできません。

この列見出しに商品名を持ってくるということだけで、かなり時間を食ってしまいました。
何か解決策ありましたらご教授ください。

宜しくお願いします。
何分初心者なもので、説明が的外れでしたら申し訳ありません。

お世話になります。
クロス集計クエリの列見出しが、商品名にできずにコードになってしまいます!

先日こちらで、列見出しがコードの場合はクエリ列見出しに商品名で固定しようとしても空白になることを教えて頂きました。

ですが、列見出しがコードのままだと都合が悪い為、どうしても列見出しを商品名にしたくて考えているのですが、どうしてもできません・・

テーブル『販売実績』 フィールド[ID][販売日]・[店舗]・[担当者]
テーブル 『販売明細』 フィールド[ID]・[販売実績ID]・[部門]・[商品...続きを読む

Aベストアンサー

今は列見出しが商品IDになってると思います。そのフィールド名は変更できますので、そこを商品名にしてみてください。
おそらく、それでいけると思います。

Qクロス集計クエリで・・・

Windows2000/Access2000を使用してます。
クロス集計クエリで質問です。
支店別で車種別の件数を登録月ごとに出したいのですが、そのような設定は出来るのでしょうか?
抽出条件をどのように設定したらイイのか分かりません。
宜しくお願いします。

Aベストアンサー

クロス集計のイメージは分かりました。
やって出来なくはないのですが、クエリがひどく複雑になります。こういった作業はExcelなどの表計算ソフトでやった方が良いのではないでしょうか。
また、データベースソフトを使用するにしても、最終行に合計値を持ってくるところなどは、フォームなりの機能を使った方が簡単です。
ともあれクエリを使って出きる所までやってみました。
以下のようにクエリ0から5までをつくると、クエリ5が目的のようになるかと思います。
クエリ0に表示したい月と年を書きこみます。
クエリ4に支店名が全部並んでいて、あまり綺麗ではないのですが、私の思いつくのはこのへんまでです。

クエリ0
SELECT * FROM テーブル1 WHERE 登録月=8 AND 登録年=2002

*クエリ1
TRANSFORM Count([登録月])
SELECT [車種]
FROM クエリ0
GROUP BY [車種]
PIVOT [支店];

*クエリ2
SELECT 車種, Count(登録月) AS 件数
FROM クエリ0
GROUP BY 車種;

*クエリ3
SELECT クエリー1.*, クエリー2.件数
FROM クエリー1 LEFT JOIN クエリー2 ON クエリー1.車種 = クエリー2.車種;

*クエリ4
SELECT "件数", Sum([支店名A]), Sum([支店名B]), Sum([支店名C]), Sum([件数])
FROM クエリ3;

*クエリ5
SELECT * From クエリ3 UNION SELECT * From クエリ4;

クロス集計のイメージは分かりました。
やって出来なくはないのですが、クエリがひどく複雑になります。こういった作業はExcelなどの表計算ソフトでやった方が良いのではないでしょうか。
また、データベースソフトを使用するにしても、最終行に合計値を持ってくるところなどは、フォームなりの機能を使った方が簡単です。
ともあれクエリを使って出きる所までやってみました。
以下のようにクエリ0から5までをつくると、クエリ5が目的のようになるかと思います。
クエリ0に表示したい月と年を書きこみます。...続きを読む

Qクロス集計クエリの最後のデータについて

初めて質問いたします。
デザインビューの程度ですが、よろしくお願いいたします。

クエリで以下のようにデータが並んでいます。フィールド1のデータごとに年月昇順ソート

フィールド1 フィールド2 フィールド3 フィールド4
111    1200   あああ    年月
111    1500   あああ    年月
111    1000   いいい    年月

これをクロス集計クエリでフィールド1でグループ化してフィールド2の合計をしています。
フィールド3のデータは、最後の「いいい」を持って来たいので、最後と指定しています。
ところが、どうも「いいい」を持ってくることができず、「あああ」を持ってきているようなのです。
クエリの並びが集計クエリにすると変わるのでしょうか?
集計クエリの最後というのは、どのように考えれば良いのでしょうか?
よろしくお願いいたします。m(._.*)mペコッ

Aベストアンサー

No.3の続きです。
 解決方法2のやり方を試されたということは、前任の方のクエリーを修正されたのですね?
 前任の方のクエリーを修正してよいのなら、No.1のやり方でできると思うのですが…
 即ち、年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値を取得すればよいのではないでしょうか?
 年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値においては、年月が最大になるはずですので。


人気Q&Aランキング

おすすめ情報