- ベストアンサー
Accessでレポート作成時のテキストボックス入力に関する問題と解決方法
- Accessで複数のテーブルを結合したレポートを作成する際に、テキストボックスからの随時入力がうまくできない問題が発生しています。
- レポートの表形式で一覧リストを作成する際に、5レコードごとに見やすさを向上させるために枠線の下線を太くしたいと思っています。
- レポートで2列表示を行いたいが、2列目がページの外に表示される現象が発生しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なかなかレスがつかないようですが。 (1)について たぶん、表記上のミスがあると思います。 [Forms]![フォーム名]![テキストボックス名] をもう一度確認してみてください。 たとえば、[フォーム名]で[ フォーム名]のように 半角隙間があったり、フォーム名がデータベースウィンドウ に表示されている名前と違っていたり、テキストボックス名 が微妙に違っていたりなどです。 クエリの抽出条件の部分をコピーしてメモ帳に 貼り付け、何かいらないものがくっついて いないかも確認してみてください。 (2)について (その1) 結構大変かも。設定は難しくないのですが。 レポートのコード表の一番上のところで、 Option Compare Database Option Explicit Dim i As Integer のように、 Dim i As Integer を追加して、保存してください。 (その2) 次に、詳細のテキストボックスの下側に引いた直線をL2という 名前にします。名前は直線をポイントし、プロパティシート を表示して名前をL2と入力して保存してください。続いて Private Sub Report_Open(Cancel As Integer) i = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) i = i + 1 If cnt Mod 5 = 0 Then Me!L2.BorderWidth = 2 Else Me!L2.BorderWidth = 1 End If End Sub 以上を貼り付け保存してください。普通ならばこれで レコードが5つ表示される毎に下線が太く表示されます。 ところが、何らかの理由で最初の一行目の下線が太くなり、 その後5レコード毎に下線が太くなることがあります。 理由はいろいろですが、そのような状況ならば、コードを Private Sub Report_Open(Cancel As Integer) i = -1 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If cnt Mod 5 = 0 Then Me!L2.BorderWidth = 2 Else Me!L2.BorderWidth = 1 End If i = i + 1 End Sub のように設定してみてください。尚、 Me!L2.BorderWidth = 2 の=2の2は線の太さを設定する数値です。 一応、これで確認してみてください。 (3)について レコードを2列表示する場合、すべてのフィールドは レポートの詳細部分に入れる必要があります。 それでも、フィールドの項目が多い場合やフィールドの幅が 広い場合などでレポートの幅が広くなりすぎて収まり きれなくなりページをまたぐ場合があります。 その場合は3列あるいは4列にすることに なるかもしれません。あるいは、最初からレポートを 横にしてデザインすることで対応できるかもしれません。 または、フィールドを設定しているテキストボックスの幅を 狭くするかです。 以上、急ぎ足で書いたので抜けた部分があるかもしれません。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
訂正です。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) i = i + 1 If cnt Mod 5 = 0 Then で、 If cnt Mod 5 = 0 Then を If i Mod 5 = 0 Then としてください。2箇所あります。