Accessのラベル指定箇所印字について

このQ&Aのポイント
  • Accessのラベル印刷で指定した位置に印字されない問題について
  • ラベル印刷の開始位置を指定しても実際に印字される位置がずれる問題について
  • ラベル印刷で指定した印字位置と実際の印字位置が異なる問題について
回答を見る
  • ベストアンサー

Accessのラベル指定箇所印字について

Window 7 Access2013 いつも、お教えいただき、誠にありがとうございます。お手数ですが、今ひとつお教えいただきたいと思います。 ラベル印刷で、開始位置を指定して印字する方法を検索して利用させていただいておりますが、 1枚のラベルを作成して指定したラベルに印字しようとして ・プレビューすると指定した印字位置にありますが ・実際印字すると 1枚目に印字されてしまいます コードは、引用させていただいた Option Explicit Dim i, k As Integer Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) i = 0 k = InputBox _ ("ラベル印刷の開始位置を入力してください") End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If i < k - 1 Then Me.MoveLayout = True Me.NextRecord = False Me.PrintSection = False i = i + 1 End If End Sub としています。 何卒、よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

こちらの実験では、現状のコードでも問題なく印刷時も指定位置から印字されます。 以下は今回の症状とは関係ないですが、修正したほうがいいでしょう。 現状のコードだと、プレビューから印刷した場合にそれぞれでインプットボックスがでますよね。InputBox は「開く時」か「読み込み時」に記述した方がいいでしょう。 あと、 Dim i, k As Integer と記述すると、i はバリアント型の変数になります。面倒でも、 Dim i As Integer, k As Integer と記述してください。 修正後 Option Explicit Dim i As Integer Dim k As Integer Private Sub Report_Load()   k = InputBox _        ("ラベル印刷の開始位置を入力してください") End Sub Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)   i = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   If i < k - 1 Then     Me.MoveLayout = True     Me.NextRecord = False     Me.PrintSection = False     i = i + 1   End If End Sub

southbreeze
質問者

お礼

hatena様 いつも、本当にありがとうございます。お手数をわずらわせて、申し訳ありません。 実は、その後コードをしみじみ見直しをしていましたところ、実際の 記述に抜けている箇所がございました。 それは、レポートヘッダーの下に記述するべき i = 0 です。それを入れますと、プレビューした位置に印字されるようになりました。 自己解決しようとその場所を探したのですが、見つからずそのままになっていたものです。申し訳ございません。 お示しいただきました >Dim i, k As Integer >と記述すると、i はバリアント型の変数になります。面倒でも、 >Dim i As Integer, k As Integer >と記述してください。 訂正させていただきたいと思います。本当にありがとうございました。 今後共、よろしくお願い申し上げます。

関連するQ&A

  • Access VBA ラベル印刷開始位置の指定でエラー表示される

    Accessのレポートで、宛名ラベル印刷の印刷開始位置を選択できる ようにしたく、下記URLの通りにやってみたのですが、エラー表示がでます。 参考URL http://support.microsoft.com/default.aspx?scid=kb%3bja%3b879856 この通りにやってみると、エラーメッセージ「コンパイルエラー プロシージャ内では無効です」 と表示されてしまいます。 エラーにならないようにするには、どうしたらよいのでしょうか? 記述は下記になります。 Option Compare Database Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) Option Explicit Dim i, k As Integer i = 0 k = InputBox("ラベル印刷の開始位置を入力してください") End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If i < k - 1 Then Me.MoveLayout = True Me.NextRecord = False Me.PrintSection = False i = i + 1 End If End Sub 恐れ入りますが、ご教示お願い致します。

  • ACCESSのレポートに売上の累計を計算させましたが・・・・

    ACCESS2002についてです。 テーブルに"売上日" "売上金額"とある中で"売上累計"を明細行毎にだそうと、本に書いてある下記のように入力しましたが、ページが変わってしまうと"売上累計"が合わなくなってしまいます。どうしたら解決できますか???? Option Compare Database Option Explicit Private curRuikei As Currency Private Sub Report_Open(Cancel As Integer) End Sub Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) '累計のクリア curRuikei = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '累計の加算 curRuikei = curRuikei + Me!売上金額 Me!売上累計 = curRuikei End Sub です。

  • アクセス レポート バックカラーの変更方法

    現在レポートで1行ごとにバックカラーを変えて印刷しておりますが、それをチェックボックスにチェックがはいった行だけをカラーにするよう変更したいと考えておりますが、よくわかりません。現在のコードをコピーしました。お手数ですがご指導願います。 Option Compare Database Dim bline As Integer Private Sub Report_Open(Cancel As Integer) End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) bline = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) bline = bline + 1 If bline Mod 2 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12663225 End If End Sub

  • ACCESS  日付が変わった場所で改ページしたい

    Win 7 Access2013 大変、お世話になっています。よろしくお願いしたいと思います。 日程表で、詳細に「日付」「場所」「時間」「内容」などのフィールドがありA5の用紙に印字しています。1枚の用紙に収まらない場合、2枚目に順次印字されています。 この2枚目に移る時、「日付」が変わった時点で改ページをしたいのです。「日付」は日が変わった時だけ入力しています。 色々、調べてみて、グループ化もしてみましたがうまく出来ませんでした。「グループ化」の中で、印字の時の「グループ全体」という項目が Access2013では見当たりませんでした。 何卒、ご教示方よろしくお願いいたします。 【備考】 モジュールには、ここでご教示いただいた下記のような「線」の記述をしています。 Option Compare Database Option Explicit Dim HI As String Dim TI As String Dim NAIYO As String Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer) HI = """" TI = """" NAIYO = """" End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If HI <> Me.行程_日付 Then Me.直線51.Visible = True HI = Me.行程_日付 Else Me.直線51.Visible = False End If If TI <> Me.テキスト44 Then Me.直線53.Visible = True TI = Me.テキスト44 Else Me.直線53.Visible = False End If If NAIYO <> Me.内容 Then Me.直線55.Visible = True NAIYO = Me.内容 Else Me.直線55.Visible = False End If End Sub Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) Me.ScaleMode = 1 Me.ForeColor = 0 Me.DrawStyle = 0 Me.DrawWidth = 4 Me.Line (1.51 * 567, 0)-(1.51 * 567, 14400) Me.Line (6.8 * 567, 0)-(6.8 * 567, 14400) Me.Line (8.3 * 567, 0)-(8.3 * 567, 14440) End Sub

  • Access レポートの詳細Formatに複数の式

    いつもお世話になっています。 レポートの詳細に結婚して姓が変更になった場合、旧姓に取り消し線を引く という式を作成しました。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新姓 <> "" Then Me.取り消し線1.Visible = True Me.取り消し線2.Visible = True Else Me.取り消し線1.Visible = False Me.取り消し線2.Visible = False End If End Sub 今回は、住所も変更になって新住所が入力されたら、旧住所に取り消し線を引きたいと 思います。 ただし、変更にならない場合もあるので、別のIF文になります。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新住所 <> "" Then Me.取り消し線3.Visible = True Me.取り消し線4.Visible = True Else Me.取り消し線3.Visible = False Me.取り消し線4.Visible = False End If End Sub レポートの詳細_Formatに複数の条件を設定することができるのでしょうか。 お力添えをお願いいたします。

  • Access2003 レポートの合計の出し方

    お世話になっております。 Access2003のレポートで下記のようなコードで価格の合計を求めようとしています。 1ページですとこれで合計は表示されるのですが、レポートが2ページ以降になると最終ページの合計が表示されます。 最終ページの最後にすべての合計を出したいと思っています。 ご教授いただければ幸いです。よろしくお願いいたします。 Option Compare Database Dim a As Variant Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer) a = 0 End Sub Private Sub グループヘッダー3_Print(Cancel As Integer, PrintCount As Integer) a = a + Me.価格 End Sub Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer) Me.合計 = a End Sub

  • Accessのレポートでデータがなくても罫線だけ表示させたい

    Win2000,Access2000を使用しています。 Microsoftのホームページで「[AC97] レコードがない場合も用紙の最後まで罫線を出力する方法」を応用して以下のVBを作成しました。 ですが、9行目までデータを入力すると9行目と10行目の両方の行に9行目のデータが表示されます。 8行目まででしたら、9、10行目は空白で罫線(直線)が表示されます。 どなたか解決法をご存知でしたらお教え下さい。 Option Compare Database  Dim A As Integer '-------今何行目なのかをカウントする為の変数  Dim B As Integer '-------今回印刷する予定のレコード件数を入れて                  おく変数 ---------------------------------------------------- Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)   A = 0   B = DCount("ID", "Q05商品リスト")   Me!改ページ3.Visible = False End Sub ---------------------------------------------------- Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)  A = A + 1  If A Mod 10 = 0 Then    Me!改ページ3.Visible = True  Else    Me!改ページ3.Visible = False    If A < B Then      Me.NextRecord = True      Me!商品名.Visible = True      Me!メーカー名.Visible = True    ElseIf A = B Then      Me.NextRecord = False      Me!商品名.Visible = True      Me!メーカー名.Visible = True    Else      Me.NextRecord = False      Me!商品名.Visible = False      Me!メーカー名.Visible = False    End If   End If End Sub

  • Accessのレポートに取り消し線を表示したい

    いつもお世話になっています。 名簿を作成しているのですが、結婚して姓が変わった場合、 上書きせずに新しい姓を別のテキストボックスに入力します。 これをレポートとして出力する際、新しい姓が入力された場合は、 過去の指名のテキストボックスに二重線を引きたいのですが うまくいきません。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新姓 <> "" Then Me.取り消し線1.Visible = True Me.取り消し線2.Visible = True Else Me.取り消し線1.Visible = False Me.取り消し線2.Visible = False End If End Sub お力添えをお願いいたします。

  • Accessのレポートについて

    Accessのレポートについて Access2002で作成した、あるシステムのレポートで、会社名と代表者名を印字するようにしています。 14文字ある氏名が13文字で改行されてしまいます。 15文字以上ある氏名は縮小されて、1行で枠内に収まって印字されます。 該当のレポートのプロパティを開き、イベントタブの「開く時」のイベントプロシジャを見ると下記のような表記があります。 下記の表記により、上記のようになるのではないかと推測していますが、素人な者で、下記を解読できずにおります。 どうか、下記について、ご教授いただけないでしょうか。 Option Compare Database '文字列の比較にデータベースで決められた形式を使用します。 Private Sub Report_Open(Cancel As Integer) End Sub Private Sub 詳細1_Format(Cancel As Integer, FormatCount As Integer) Call 氏名自動縮小(Me!氏名, 14, 9) End Sub

  • アクセスIfブロックに対応するEnd Ifエラ-

    こんにちは。 アクセスで各レコードの印刷部数がそれぞれ異なるため、各レコードに入力した(フォームから)部数指定で 看板を印刷するようVBAを入力したところ。。。フォーマット時の方でIfブロックに対する End Ifがありませんとコンパイルエラーが出てEnD Ifが反転しています。 VBA初心者で、このVBA事態もネットで調べてコピペしたもので。。。エラー事態を自力で直せません。。。宜しくお願いいたします。 レポートの詳細にテキストボックスを置き名前-[cut]/可視-[いいえ[/コントロールソース-[=1]/ 集計実行-[グループ全体] 詳細のプロパティ Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Dim 指定枚数 As Integer 指定枚数 = Forms![フォーム名]![部数指定フィールド名] If IsNull([cut]) Then [cut] = 1 If [cut] <> 指定枚数 Then Me.NextRecord = False Me.MoveLayout = True Me.PrintSection = True End If End Sub Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) Dim 指定枚数 As Integer 指定枚数 = Forms![フォーム名]![部数指定フィールド名] If [cut] <> 指定枚数 Then [cut] = [cut] + 1 Else: [cut] = 1 End If End Sub 宜しくお願いいたします。

専門家に質問してみよう