• 締切済み

パラメーターが少なすぎます 1を指定してください

excel2003とaccess2003を使用しています。(OSはXPです) accessのデータベース上でで作成したクエリを、excelで作成したワークシートにインポート(クエリウィザードを使って)しています。 ところが、accessできちんと表示されるクエリが、同じようにインポートしようとしたら、「パラメーターが少なすぎます 1を指定してください」とでてインポートできません。 今までは、access上のデザインビューでクエリを作成していましたが、データ処理上、ユニオンクエリを使用したものにしたものがあります。それが、上述のエラーが出力されます。 クエリに間違いがあるのならエラーが出るのもうなずけますが、accessできちんと表示されるクエリであるため、どうしたらいいか思案しています。 D_販売というデータベースのテーブルに、職員コード、所属コード、販売個数、引受・販売、売上年月日、という項目があります。 職員コードは半角1~8桁、所属コードは半角2桁(固定)のデータが入っています。 従来は職員コード、所属コードそれぞれで実績を出力していましたが、それを1つのクエリで処理しなければならなくなりました。幸運にも職員コードで3桁の社員がいませんでしたので、所属コードに+100して3桁化し、処理しようとしました。 それで作ったのが以下のSQLです。 SELECT D_販売.職員コード, Sum(D_販売.販売個数) AS カタログデータ FROM D_販売 WHERE (((D_販売.引受・販売)="カタログデータ") AND ((D_販売.売上年月日)>=#4/1/2012# And (D_販売.売上年月日)<=#3/31/2013#)) GROUP BY D_販売.職員コード UNION SELECT 100+[所属コード] AS 職員コード, Sum(D_販売.販売個数) AS カタログデータ FROM D_販売 WHERE (((D_販売.引受・販売)="カタログデータ") AND ((D_販売.売上年月日)>=#4/1/2012# And (D_販売.売上年月日)<=#3/31/2013#)) GROUP BY 100+[所属コード]; どうぞよろしくお願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

困りましたね。。。 Excel限定、VBA不可だと 正面突破しかなさそうですが、分かりません。 ユニオンクエリだとダメなのか・・を WinXP + Access2002 で試しましたが再現できませんでした。 あと考えられるのは、 更新の頻度が少なければテーブルに書き出して それをExcelから・・位です。 力不足ですみません。

yumerin_house
質問者

お礼

いろいろご検討くださりありがとうございました。 単純に読み込ますだけなんですが、こんなに苦労したのは初めてです。 何かいい方法があればいいのですが・・・

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

安直な案ですが、AccessでExcel形式でエクスポートしてはいかが? なお、UNIONだと重複を排除する処理が含まれますのでその分遅くなります。 UNION ALL ではマズイですかね。 蛇足かもしれませんが、こういう方法もあります。 Excel 97、Excel 2000、Excel 2002、Excel 2003 および Excel 2007 に 含まれる CopyFromRecordset メソッドを使用すると、レコードセットを特定の範囲に転送することができます http://support.microsoft.com/kb/246335/ja

yumerin_house
質問者

お礼

ご回答ありがとうございます。 エクセル形式でエクスポートする方法は試してみました。ですが、実際に使用するのはアクセスが使えない上司が、エクセルを閲覧して社員の実績を管理するといった使用方法なのです。そのため、開いたときに自動的に実績を取り込みたい、という要望があります。通常のデザインビューで作成したものは普通に開けるため、悩んでおります。 UNION ALLについては、調べているうちにそのほうが処理が早いことがわかり、結合するクエリは重複が含まれていないことが確実なので、いまはALLをつけています。 ですがインポートできないことには代わりないです。 CopyFromRecordset メソッドというのがあるのは初めて知りました。ですが今回はマクロを使っていないため、対象外とさせてください(会社のセキュリティポリシーで、マクロを使用したものは許可が要るのので面倒なのです。)。 引き続き、よろしくお願いします。

関連するQ&A

  • パラメータ設定で疑問

    Access2000を使っています。売り上げの集計クエリを作りたくて、売上日のフィールドにWhere条件・抽出条件にBetween演算でパラメータを設定してクエリを実行したところ、「データ型が一致しません」というようなエラーメッセージが出てクエリの実行ができませんでした。 抽出条件をよく見たら、Between [開始年月日] AND [終了年月日]と入力したところが、Between "[開始年月日] AND [終了年月日]"となっていました。 抽出条件を何度入力し直してもクエリが実行できず、抽出条件の表示も変わってしまうのですが、原因も対処の仕方もわからず困っています。このような現象について、どなたかお解かりの方がいらしたら、原因・解決方法をご教授ください。

  • Access データ合算について

    Accessの初心者です。 Accessで毎月のPOSデータ(売上データ)を管理しています。月別にテーブル保存しているのですが、そのデータを合算するにはどう操作したらよろしいのでしょうか。 テーブルには1年間(4月~3月)が月ごとに保存されています。合算させたいのは「JANコード」の13ケタです。このJANコードが一致したデータの個数と売上を合算させたいのです。データ量は1ヶ月につき25万件(アイテム)あります。ExcelはちょっとできるのでExcelでの処理なら思いつくのですが、なんせデータ量が多くて全てを読み込むことが出来ないのです。 データは左から 「ID」「JANコード」「品名」「個数」「売上」 となっています。 初心者なものですから、質問が足りなかったら申し訳ありません。どうぞよろしくお願い致します。

  • Accessのデータの作り方を教えてください。

    Accessでデータが思ったように作れないので、教えていただけないでしょうか。 Excelのデータをテーブルにインポート: 縦(列)に「店コード」が1~10まであり、次の列に「店名」があります。その次の列に、商品Aの売り上げ個数が各店に対応してあります。 次の列には商品B、商品C、商品Dまであります。 その商品の単価が、例えば、商品A:¥100 商品B:¥150               商品C:¥200 商品D:¥250 とします。 そのデータをクエリで、 各店のそれぞれの商品の売り上げ個数×商品の値段 というかたりで、買う点のそれぞれの商品の売り上げの値段だけを 表示させたいのですが、できません。 どなたか教えていただけないでしょうか?

  • パラメータクエリのエラーメッセージについて

    Access2003を使用しています。 テーブル作成クエリで、フィールドの抽出条件に Between[開始日]And[終了日] を設定し、もう一つ別のフィールドに、 [所属部署を入力] という所属コード抽出の条件が設定してあります。 今までは、「開始日」「終了日」「所属部署の番号」を入力すれば 条件通りのデータが出力されていたのですが、 「抽出条件でデータ型が一致しません。」 というエラーメッセージが表示され、データが出力できなくなってしまいました。 (過去に出力できていたデータもできなくなってしまいました) 変更したものといったら、もととなるテーブルの社員のデータを ファイル→外部データの取り込み→インポート で最新の情報に更新したくらいで、 他のデータは一切いじってはいません。 また、社員の役職によって表示できる人とできない人がいるようで、 それもなぜそうなるのかわかりません。 Access初心者で、全く理由がわからず困っています。 これだけの情報ではわかりにくいかもしれませんが、 考えられる理由などおわかりになる方がいらっしゃいましたら よろしくお願い致します。

  • パラメータークエリの抽出ができません

    アクセスで、抽出条件に「>=[いつから] And <=[いつまで]」と日付の範囲指定をしてデータを抽出するクエリを作りましたが、表示されるパラメータに日付を入力して実行してもすべてのデータが表示されてしまいます。 どうしてでしょうか?

  • ACCESS まとめて表示するクエリについて

    商品の売上データ・仕入データが個別にあります。 商品には大中小の分類があり、各分類は2ケタのコードです。つまり、 (1) 大分類/中分類/小分類/仕入金額 01/02/05/1,000 という構成のデータと (2) 大分類/中分類/小分類/売上金額 01/02/05/1,250 という構成のデータとがあるわけです。この2つをExcelデータで持ってて、データが大量なのでAccessに取り込み、最終的には 大分類/中分類/小分類/仕入金額/売上金額 01/02/05/1,000/1,250 というように、仕入金額と売上金額を一纏めにして表示したいのです。 ここで、上記(1)を仕入テーブル、(2)を売上テーブルとし、 SELECT 大分類,中分類,小分類,仕入金額,売上金額 FROM 仕入,売上 WHERE 仕入.大分類=売上.大分類 AND 仕入.中分類=売上.中分類 AND 仕入.小分類=売上.小分類 とクエリを作ってみたら、各テーブルのデータが数千件になっただけで、物凄くクエリの動きが遅くなりました。 大中小分類の一致を、WHEREでなくINNER JOINで記述してみても、遅くなります。 最初のテーブル作成からして、間違ってるでしょうか?いい案はないでしょうか?

  • クエリでのデータ更新について

    ACCESS2000で更新クエリの質問です。 フィールドの値の合計、カウントなどの集計値を計算するクエリから取り出された値を、更新クエリでデータを更新したいのですが、 「更新可能なクエリでありません」とエラーがでます。 LOOPする方法もあるのですが、できればクエリで一括更新したいと思います。 どなたかご教授お願いします。 やりたいことは下記のとおりです。Aテーブルを集計しBテーブルの個数にAテーブルの個数の合計値を更新する。 <Aテーブル> コード  個数 1     1 1     2 1     3 2     4 2     4 3     5 3     6 <Bテーブル> コード  個数 1      2      3    ↓↓↓更新後 <結果:Bテーブル>   コード  個数 1     6 2     8 3     11

  • accessで対象データの抽出を行うクエリを作成しています。データ範囲

    accessで対象データの抽出を行うクエリを作成しています。データ範囲 0~1000 等で抽出したいのですが、元のデータは、 01 、 854、 0854 、0001 等、まちまちであり、 between 0 and 1000で指定すると、01 や 854 が抽出されません。 どのようにしたらよいでしょうか?  あるいは元のデータの桁を4桁にあわせればよいと思うのですが、どのようにして4桁に合わせればよいのでしょうか?  よい方法を教えていただきたいです。

  • access2003のクエリの条件指定について質問です

    コード(7桁)、単価、数量、金額、日付(年月日6桁表示)のテーブルと コード、部門コード(コードの上3桁)の選択クエリと 部門コード、部門名称のテーブルを結合して コード_部門(コードの上3桁)、コード_追番(コードの下4桁)、部門名称、単価、数量、金額、日付_年(日付の分割・2桁)、日付_月(日付の分割・2桁)、日付_日(日付の分割・2桁)、を他のテーブルに抽出する追加クエリを作成し、条件として部門コードに対応する部門名称が無い場合そのフィールドは空白でレコード自体は表示するようにしたいのですが、どうすれば良いのでしょうか? いくらやっても対応する部門名称が無い場合、抽出されずにレコード自体が表示されなくなってしまいます。 拙い文章で上手く内容が伝わらないかもしれませんが、どなたかご教授下さい。

  • アクセスのNZ関数のことで教えて頂きたいです。

    アクセスのNZ関数のことで教えて頂きたいです。 アクセス2000です。クエリで 売上日計: nz([売上計],0) というフィールドにプロパティ書式で#,###を入れましたがそうなりません。そのクエリの [売上計]に同じことをしましたら出来ました。 桁数が多いので、桁区切りを入れたいのですが、何か方法があるのでしょうか。 よろしくお願いします。

専門家に質問してみよう