• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスIfブロックに対応するEnd Ifエラ-)

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

このQ&Aのポイント
  • VBA初心者がアクセスにおいてIfブロックに対応するEnd Ifエラーに遭遇しました。
  • 部数指定に応じて看板を印刷するVBAを入力したところ、コンパイルエラーが発生しました。
  • 質問者はVBAのエラーを自力で修正できないため、助けを求めています。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

もしかして、こんな事をやりたいのでは? レポート印刷で印刷部数をフォーム上で指定する方法:SampleFile146 http://www.accessclub.jp/samplefile/samplefile_146.htm 勘違いならご容赦。

coco--chanel
質問者

お礼

こんばんは、nicotinismさん。 イメージに近いホームページを探して頂いて有難うございました。 >※イメージ的に http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptHowToPrintRabelSpecificNumber.html が近いような気もしますけど?ハズレ? 上記のものを試してみたら望み通りにいきました。。。 数年悩んでいた物が解決しすごく感謝しています。 有難うございました。

coco--chanel
質問者

補足

調べて頂き、回答ありがとうございます。 例えば、品物が20台の注文が入った時、ワゴンには10台までしか乗らないため同じ看板を2枚必要です。 注文個数は一つ一つバラバラなので、1レコード1注文入力するとして。。。レコード単位で部数指定したいと思っています。 現在、看板ボタンをクリックするとすべて1部づつとしてのプレビューが出ます。 私が参考にしたホームページは http://support.microsoft.com/kb/404902/ja です。 宜しくお願いします。

その他の回答 (4)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.5

すみません。『看板』の意味というか概念がぼんやりとしか分かりません。 例えば 品物テーブル 品物ID 品物名 単価 最大入数(ワゴンに詰め込める最大数)  1   パン  100  3  2  ミルク  200  2 出庫テーブル 品物ID 品物名 数 出庫日  1   パン  4 2013/6/4  2  ミルク  4 2013/6/4 みたいなもの(かなり簡略化してますが)があったとして最終的にレポートで どのようになったら良いのでしょう? (深読みしすぎ?) 元のデータと出力レポートの例を示してもらえませんか。 ※イメージ的に http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptHowToPrintRabelSpecificNumber.html が近いような気もしますけど?ハズレ? とりあえず Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Dim 指定枚数 As Integer 指定枚数 = Forms![フォーム名]![部数指定フィールド名] If FormatCount < 指定枚数 Then Me.NextRecord = False Me.MoveLayout = True Me.PrintSection = True End If End Sub をお試しを。 (詳細_Printの方は無効(コメントアウト)しておいて)

coco--chanel
質問者

お礼

補足へ入力出来なかったのでお礼の所へ入力します。 間違えました。 引当IDと引当先で1対多のリレーションでした。 すいません。

coco--chanel
質問者

補足

回答ありがとうございます。紹介していただいたホームページも試してみます。 説明不足ですいません。 受注ID 出庫日 品名 個数 看板表示個数 単価 部数(看板) 引当先 1    6/5  パン  5   5      100   1 2    6/8  ミルク 20  10/20   200   2 引当客ID 引当客先 1     田中 2     鈴木 があり引当客IDと受注IDで1対多でリレーションしてあります。 看板形態は、出庫日 品名 看板表示個数 引当先が1枚に載っています。 現在では、1レコード1部づつですが、部数指定したいと思っています。 回答下さったものを試してみましたが、マクロ実行エラーが出てしまいました。 宜しくお願いいたします。

  • okgoripon
  • ベストアンサー率44% (1141/2548)
回答No.3

If IsNull([cut]) Then [cut] = 1 上記の2行を2行に分けず If IsNull([cut]) Then [cut] = 1 と書けば動くのでは?

回答No.2

「◇」は「同じ番号の◆」に対応します。 ◇1⇒Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) ◇2⇒If IsNull([cut]) Then ◇3⇒If [cut] <> 指定枚数 Then ◆3⇒End If ◆1⇒End Sub あれ?「◇2」に対応する「同じ番号の◆2」がありませんよ?

回答No.1

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) の中では、Ifが2つあるのにEnd Ifが1つしかないからエラーになっています。 End If1つで2つのIfが終了するわけではありませんよ。

coco--chanel
質問者

補足

みなさん有難うございます。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Dim 指定枚数 As Integer 指定枚数 = Forms![フォーム名]![部数指定フィールド名] If IsNull([cut]) Then [cut] = 1 Else If [cut] <> 指定枚数 Then Me.NextRecord = False Me.MoveLayout = True Me.PrintSection = True End If End Sub としてみました。すると。。。今度はIf [cut] <> 指定枚数 Then の<>がエラーで反転してしまいました。 この部分を [cut] = [cut] <> 指定枚数 Then と改造しましたが。。。ドツボにハマったようです。 素人で申し訳ありません、よろしくお願いします。

関連するQ&A