SQL SerVer 2005 + Access(adp) にてDBを作成しています。
あるレポートのサブレポートに一時テーブルの値を使用したいのですが、
表示されません。
作成したSQLは下記で、EXECでは表示されます。
Access側のクエリを開こうとすると、
「ストアドプロシージャは実行されましたが、レコードは返されませんでした」
という結果が返ってきます。
SQL側の一時テーブルをAccessのレポートのソースにするにはどうしたらいいのでしょうか?
教えてください。
注:ダイレクトにサブレポートを作成すると、メインレポートとリンクしません。
新規にテーブルを作成したものは、メインレポートとサブレポートがリンクします。
しかしあるレポートのためだけに、二重にテーブルを作成したくありません。
一時テーブルで済ませられるのなら、そうしたいと思います。
よろしくお願いします。
----------------------------------------------
--伝票分の業者請求書 レポートに表示する
----------------------------------------------
ALTER procedure [dbo].[S_業者請求伝票分R] @myid int
as
begin
---一時テーブルの作成
create table #業者請求
(kr発注物件ID int, kr発注ID int, kr業者請求日 datetime, kr業者請求額 money, kr最終支払 smallint,
kr請求メモ nvarchar(7),kr会社名 nvarchar(30),kr特記 nvarchar(20),kr受注登録ID int)
---一時テーブルに値を代入
insert into #業者請求(kr発注物件ID, kr発注ID, kr業者請求日, kr業者請求額, kr最終支払,
kr請求メモ,kr会社名,kr特記,kr受注登録ID)
SELECThh.発注物件ID, ga.発注ID, ga.業者請求日, ga.業者請求額, ga.最終支払,
ga.請求メモ,zz.会社名,hh.特記,hh.受注登録ID
FROM dbo.T_業者請求 AS ga left outer JOIN
dbo.T_発注 AS hh ON ga.発注ID = hh.発注ID INNER JOIN
dbo.T_住所 AS zz ON hh.会社ID = zz.会社ID
wherehh.受注登録ID=@myid
end
begin
select*from#業者請求
end
No.1ベストアンサー
- 回答日時:
adpのソースにストアドが使えるかどうかは確認していませんが、Jetの場合、ストアドの先頭には「SET NOCOUNT ON」を切らないと、レコードより先にメッセージが返されて結果行がゼロになります。
ALTER procedure [dbo].[S_業者請求伝票分R] @myid int
as
begin
の直後に「SET NOCOUNT ON」を足してみてください。
#もしこれで解決するなら、そもそも一時テーブル作る必要ないかもしれませんけど
ひぇ~! できました!!
私はてっきりAccess側でSQLの呼び出しとか何とかが必要だと思っていました。
jamshid6さん ありがとうございます。
追加質問で、
この「SET NOCOUNT ON」に対応する「OFF」は必要ないのでしょうか?
No.2
- 回答日時:
SET NOCOUNT OFFは不要です。
ストアドプロシージャ内で切ると、その中でだけ有効です。
ついでですが、ストアドが中で一度終わっている理由はなんでしょう?
中のend/beginは必要ないように見えます。
更にいうと、一時テーブルを作成せず、select文だけ書いても同じ結果になるような気がします。
(つまり、この部分だけ)
ALTER procedure [dbo].[S_業者請求伝票分R] @myid int
as
begin
set nocount on
SELECT hh.発注物件ID, ga.発注ID, ga.業者請求日, ga.業者請求額, ga.最終支払,
ga.請求メモ,zz.会社名,hh.特記,hh.受注登録ID
FROM dbo.T_業者請求 AS ga left outer JOIN
dbo.T_発注 AS hh ON ga.発注ID = hh.発注ID INNER JOIN
dbo.T_住所 AS zz ON hh.会社ID = zz.会社ID
where hh.受注登録ID=@myid
end
この回答への補足
上記を実行した所、レポートの表示はされますが、サブレポートとしてメインレポートにリンクされません。
メインレポートの数、サブレポートのすべてが表示されてしまいます。
これは「SET NOCOUNT ON」がない状態と同じです。
又、一時テーブルを使用したSQL文でも同じ結果でした。
新規にテーブルを作成した内容については、メインレポートとリンクするので、一時テーブルでもOKかと思ったのですが・・・
専用のテーブルを用意し、UPDATEでその都度入力させることにします。
しかし「今回は一時テーブルをAccess側に表示させる」という質問ですので、それについては解決しましたので終了と致します。
amshid6さん、本当に有難うございました。
(Where文に省略がありました。
(where hh.受注登録ID=@myid) and (hh.発注物件ID>600000) )
>SET NOCOUNT OFFは不要
了解です。
そうですね。もしかしたら、Select文だけでできるかもしれません。
SET NOCOUNT on なしでは何度やってもうまくいかず、
これはリンクキーの問題だと思っていました。
(メインレポートにリンクするサブレポートのキーに、メインキーにはない
キーが入っているため)
明日テストして報告します。
重ね重ねありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【お題】絵本のタイトル
【お題】 「ないた あかおに」「ねないこ だれだ」「はらぺこあおむし」みたいだけど、一体これどういう内容?と思った絵本のタイトルを教えて下さい
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
access vbaにてテンポラリーテーブルが作りたいです。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご発注ありがとうございます...
-
中3日の意味
-
見積書兼発注書の書き方
-
エクセル ①上下にタイトル行を...
-
フォーキャストって何ですか?
-
「発注書が"浮いてる」の"浮い...
-
工場内のダンボール箱管理手法...
-
パレット表記 1000×500と記載 ...
-
ドリンク用カップの印刷会社に...
-
単価単位、発注単位、発注入数...
-
セブンイレブン追加発注につい...
-
予備紙の計算法
-
内装の仕事をやっている女子で...
-
金本位制が崩壊したのは、金が...
-
コリンズの登録期間に関すること
-
転職して約2ヶ月になります。地...
-
発注書の誤りの確認について
-
在庫管理(不定期不定量発注)...
-
発注書の発行義務
-
建設現場の日報
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご発注ありがとうございます...
-
中3日の意味
-
エクセルでの2項目比較および...
-
見積書兼発注書の書き方
-
エクセル ①上下にタイトル行を...
-
フォーキャストって何ですか?
-
IP発注
-
単価単位、発注単位、発注入数...
-
「お打ち合わせの件につきまし...
-
Access 実行時エラー’3079’が解...
-
コリンズの登録期間に関すること
-
善管注意義務について
-
未加工品流出→対策
-
工場内のダンボール箱管理手法...
-
セブンイレブン追加発注につい...
-
セブンイレブンの発注で ソフト...
-
明日仕事に行くの怖いです。発...
-
vbaで操作しやすいfx会社...
-
セブンイレブンの弁当予約
-
土木設計で、段切りの設計について
おすすめ情報