• ベストアンサー

Access:クリック時のイベントについて

フォーム上にレポートのプレビューボタンをつけました。 複数のスタッフがデータ入力をしていて、自分が現在入力したデータをプリン トアウトしたいと思っています。 テーブルに『プレビュー』というチェック項目を作り、そこにチェックがはい っているデータをレポートに表示させるようにしていて、プレビューボタンを クリックした時のイベントを以下のように設定していますが、『コマンドまた はアクション'レコードの保存'は無効です。』というエラー表示が出てしまい ます。 どのように書き換えればよいかご存知の方がいたらお教えください。 また、他に『現在自分がフォームを使って入力しているデータのみをプリント する』良い方法をご存知の方がいらっしゃったらお教えください。 Private Sub レポートのプレビュー_Click() On Error GoTo Err_レポートのプレビュー_Click Me!プレビュー = True DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Dim stDocName As String stDocName = ChrW(12463) & ChrW(12524) & ChrW(12540) & ChrW(12512) & ChrW(20966) & ChrW(29702) & ChrW(31080) & ChrW(40) & ChrW(12503) & ChrW(12524) & ChrW(12499) & ChrW(12517) & ChrW(12540) & ChrW(41) DoCmd.OpenReport stDocName, acPreview Exit_レポートのプレビュー_Click: Me!プレビュー = False DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit Sub Err_レポートのプレビュー_Click: MsgBox Err.Description Resume Exit_レポートのプレビュー_Click End Sub

noname#205469
noname#205469

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>フォーム上で自分が今開いているデータだけプレビューさせる方法はないものでしょうか 簡単にやるにはフォーム上にある主キーなど一意のキーでOpenReportのWhereConditionに抽出条件を設定すれば出来ます。 例えばIDというキーがありそのレコードだけレポートに表示する場合は IDの値がテキストの場合は DoCmd.OpenReport stDocName, acPreview, , ,"ID ='" & Me!ID & "'" IDの値が数値の場合は DoCmd.OpenReport stDocName, acPreview, , ,"ID =" & Me!ID とすればフォームに表示されているレコードだけプレビューすることが出来ます。(IDの部分は該当するフィールド名とコントロール名に変更してください。) または もっと簡単ですがボタンのイベントはそのままでレポートに抽出条件を入れてしまう。 クレーム処理票(プレビュー)がフォーム上のレコードしか表示しないのであればプロパティのレコードソースでSQLステートメントを開きキーになるフィールドの抽出条件に =Forms!フォーム名!コントロール名 とすれば出来ます。

noname#205469
質問者

お礼

ありがとうございます!お勧め(?)の『もっと簡単な方法』で無事解決しました^^! 今まで悩んでいたのがうそのように完璧に解決です!!

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

下記の記述だけで行けませんか。 Private Sub レポートのプレビュー_Click() On Error GoTo Err_レポートのプレビュー_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Dim stDocName As String stDocName = "クレーム処理票(プレビュー)" DoCmd.OpenReport stDocName, acPreview Exit_レポートのプレビュー_Click: Exit Sub Err_レポートのプレビュー_Click: MsgBox Err.Description Resume Exit_レポートのプレビュー_Click End Sub ちなみにstDocNameにセットされるのが クレーム処理票(プレビュー) となっていますが()付きでレポート名にしているのですか?

noname#205469
質問者

補足

ご回答ありがとうございます。 でも、うまくいきませんでした・・・。 プレビューボタンを押したら、データ全てが表示されて数百ページのプレビューになってしまいました・・・。 フォーム上で自分が今開いているデータだけプレビューさせる方法はないものでしょうか・・・? それで今は以下のような方法でトライしています。 テーブル『クレーム処理票』に『プレビュー』項目(Yes/No型)を作り、フォーム『クレーム処理票』にも表示させる。 レポート『クレーム処理票(プレビュー)』の表示(抽出)条件を、『プレビュー』項目が『True』のものだけ表示させるように設定。 スタッフはプレビューしたい時、『プレビュー』項目にチェックを入れて、保存ボタンを押した後プレビューさせる。 これだと面倒なので、プレビューボタンを押した時に自動で上記作業をしてくれるコードを組みたいと思っています・・・。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

複数のスタッフが使用しているということは、アクセスのデータがサーバー上にあるということですか。 アクセスで共有する場合、テーブルのみサーバー上に置き、クライアントにはクエリー・レポートなどを置きます。

参考URL:
http://www.mahoutsukaino.com/ac/ac2000/ac2000/gaibu/g02.htm
noname#205469
質問者

補足

ご丁寧にURL付で教えてくださってありがとうございますm(_ _)m 見てみたのですが、あまり理解できませんでした^^; 下のほうの『メニューバー[ファイル]→[外部データの取り込み]→[テーブルのリンク]』のところでしょうか? この作業は無事できました。ありがとうございます!

関連するQ&A

  • Access[イベント プロシージャ]について質問です。

    フォーム上にある『プリント』ボタンをクリックすると、レポートを印刷するようにしています。(以下のとおり) Private Sub レポートの印刷_Click() On Error GoTo Err_レポートの印刷_Click Dim stDocName As String stDocName = ChrW(12463) & ChrW(12524) & ChrW(12540) & ChrW(12512) & ChrW(20966) & ChrW(29702) & ChrW(31080) DoCmd.OpenReport stDocName, acNormal Exit_レポートの印刷_Click: Exit Sub Err_レポートの印刷_Click: MsgBox Err.Description Resume Exit_レポートの印刷_Click End Sub このプリントボタンをクリックした時に『印刷』というチェックボックスにチェックを入れるにはどのように書き換えればよいのでしょうか?

  • アクセスのイベント記述について。

    アクセスで登録ボタンをコントロールウィザードで作ったのですが、登録と同時にそのフォームを閉じるにはどうしたらよいでしょうか。現在の登録ボタンのイベント記述は下記のとおりです。よろしくお願いいたします。 Private Sub 登録_Click() On Error GoTo Err_登録_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_登録_Click: Exit Sub Err_登録_Click: MsgBox Err.Description Resume Exit_登録_Click End Sub

  • アクセスのイベント記述について。

    アクセスのあるフォームA上にある詳細ボタンをクリックすると別のフォームCが開くようにしてあるのですが、クリックすると同時にAフォームを閉じるにはどのように記述したらよいでしょうか? 詳細ボタンの記述は下記のとおりです。よろしくお願いいたします。 Private Sub 詳細_Click() On Error GoTo Err_詳細_Click Dim stDocName As String Dim stLinkCriteria As String DoCmd.Close stDocName = ChrW(12513) & ChrW(12531) & ChrW(12486) & ChrW(12490) & ChrW(12531) & ChrW(12473) stLinkCriteria = "[管理番号]=" & Me![管理番号] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_詳細_Click: Exit Sub Err_詳細_Click: MsgBox Err.Description Resume Exit_詳細_Click End Sub

  • アクセスのイベント記述について。

    あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定したのですが、患者IDのみ一致したフォームが開くようにはなったのですが、これプラス、依頼日も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • アクセスのレポートの印刷について。

    アクセスで報告書を作成し、印刷する時に、ウィザードを使って作ったコマンドボタン「報告書の印刷」を使用したいのですが、全てのレコードが印刷されます。以下の記述でどこを変更すればよいか教えてください。 また、基本的な質問なのですが、レポートのプレビュー上にコマンドボタンを配置することは可能でしょうか?(やはり、無理でしょうか?) よろしくお願いいたします。 Private Sub 報告書の印刷_Click() On Error GoTo Err_報告書の印刷_Click Dim stDocName As String stDocName = ChrW(22577) & ChrW(21578) & ChrW(26360) DoCmd.OpenReport stDocName, acNormal Exit_報告書の印刷_Click: Exit Sub Err_報告書の印刷_Click: MsgBox Err.Description Resume Exit_報告書の印刷_Click End Sub

  • Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう

    いつもお世話になっております。 フォームに「レコードの削除」ボタンを作成して実行したところ、 「カレントレコードがありません」と表示されてしまいます。 削除そのものは、正しく行われている(削除したいレコードが削除されている)のですが、 なぜ、そのようなメッセージが出てしまうのか分かりません。 他のフォームでは、削除するレコードが最後のレコードで無い限り、 そのようなメッセージは出ません。 また、そのフォームのレコードソースになっているクエリでは、 問題なく削除が実行されます。 削除ボタンの作成は、コントロールウィザードを使って行いました。 ちなみにVBAでは下記のような記述になっています。 Private Sub 削除テスト_Click() On Error GoTo Err_削除テスト_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_削除テスト_Click: Exit Sub Err_削除テスト_Click: MsgBox Err.Description Resume Exit_削除テスト_Click End Sub メッセージを表示させないためには、どのようにしたら良いでしょうか?? また、最後のレコードを削除した場合にも、 「カレントレコードがありません」メッセージを表示させなくするには どのようにしたら良いでしょうか? 教えてください。

  • アクセスのイベント記述について追加質問です。(その2)。

    大変恐縮なのですが、先ほど締め切ったばかりの質問に追加質問です。あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定して、患者IDと依頼日が一致したフォームが開くようにはなったのですが、これプラス、検体名も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?何度もすみませんが、よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] stLinkCriteria = stLinkCriteria & " AND [依頼日]=#" & Me![依頼日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • 検索時のみデータの変更を不可

    検索条件を入力するフォームA、検索でヒットしたレコードを表形式で表示するフォームB、フォームBにて詳細ボタンをクリックすると、単票形式のフォームCを表示する設定にしてあります。 このうち、フォームCはデータを入力するときに使用しています。 検索でヒットさせた場合のみ、フォームCのデータを変更できないようにするにはどうしたらいいでしょうか? よろしくお願いします。 下記のVBAが、フォームBの詳細ボタンをクリックしたときに、フォームCを開くためのコードです。 このVBAのどこに入れたらいいでしょうか? よろしくお願いします。 なお、このVBAはウィザードで作成されたものです。 Private Sub cmd詳細_Click() On Error GoTo Err_cmd詳細_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(102) & ChrW(114) & ChrW(109) & ChrW(-28982) & ChrW(20001) & ChrW(12487) & ChrW(12540) & ChrW(12479) stLinkCriteria = "[ID]=" & Me![ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd詳細_Click: Exit Sub Err_cmd詳細_Click: MsgBox Err.Description Resume Exit_cmd詳細_Click End Sub

  • XPアップロード後のアクセスの不具合

    「新規フォームを開く」フォームボタンがXPのアップロード後「コンパイルエラー」と表示されるようになりました。 詳細は下記の通りで、1行目が全て黄色くなっていました。もしおわかりでしたら、お助けください。 よろしくお願いします。 ----------------------------------------------- Private Sub 商品コードスキャンを開く_Click() On Error GoTo Err_商品コードスキャンを開く_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(21830) & ChrW(21697) & ChrW(12467) & ChrW(12540) & ChrW(12489) & ChrW(12473) & ChrW(12461) & ChrW(12515) & ChrW(12531) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_商品コードスキャンを開く_Click: Exit Sub Err_商品コードスキャンを開く_Click: MsgBox Err.Description Resume Exit_商品コードスキャンを開く_Click End Sub ----------------------------------------------

  • XPのアップロードとアクセスの相性?

    アクセス2000ですが、どうもつい最近のXPの アップロードとの相性が悪いようです。 ある特定のフォームを開こうとすると、 「コンパイルエラー」という表示が出てきます。 下記のビジュアルベーシックの部分がおかしいようですが、わかる方アドバイスをお願いします。 特にstDocName = ChrW(12487) あたりが怪しそうです。 ------------------------------------------------------- Private Sub 実行ボタン_Click() On Error GoTo Err_実行ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(12487) & ChrW(12540) & ChrW(12479) & ChrW(20837) & ChrW(21147) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_実行ボタン_Click: Exit Sub Err_実行ボタン_Click: MsgBox Err.Description Resume Exit_実行ボタン_Click End Sub ----------------------------------------------------------- ちなみに、システムの復元で数日戻すとこの現象は起こらなくなりますが、数日ごとに元の戻す、というのも根本的ではないので・・・

専門家に質問してみよう