- ベストアンサー
アクセスが動作したり、しなかったり
- 業務管理のアクセスをつくりましたが、それが動作するPCとしないPCがあって困っています。
- 問題はサブフォーム一つを持つフォームのボタン(プレビューボタン)を押すと、サブフォームで選択された期間内のレポートがプレビューされるはずなのに、表示できるPCとできないPCがるというものです。
- 不可解なのは、フォームにあるプレビューボタンでプレビュー表示できないPCでも、レポートで表示するクエリを直接実行し、「パラメータの入力」で数値を入れると正常にレポートが表示され、印刷もできることです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
レポートやフォームで#エラーあるいは#NAME? と出るのは、表示するテキストボックス やラベルが参照しているコントロールソース の名称が違っていたり、あるいはそれらの コントロールにデータを提供するフォームや レポートのレコードソースに含まれるべき データが無い時などに発生します。 そういったことを考慮して、 (1) レポートを開くときのイベントに以下のコードを 実行します。 Private Sub Report_Open(Cancel As Integer) '実行時のレコードソースの確認 MsgBox (Me.RecordSource) MsgBox ("開く時のコントロールソース" & Chr(13) & funcSearch) End Sub 必要ならば、アクティブ時にも同様のコード を実行します。また、閉じる時にも設定します。 (2) レポートの モジュールのどこかに以下の関数を 貼り付けます。これはテキストボックス のコントロールソースが変更されていない かを確認するための関数です。 Private Function funcSearch() As String Dim ctl As Control Dim strAnswer As String For Each ctl In Controls 'テキストボックスの場合に限定して、 If TypeOf ctl Is TextBox Then strAnswer = strAnswer & ctl.Name & "::" & "コントロールソース=" & ctl.ControlSource & Chr(13) End If Next ctl funcSearch = strAnswer End Function (3) レポートを開いてレポートのレコードソース のフィールドの確認、テキストボックスのコントロール ソースの確認、などをして整合性を確認します。 これらで、整合性が確認できてなおかつ 症状が直らないときは、レポートの レコードソースになっているクエリを SQL文にして、レコードセットとして 取り出し、レポート各コントロールに レコードセットの各フィールドを参照 させます。これで様子を確認してください。 そのときは、上記のコードはコメントアウト するか削除しておいてください。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
差し支えがないのであれば、 原因をいろいろ推測するよりも、 元になっているmdbファイルを 調子の悪いPCで開いて実際に エラートラップをしたほうが 一番早いと思いますが。 もし問題がないようであれば 配布したファイルに何らかの 破損が生じたということも 考えられます。
お礼
回答ありがとうございます。 エラートラップとはどのようにするものなのでしょうか? 一応何度かファイルをコピーしなおして実験しましたが、やはり特定のPCでプレビュー機能が使えません。 念のためにオフィス自体をインストールしなおしてみたのですが、ダメでした。
お礼
遅くなって申し訳ありません。 解決しました。 マイクロソフトオフィスのサービスパック3がインストールされていないことが原因でしたので、これを当てて万事解決と相成りました。 表示できるPCとできないPCがあったのは、このためです・・・ OSだけでなくオフィスの更新もしっかり見ておかないとダメですね。 ご回答、本当にありがとうございました。