• ベストアンサー

accessで多数のレポート操作

access2003 レポートが50種類ほどあり、すべてに同じ項目(テキスト)を追加したのですが 簡単に追加する方法をご教授ください。 配置する場所はほぼ同じ位置になります。 よろしくお願いします

noname#136890
noname#136890

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

  • ベストアンサー
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.3

No.2への補足の返答です。 CreateReportControlでは、オブジェクト種類/配置場所(ヘッダーやフッター、詳細など)/オブジェクト名/上位置/左位置/幅/高さ といったプロパティだけが設定可能で、それ以外のフォントサイズや文字色等のプロパティは With ~ End With で指定します。 単純に obj.FontSize = 12 というように記述してもいいのですが、設定したいプロパティが多岐にわたる場合はWith文を使ったほうが見た目にも判りやすいかと思います。 なので、今回は、 With obj .Name = Contents .ControlSource = Contents '追加 .FontSize = 12 End With というようにWith文に追加していってください。 プロパティ名がわからないときは、レポートやフォームにテキストボックスを適用に作って、プロパティを表示し、該当プロパティの入力欄をクリックした状態でF1キーを押すとヘルプが出てきます。そこにかかれてあります。 例えば「背景スタイル」の欄をクリックしてF1を押すと、 expression.BackStyle となっていますので、プロパティは .BackStyle とし、 設定値はVisualBasicの欄を見ます。設定値を透明にしたい場合は 0となるわけです。 即ち、With文中に .BackStyle = 0 と書きます。 With文中ならば、追加する順番は関係ないのですが、同じプロパティを指定した場合は、後に記述したほうが反映されます。 With obj .fontsize =12 .fontsize =24 End With という場合は、フォントサイズは24ptになります。

noname#136890
質問者

お礼

ありがとうございました すっきり解決しました

その他の回答 (2)

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.2

No.1です。 フィールドを追加する場合は、ラベルの場合と若干異なります。 手順としてはテキストボックスを新規で追加し、その名前とコントロールソースを該当するテーブルのフィールド名にする必要があります。 該当レポートのレコードソースとなるテーブルにフィールドを新たに追加した という状況の場合、 Const Contents = "挿入テキスト"の"挿入テキスト"を「挿入したいフィールド名」にして、Set obj ~ End With までを下記のように書き換える必要があります。 '--以下 コード 'レポートにテキストボックスを作成する。 Set obj = CreateReportControl(rpt.Name, acTextBox, acDetail, , , LocX, LocY) With obj .Name = Contents .ControlSource = Contents End With '--コード終わり テキストボックスの幅、及び高さは、Withで指定しても良いしLocYの後ろにつなげてもかまいません。 例:CreateReportControl(rpt.Name, acTextBox, acDetail, , , LocX, LocY,幅,高さ) このときの幅や高さも左位置や上位置と同じく1cm=765単位で指定する必要があります。 分かりやすくするため、0.5*765(=0.5cm)という書き方が良いかと思います。

noname#136890
質問者

お礼

またまた ありがとうございます。 期待のことができそうです。 もう少しご教授お願いします creatReportControlで文字のサイズを指定したいのですが、"幅,高さ"プラス どのように記載すればいいですか? よろしくお願いします

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

50種類ほど=そのDBの全てのレポートというのであれば単純なコードを書けば実現できます。 モジュールに下記コードを追加して、レポートを閉じた状態でイミディエイトにChgTextとタイプして実行すればよいかと思います。以下の部分は任意に変更されてください。 Const LocX = 1 * 765: '左位置座標。1cm=765単位 Const LocY = 1 * 765: '上位置座標。1cm=765単位 Const Contents = "挿入テキスト": '表題名 及び With obj .FontSize = 12 .ForeColor = 255   .Name = "LabelText" End With 内容を確認・調整しながら保存(または保存しないで)→閉じるとしても50種程度ならさほど時間がかかることではないので、念のため、「保存して閉じる」命令はコメントアウトしています。 また、やり直し(一括削除・変更)がしやすいよう(一括削除)に名前(.Name)を指定しています。(例では"LabelText"という名前をつけています。) ---以下コード Sub ChgText() Dim obj As Control Const LocX = 1 * 765: '左位置座標。1cm=765単位 Const LocY = 1 * 765: '上位置座標。1cm=765単位 Const Contents = "挿入テキスト": '表題名 'DB内の全てのレポートに処理する。 For Each rpt In CurrentProject.AllReports 'デザインモードでレポートを開く。 DoCmd.OpenReport rpt.Name, acViewDesign 'レポートにラベルを作成する。 Set obj = CreateReportControl(rpt.Name, acLabel, acDetail, , Contents, LocX, LocY) '(オプション)With~End Withによるプロパティの変更。 '例は文字サイズ,文字色(アカ)を指定。他にも色をつけたり、書体を変更したり出来る。 With obj .FontSize = 12 .ForeColor = 255   .Name = "LabelText" End With '保存して閉じる。 'DoCmd.Close acReport, rpt.Name, acSaveYes Next rpt End Sub

noname#136890
質問者

お礼

早速 ありがとうございます。 テキストではなく、テーブルのデータの場合は Const Contents = "挿入テキスト": '表題名 を変更すればいいですか? もう少し教えてください お願いします

関連するQ&A

  • アクセス2007の単票レポートの各項目の配置変え

    Windows7をベースにアクセス2007を使っています。ごく最近まで、旧バージョンを使っていた際には、クエリーで得た検索結果をベースに、レポート(単票)にまとめる際、各項目ごとに配置や表示されるマスの大きさを変更できていたのが、選択したクエリーをベースに「レポートウィザード」で作ると、全ての項目が一斉に位置変更してしまい、個別に配置位置変更できなくなりました。  どうしたら個別に配置位置変更できるのかお教えください。 詳細説明: 「A項目  ↓」 「B項目  ↓」 「C項目  ↓」 の状態から 「A項目↓」  「B項目        ↓」 「C項目               ↓」 ※↓はマスの最後 としたいが、マウスでドラック&ドローすると 「A項目       ↓」 「B項目       ↓」 「C項目       ↓」 や 「A項目↓」 「B項目↓」 「C項目↓」 と一斉に↓の配置が動いてしまう。

  • アクセス2000でのレポートの操作を教えて下さい。

    アクセス2000を使っています。 レポートに、枠を一つつくり、その枠の中にテキストボックスを配置し、テキストボックスのプロパティで、「印刷時拡張」を「はい」に設定してあります。 上記の条件で、テキストボックスが拡張した時に、枠も一緒に拡張させたいのですが、やり方が分かりません。(現状では、テキストボックスが拡張すると、枠に重なってしまいます。) レポートを何個か作っているうちに、上記した状態に遭遇してしまったのですが、他のレポートでは、テキストボックスの拡張と共に枠が自動的に広がっています。特に何も指定しないで、枠も一緒に広がるレポートができているということは、簡単な方法でできると思うのですが、やり方が分かりません。 誰か教えて下さい。

  • ACCESSでレポート印刷すると文字がズレる。

    いつもお世話になってます。 今アクセスで用紙を印刷するためレポートを作っているのですが 複数の項目を横一列に並べようとしているのですが文字が上下にズレます。 配置→上(下左右グリッド) でやってもフォントの配置をどういじっても文字はズレまくります。 どうもテキストが入る四角い枠はそろっているのですがその中のテキストの上下位置がそろっていないようです。 どうしたらキレイに横一列に文字を表示できますでしょうか。 ちなみにバージョンはACCESS2000です。(古いですが・・・)

  • Accessのレポートについて

    お世話になっております。 現在、Accessのレポートを使って見積書のデータベースを作っているのですが、できるかどうかわかりませんが、一つご教授願います。 それは、見積書では、材料費・人件費などの項目が存在するのですが、時には材料費の項目が存在しない場合もあると思います。 そんなときに、テーブルの項目には材料費のフィールドがあるのですが、そのレコードのデータが空だったらレポートのフィールドに材料費という項目自体を現さないで出すことはできないのでしょうか? レコードの値は決まっているのですが、データが空かどうかでレポートに出力するかどうかを判断させて見積書を作成させたいと思ってます。 可能かどうか分かりませんが、アドバイスをよろしくお願いいたします。

  • アクセス2010 レポートについて

    アクセス2010 レポートについて質問が2つあります。 質問1 レポートビューと印刷した時で、改行の位置等が微妙にずれますが、ずらさない方法は有るのですか。? 質問2 レポートのラベル等の入力が2行になった時、エクセルのセル内の改行のように特定の位置で改行を指定することはできるのですか? ご回答よろしくお願いいたします。

  • Access2000でのレポートの出し方教えてください。

    Access2000でお客様別の見積書を作成しています。見積書には内訳を記入しています。その内訳は、A項目にA1,A2,A3の名称があり、B項目にB1,B2の名称があります。この内訳を下記のように1枚のレポートで作りたいと考えています。     | 名称 |  金額    | A項目|    |A項目の合計|  A1 |    | A1金額   |  A2 |    | A2金額   |  A3 |    | A3金額  | B項目|    |B項目の合計|  B1 |    | B1金額   |  B2 |    | B2金額  | A,Bの項目表は別々のクエリーで作成してあります。A,B別々にレポートを作成することはできるのですが、1枚にまとめようとするとできません。レポートのセクションを追加できると簡単なのですが、このようなことは可能でしょうか?また、別の方法がありましたら教えていただけますか。よろしくお願い致します。

  • Access2002でのレポートで

    お世話になります。 Access2002でレポートを作成しているのですがデザイン ビューの詳細セクションでテキストボックスを貼り付けて "=Left([***],Len([***])-4) " *[***]はレポートで作成したクエリの項目 をプロパティのコントロールソースに設定したのですが 実際にレポートに出力するテーブルにデータがないとき テキストボックスが貼り付けてある場所に "#エラー" と表示されます。 上記の表示を回避(空白でもいいです)できる方法を 教えてください。

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

    アクセスでテーブルAのデータをレコードソースとするレポートAを作成したのですが、レポートAのなかにテーブルBのレコードソースを追加することは可能でしょうか。  また一からレポートを作り直さずにすむ方法が知りたいのですが。

  • アクセス2007のレポート

    アクセス2007を使ってレポート(葉書)印刷をしようと、「作成」メニューから「はがきウィザード」にしたがってレポートを作成し、いざ印刷プレビューを行うと、「このデータベースは署名されていないか、信頼できる場所にありません。そのため、このレポートの一部の項目を表示できません。」というメッセージが出て、宛名が表示されません。 この原因と対策について、ご教示ください。よろしくお願いします。

  • AccessのレポートからのExcel出力

    当方、Access初級者です。 Access2000ですが、作成したクエリからレポートを表示させ、Excel出力をしたところ列の並びがレポートに表示されている順と変わってしまいます。 クエリの抽出結果からExcel出力すると問題ありません。 レポートはウイザードを使用して作成し、クエリの項目全てがクエリの項目順に表形式に並んでいる簡単なものです。 Excel出力は、「ツール」→「Office Links」→「Excelに出力」で行っております。 原因と解決方法をご教授下さい。

専門家に質問してみよう