アプリ版:「スタンプのみでお礼する」機能のリリースについて

No.2353071の続きなのですが、

Private Sub コマンド0_Click()
  DoCmd.OpenReport "レポート1", acViewDesign
  Reports("レポート1").Controls("ラベル0").Caption = "AAA"
  DoCmd.Close acReport, "レポート1", acSaveYes
End Sub

このようにすると「DoCmd.OpenReport "レポート1", acViewDesign」を実行する際に、デザインビューで開く画面が表示されるのですが、この画面を消すことはできないのでしょうか。

A 回答 (10件)

>「DoCmd.OpenReport "レポート1", acViewDesign」を使うことでデザインビューの画面が表示されるのは仕方なのない事と言うことでよろしいでしょうか?



> DoCmd.OpenReport "レポート1", acViewDesign, , , acHidden
がエラーになるバージョンでしたら、そういうことです。

> もしこの方法をとるならば、レポートのテキストボックス10個にデータを与えてやりたい場合、フォームにも10個のテキストボックスが必要と言うことですよね?

そうです。
でも、見せる必要はないので、「可視」を「いいえ」にして、小さくしておけば、それほど邪魔になりませんね。
非表示にしたフォームフッターに置くとかもできますし。
    • good
    • 0
この回答へのお礼

教えていただいた方法で解決することができそうです。不可視にする方法で少し試してみたところ、上手くできたので、この方法でやってみようと思います。
何度も丁寧にありがとうございました。

お礼日時:2006/08/23 17:06

>入力するものはレコードセットのフィールドなので、


ということなら
テキストボックスにDLookup関数を書いておくといいのでは
    • good
    • 0

Docmd.OpenReport の引数、WindowMode とOpenArgs は、


旧バージョン(XPは手元にないのでわかりませんが)では使えませんよ。

デザインビューで開いて、変更・保存を繰り返すのは、
データベース破損の原因になるので好ましくありません。

フォームからレポートを開くのなら、
フォームのテキストボックスに "AAA" と書いておいて

レポートのテキストボックスのコントロールソースを
=[Forms]![フォーム名]![テキストボックス名]
とすれば、済むことです。

この回答への補足

「DoCmd.OpenReport "レポート1", acViewDesign」を使うことでデザインビューの画面が表示されるのは仕方なのない事と言うことでよろしいでしょうか?

もしこの方法をとるならば、レポートのテキストボックス10個にデータを与えてやりたい場合、フォームにも10個のテキストボックスが必要と言うことですよね?

補足日時:2006/08/23 16:14
    • good
    • 0

No3の続きです。



アクセスのレポートはそのためにあります。
(ワードの差込印刷のように、テーブルやクエリのデータを持ってくることができます。)

とりあえず、レポートの新規作成で、「元になるテーブル/クエリ」を指定して「オートレポート:単票形式」などを選んでみて作成してみてください。
テーブル(クエリ)の内容がすべて一件ずつレポートに出てくるはずです。

テキストボックスのプロパティのコントロールソースを変えることによって、参照元のフィールドを変更することもできます。

レポートに出力させたい項目をクエリに出力させて、そのクエリをレポートのレコードソースとするとレポート作成が楽になりますよ。
    • good
    • 0

s_husky です。



なお、別案も示しておきます。

・フォームでレポートをプレビューする場合にレポートに"AAA"を渡す。

Private Sub コマンド0_Click()
  DoCmd.OpenReport "レポート1", acViewPreview, , , , "AAA"
End Sub

・レポートは整形時に"AAA"をテキストボックスに代入する。

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  Me.テキスト0 = Me.OpenArgs
End Sub
    • good
    • 0

No2 さんの回答でOKです。


問題は、代入文のバグ臭いです。

この回答への補足

DoCmd.OpenReport "レポート1", acViewDesign, , , acHidden
だとコンパイルエラーとなりますが、
DoCmd.OpenReport "レポート1", acViewDesign
だとエラーにはならないのですが・・・。

代入文というのは「Reports("レポート1").Controls("ラベル0").Caption = "AAA"」の部分のことでしょうか?

補足日時:2006/08/23 14:30
    • good
    • 0

ラベルを印刷ごとに変えたいのなら


ラベルじゃなくテキストボックスにしておいて
そこにパラメータを書いておけばレポートオープン時に入力を求めてくるようになりますよ

=[今回の表題を入力してください]

この回答への補足

入力するものはレコードセットのフィールドなので、入力を求められるのは少しまずいんです。

でもテキストボックスにパラメータを書くとオープン時に入力を求められるんですか。今回、ここには使えないですけど、今後使ってみます。

補足日時:2006/08/23 13:38
    • good
    • 0

No1です。



前の質問を見ていませんでした。

ラベルのキャプションを印刷の段階で変更する位だったら、フィールドを一つ増やして、そこにデータを格納印刷したほうがよいかと思います。

レポートのプロパティのレコードソースにテーブルかクエリを指定して、テキストボックスのコントロールソースに必要なフィールドを指定することによって、テーブル(クエリ)の値をレポートに出力できるようになります。

ウイザードを使うと上記作業が簡単にできます。

参考URL:http://www.accessclub.jp/beginer/cd/part_09.htm

この回答への補足

申し訳ございませんが、いまいち理解できていません。
この方法にすると、テーブルからある条件で検索してきた結果をレポート上のラベルに設定し、印刷することが可能なのでしょうか?

補足日時:2006/08/23 14:07
    • good
    • 0

DoCmd.OpenReport "レポート1",acViewDesign,,,acHidden


で出来るはずですよ。

この回答への補足

そのようにすると「コンパイルエラー 引数の数が一致していません。または不正なプロパティを指定しています。」とメッセージが出てしまいます。

補足日時:2006/08/23 13:33
    • good
    • 0

DoCmd.OpenReport "レポート1", acPreview


でプレビュー
DoCmd.OpenReport "レポート1",acNormal
でそのまま印刷に入ります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す