• 締切済み

ExcelとAccessをODBC接続でエラー

Access2000とExcel2000で構成しています。 Accessのフォームに日付を入力してもらい、クエリーで拾って表示しようとしたら、うまく拾えませんでした。そこで、クエリーの項目に「日付: "" & [Forms]![F_登録]![日付] & ""」と設定をしたら、うまくクエリーの結果に反映しました。 この結果を、Excelのピポットテーブルで集計しようとしたのですが、 [Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。 というエラーが出てピポットテーブルが更新できませんでした。 Accessの項目を「日付:date()」に変更すると、Excelのピポットテーブルは更新できます。 フォームから日付を引っ張ることにより、なぜピポットテーブルが更新できないのでしょうか? 何か解決策をご存知の方、ぜひ回答をお願い致します。

みんなの回答

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

もう解決されているかと思いますが 日付: "" & [Forms]![F_登録]![日付] & "" ↓ 日付: "#" & [Forms]![F_登録]![日付] & "#" かもしれない。 Excelのピボットテーブルは使ったことないので。。。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> クエリーの項目に「日付: "" & [Forms]![F_登録]![日付] & ""」と設定をしたら その列のデータ型は何? また、[Forms]![F_登録]![日付]はどのような形式? yyyy/mm/dd? yyyymmdd?

y_usijima
質問者

補足

回答ありがとうございます。 クエリーは特に型は指定していません。「日付」項目にそのフォームの値が表示されれば良いのです。 [Forms]![F_登録]![日付]はテキストボックスで書式は設定していませんが、既定値に「=date()」を入力しています。ですから、フォームを開いたときには「2012/07/27」という当日の日付が表示されるようになっています。 クエリーを実行すると値が無いように結果が出てしまうので困っています。 よろしくお願い致します。

関連するQ&A

  • ACCESS フォームで入力した日付をクエリで読み

    ACCESS フォームで入力した日付をクエリで読み替えたい ACCESS フォームで入力した日付をクエリで使用しているテーブルの書式に変換したい フォーム テキスト名:日付にyyyymmdd で入力します クエリ テキスト名:日付はパラメータとして使用しています クエリ内で使用しているテーブルの日付書式は 日付:yyyy/mm/ddです パラメータは 「日付始」と「日付終」の2箇所のテキストに入力されたデータを使用しています。以下がパラメータです。 Between [Forms]![フォーム]![日付始] and [Forms]![フォーム]![日付終] フォームのテキストボックスにyyyymmddと入力してもクエリでエラーが出ることない パラメータを日付に設定したいのですがどうしたらよいでしょうか? ちなみに、以下の式を入れたらエラーです。 Between CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) and CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) と入力しましたところ、、、、「式が複雑すぎるか、、、」のエラーメッセージが出てしまいました。 どなたか助けてください。お願い致します。

  • Accessエラー 複雑すぎるために評価できません

    お世話になります。 accessでクロス集計を実行させたところ、 以下のエラーが出ました。 「式が正しく入力されていないか、複雑すぎるために評価できません。 たとえば、数式に複雑な要素が多すぎます。 変数に式の一部を割り当て、式を簡単にしてください。」 --------------------- クエリは、 顧客(テキスト、行) 売上月(日付、列) 売上数(数字、値の合計) 売上月の値として、 BETWEEN [Forms]![フォーム1]![開始] AND [Forms]![フォーム1]![終了] クロス集計のプロパティには、 Forms![フォーム1]!開始 Forms![フォーム1]!終了 --------------------- なにか解決方法はありませんでしょうか。 よろしくお願いします。

  • odbcでのアクセスについて

    現在、各店舗から外部サーバに売り上げデータをエントリし、それらのデータを社内のSQLserverにftpで転送しています。 sever側には手をつけずにデータの集計を行いたいので、別のpcのaccess2000を使い、serverのデータベースにODBCでアクセスし、クエリを作成して集計を行おうと思っています。 この場合、ftpのタイミングとクエリを実行するタイミングによっては、データベースやftpに影響が出そうな気がするのですが、問題はないでしょうか。 よろしくお願いします。

  • Accessのサブフォームで#Nameエラーについて

    こんにちはいつもお世話になります。 Accessで教えてください。 Accessのフォームで大分類・中分類・小分類・割引率という項目を作り、メインフォームで大分類と中分類を選択してサブフォームで小分類を選択すると割引率が隣に表示されるようにしたいのです。 1つのテーブル内に全部項目が収まっているので、クエリで抽出区分に各フォームのテキスト名を指定してパラメータにしてやってみたところなぜかわかりませんが、クエリを実行すると小分類のパラメータが開いてしまいます。 SQLは「SELECT テーブル1.SUP, テーブル1.カテゴリ, テーブル1.タイプ, テーブル1.標準値引率 FROM テーブル1 WHERE (((テーブル1.SUP)=[Forms]![算出用]![SUP]) AND ((テーブル1.カテゴリ)=[Forms]![算出用]![カテゴリ]) AND ((テーブル1.タイプ)=[Forms]![割引率]![タイプ]));です。 そして、フォーム内には、割引率のコントロールソースとして「=test!割引率」と入れています。すると、フォームのテキストで#Nameエラーが出てます。すみませんどうしても何が違っているのだか分からなくて教えていただけると助かります。

  • エクセルからACCESSへマクロでワークシート変換していますが・・・

    ACCESSで作ったクエリを一度エクセルにエクスポート(マクロを使ってワークシート変換)後、エクスポート先のシートとは別シート(同一ブック内)で集計し、集計結果をACCESSへインポート(マクロを使ってワークシート変換)させたいのですが、前回の集計結果がインポートされてしまい、新しい集計結果が反映されません。 一度エクセルのブックを開けば新しい集計結果が取り込めます。 何故でしょうか? またブックを開かずに最新のエクセルの集計結果をACCESSに反映させる方法はありますでしょうか?

  • Excel97からAccess2000へ接続できない

    Excel97ファイルからネットワーク経由して、 ODBC使って、クエリーでAccess2000のMDBファイルへ接続できません。 なぜでしょうか誰かおしえてーー。

  • ACCESS2003のグループ化のエラーについて

    こんばんは、ACCESS2003のグループ化について助言をお願いします。 (OS:WIN7) ”TBL1”から抽出して”クリエ1”を作成したものがあります。 この”クリエ1”からさらに”クリエ2”を抽出して、フォームから入力できるように”フォーム1”を作成しました。 (”クリエ1”は他の方が作成したのを借りている状態です。) ”クリエ2”には”日付”、”商品番号”、”単価”があり、”フォーム1”で使えるように ”クリエ2”の各項目に以下のように抽出条件を設定、フォームから入力出来るようにしました。 <日付> Between nz([forms]![f_kensaku]![day_s]) And nz([forms]![F_kensaku]![day_e],#2099/12/31#) (空欄でも表示されるように”Nz()”を使いました。) <商品番号> Like "*" & [Forms]![f_kensaku]![shouhin] & "*" <単価> Like "*" & [Forms]![f_kensaku]![tanka] & "*" ”フォーム1”及び”クリエ2”から実行して問題なく検索できるのですが 日付、商品番号、単価が重複して見ず来らいので、”クリエ2”の”Σ”からグループ化を実行するとエラーとなってしまいます。 <エラー表示内容> 集計関数の一部として指定された式(上記3個のSQL文が表示)を含んでいないクエリを実行しようとしました。 当然、グループ化を外すと問題なく動くのですが、何が悪いのでしょうか?

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。

  • Accessフォームにクロス集計クエリを表示させるとき

    Accessフォームにクロス集計クエリを表示させようとしています。 クロス集計の横軸の項目数が増減するようなデータを扱っているのですが、 クエリをフォームに貼り付けてフォームを保存した後、クロス集計の横軸の項目数が増減しても、フォーム上の横軸の数は増減してくれません。 もう少し具体的に書くと、 クロス集計クエリは、縦軸に日付、横軸に社員を設定し、日付別の社員のアクセス回数カウントを表示するもので、社員は新しく入ってきたり、辞めていったりするため増減します。 フォーム上に集計クエリを貼り付けて、次のような表ができました。 ----- 日付 アクセス計 社員A 社員B ○日 3     1   2 △日 4     1   3 ----- □日に、StaffCが増えたので、次の様にしたいのですが、StaffCの列が表示されません。 ----- 日付 アクセス計 社員A 社員B 社員C ○日 3     1   2 △日 4     1   3 □日 5     1   2   2 ----- どのような解決方法がありますか? 質問が分かりづらいと思いますが、宜しくお願いします。表は等幅フォントで見ていただければと思います。

  • ACCESSのODBC接続

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS10(PRO) ACCESS 2013 SQL SERVER EXPRESS 2016 ODBCを使用してACCESSからSQL SERVERに接続しています。 データ参照やINSERTは問題なく、データ削除で2万件ほどのデータを削除しようとすると、「実行時エラー'3146' ODBC---呼び出しが失敗しました」のメッセージが表示され止まってしまいます。 1000件ほどでしたら、削除は行えます。 ・パススルークエリでDELETE FROM ○○を実行 ・リンクテーブルをVBAからクエリを開き削除 ・SQL SERVERにストアドを作成して、ACCESSから実行する を試したのですが、結果は変わりありません。 また、LOOPで1000件づつ削除も試したのですが、6回(6000件)ほどで同じメッセージが表示されてしまいます。 ODBCでの接続がネックなのかと思っているのですが、解決策が見出せません。 ヒント等でも教えていただければ助かります。 よろしくお願いします。