みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

としています。

何卒、よろしくお願いいたします。

投稿日時 - 2015-11-13 00:03:51

QNo.9079467

困ってます

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

こちらの実験では、現状のコードでも問題なく印刷時も指定位置から印字されます。

以下は今回の症状とは関係ないですが、修正したほうがいいでしょう。
現状のコードだと、プレビューから印刷した場合にそれぞれでインプットボックスがでますよね。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

投稿日時 - 2015-11-13 10:20:01

お礼

hatena様
いつも、本当にありがとうございます。お手数をわずらわせて、申し訳ありません。

実は、その後コードをしみじみ見直しをしていましたところ、実際の
記述に抜けている箇所がございました。

それは、レポートヘッダーの下に記述するべき

i = 0

です。それを入れますと、プレビューした位置に印字されるようになりました。
自己解決しようとその場所を探したのですが、見つからずそのままになっていたものです。申し訳ございません。

お示しいただきました

>Dim i, k As Integer
>と記述すると、i はバリアント型の変数になります。面倒でも、
>Dim i As Integer, k As Integer
>と記述してください。

訂正させていただきたいと思います。本当にありがとうございました。
今後共、よろしくお願い申し上げます。

投稿日時 - 2015-11-13 10:51:53

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問