VBからAccessレポートをプレビューするには?


閣下  2006-05-24 11:59:30  No: 131565

VB6.0とXPを使っています。
VBのフォームから入力されたデータをVBで配置したプレビューボタンを押すとAccessのレポートを使ってプレビューしたいと考えていますがプレビューボタンを押してもAccessが開いてくれません。具体的にどうすればよろしいでしょうか?お教え下さい。


><  2006-05-24 13:50:59  No: 131566

http://homepage2.nifty.com/inform/vbmania/source/acvb.htm
ここを参考にしてはいかが?


閣下  2006-05-24 14:05:26  No: 131567

ありがとうございます。
参考にさせて頂きました。しかし、新たな問題が発生しました。
レポートを表示できているのですがそれが一瞬しか表示されなく、すぐにAccessが閉じられてしまって開いてる状態を維持できていないのです。
この場合常にTureにしておく方法ご存知ないでしょうか?


(><)  2006-05-24 14:32:06  No: 131568

名前が違いますが><です。

閣下さん、申し訳ないですがサンプルコードをアップしてくださいませんか?

#>って大文字でも引用になるのですね><;
#あと仕事中ですので反応が鈍いです、ご了承を><


閣下  2006-05-24 15:30:11  No: 131569

お手数をお掛けします。以下がいま組んでいるサンプルコードです。
以下以外にもコードはありますが、該当部分がここだと思うので一部しか載せてません。
Set obj = CreateObject("Access.Application")

' データベースを開く
obj.OpenCurrentDatabase App.Path & "\CARD.mdb", False

'ここでクエリが存在するかしないかを判断しあれば削除
If ExistQ("qryPostSeal") = True Then
   obj.CurrentDb.QueryDefs.Delete "qryPostSeal"
End If
    
Dim Result As Integer
'CARD.mdbに新規にクエリ作成
obj.CurrentDb.CreateQueryDef "qryPostSeal", strSQL
obj.DoCmd.OpenReport "repPostSeal", acViewPreview
obj.Quit
   
obj.DoCmd.OpenReport "repPostSeal", acDesign

' アプリケーションを表示する
obj.Visible = True
' 名前を指定してレポートを開く
obj.DoCmd.OpenReport "repPostSeal", 2 'acViewPreview
    
' レポートの最大化
obj.DoCmd.Maximize
    
'レポートに設定情報を保存して閉じる
obj.DoCmd.Close acReport, "repPostSeal", acSaveYes
    
Set obj = Nothing
よろしくお願い致します。


(><)  2006-05-24 15:55:21  No: 131570

コード拝見しました。

>*****************************************
' 名前を指定してレポートを開く
obj.DoCmd.OpenReport "repPostSeal", 2 'acViewPreview
    
' レポートの最大化
obj.DoCmd.Maximize
    
'レポートに設定情報を保存して閉じる
obj.DoCmd.Close acReport, "repPostSeal", acSaveYes
>*****************************************

問題があるとすればここでしょうか?
レポートを開いた直後にレポートを閉じていますね。
ボタンを押したときは

>*****************************************
' 名前を指定してレポートを開く
obj.DoCmd.OpenReport "repPostSeal", 2 'acViewPreview
    
' レポートの最大化
obj.DoCmd.Maximize
>*****************************************

レポートを保存して閉じたいとき(例えばフォームが閉じられたとき)に

>*****************************************
'レポートに設定情報を保存して閉じる
obj.DoCmd.Close acReport, "repPostSeal", acSaveYes
>*****************************************

とすればOKだと思います。><


閣下  2006-05-24 16:52:14  No: 131571

返答ありがとうございます。
プレビューボタンを押した時の処理のところで
'レポートに設定情報を保存して閉じる
obj.DoCmd.Close acReport, "repPostSeal", acSaveYes
のところを省いて実行してみてもやはりAccessが閉じてしまいます。


(><)  2006-05-24 17:16:16  No: 131572

似たようなものを作って試したところ

obj.Quit

が原因じゃないかと思いますので省いてみてください。><


閣下  2006-05-24 17:29:36  No: 131573

お忙しいところお手数をお掛けしまして申し訳ありません。
やはりダメで一瞬開いて閉じてしまいます。
もうお手上げ状態です。


(><)  2006-05-24 17:52:49  No: 131574

む・・むぅ・・・@@;

>*************************************************
'CARD.mdbに新規にクエリ作成
obj.CurrentDb.CreateQueryDef "qryPostSeal", strSQL
>*************************************************

これ以下のコードが気になるので下記の部分を削除してください。

>*************************************************
obj.DoCmd.OpenReport "repPostSeal", acViewPreview
obj.Quit
   
obj.DoCmd.OpenReport "repPostSeal", acDesign
>*************************************************

ふと思いましたが、もしかしてAccessのレポートに「データがない場合は終了」的なイベントが存在しませんか?
一瞬表示されるなら、Accessか?と思いましたのでご確認のほどお願いします。><

>お忙しいところお手数をお掛けしまして申し訳ありません。
いきなり待機状態になってしまって暇になってしまいました。><
以降下手をすると明日まで反応できませんのでご了承を><;


特攻隊長まるるう  2006-05-24 18:10:53  No: 131575

…エラーで落ちてるとかいうオチだったりw。(エラートラップしてて
エラーメッセージに気づいてないとか)Access 側のエラーが全て
VB側でちゃんと取れるとも限らないって気もしますし…。

>もうお手上げ状態です。
どこが???
まず、新規プロジェクトで
>>< 2006/05/24(水) 13:50:59
>http://homepage2.nifty.com/inform/vbmania/source/acvb.htm
>ここを参考にしてはいかが?
のサンプルコードをそのまま実行しても同じ現象が起きますか?
(こちらで実行したところ開いたままでした。)

もし、開いたままであれば、貴方が勝手な解釈で追加したコードが
原因では?それを探すのを専門用語で『デバッグ』と呼んでいます。
それは質問者が自分ですべき作業です。

もし、閉じてしまうなら、Access 側の問題でしょうね。レポート自体が
壊れてるとか…。それも新規でレポートを作ってみれば分かると思います。

ステップ実行するとか、どのコードを追加した時に閉じるように
なってしまうか?1命令ずつ追加して調べるとか…やるべきことは
無数にあると思いますが?


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加