OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

MS-Access97でバーコードをタックシールに印刷させるには?

  • すぐに回答を!
  • 質問No.235959
  • 閲覧数344
  • ありがとう数8
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 100% (6/6)

MS-Access97の標準で備えている機能(?)のMicrosoft Barcode Control(かな?失念してしまいました)を使って1シート12枚のタックシールにバーコードを印字をしたいのです。タックシールのイメージはこんな感じになります。

1, 2
3, 4
5, 6
7, 8
9,10
11,12

ただバーコードを印字するだけならできるのですが、例えば3~7の部分の5枚だけに印字するというような方法はないでしょうか?業務で使用するためあくまでも素のMS-Access97でできれば良いのですが。
どうか回答をお願いします。
通報する
  • 回答数6
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル11

ベストアンサー率 34% (97/285)

みたび、Storkです。
気にはなっていたのですが、忙しくて遅くなりました。

>バーコードの残骸のようなものは印字されてしまうのですよ....
断言はできないのですが、Code39のスタートストップビットが残っているのではないかと思います。

確認方法は、バーは単純なもの(バーの数が少ない)で、可読文字がついていれば「* *」のような形になっているのではないかと思います。

もし、これが原因でしたら、バーコードコントロールのプロパティ―全般―データの確認で確認なしにしてください。

以下あやふや、自信なし、実証が必要です。
---------------------------------------------
スタートストップビットなしでも、運用に支障がなければ(リーダーで読めれば)そのままでも構わないでしょう。

リーダーで読めない場合は、「商品名:」のときのように、強制的に最初と最後に「*」をつけるとスタートストップビット付きと同じバーになると思います。

前回「大丈夫」といっておきながら「自信なし」になってすみません。
お礼コメント
tomatokids

お礼率 100% (6/6)

何度もアドバイスをいただきありがとうございます。

「残骸のようなもの」はおっしゃるとおり「*」でした。
スタートストップビットなしの設定でバーコードを印字すれば空データのレコードはバーコードが印字されませんでした。

が、正しく印字されなければならないバーコードがハンディーターミナル(バーコードリーダー)で読むことができませんでした(T_T)
スタートストップビットありのバーコードは正しく読めるだけにちょっと悔しいです。これはハンディーターミナル(バーコードリーダー)の仕様なんですかね。

本当に何度もアドバイスをいただきありがとうございました。
投稿日時 - 2002-03-23 10:05:17
-PR-
-PR-

その他の回答 (全5件)

  • 回答No.1
レベル11

ベストアンサー率 34% (97/285)

>例えば3~7の部分の5枚だけに印字.... 印字するデータを一時テーブルに書き出します。 その際に先頭に空データを2行追加しておけばよいのではないでしょうか。 ...続きを読む
>例えば3~7の部分の5枚だけに印字....
印字するデータを一時テーブルに書き出します。
その際に先頭に空データを2行追加しておけばよいのではないでしょうか。
補足コメント
tomatokids

お礼率 100% (6/6)

印字するデータをワークテーブルという一時テーブルに書き出して印字しています。
例でいうと1~2レコードには空データ、3~7レコードには印字データがっているテーブルをつくってそれをもとに印字します。
レポートはタックシール用なので1枚分用意すれば12枚分のデータが変わるだけでレイアウトはすべて同じになります。タックシールには「商品名:●●●」とその商品に対応したバーコードを印字します。●●●の部分は印字用のワークテーブルの値をそのまま表示するので問題ないのですが、タックシールの1,2枚目の部分に「商品名:」とバーコードの素の状態(ゴミのようなよくわからないもの)が印字されてしまします。
印字スタート位置の異なるレポートを12種類用意すればなんとか印字できますが、管理が大変なのでやりたくありません。「空データのレコードは何も印字されない」印字の方法はないでしょうか?
投稿日時 - 2002-03-16 09:39:58
お礼コメント
tomatokids

お礼率 100% (6/6)

早速の回答ありがとうございます。
補足のところにも書きましたが、空データのレコードは「何も印字しない」印字方法ってないですか?
アドバイス等ありましたら引き続きお願いします。
投稿日時 - 2002-03-16 09:44:29


  • 回答No.2
レベル11

ベストアンサー率 34% (97/285)

大丈夫。できますよ。 「商品名:」などのボックスをデータが空だったら、Visible=falseにするのが王道です。 しかし、コーディングが面倒なのでそれはやめましょう。回避策として、「商品名:」などの固定部分もデータとして一時テーブルに吐き出せばOKですよ。 ...続きを読む
大丈夫。できますよ。

「商品名:」などのボックスをデータが空だったら、Visible=falseにするのが王道です。

しかし、コーディングが面倒なのでそれはやめましょう。回避策として、「商品名:」などの固定部分もデータとして一時テーブルに吐き出せばOKですよ。
お礼コメント
tomatokids

お礼率 100% (6/6)

確かにコントロール部分のプロパティをtrueやfalseにすればテキスト部分とかは対応できそうですが、やはり面倒なのでワークテーブル作成時に「商品名:」の部分も追加して「商品名:●●●」というかたちのデータを作成するという方法を実はやってました。そうすればレポート上印字するテキストボックスは一つでいいですからね。

ただそうやってもバーコードの残骸のようなものは印字されてしまうのですよ。なぜですかね。
ちなみに印字するバーコードの形式はcode39です。
投稿日時 - 2002-03-16 12:34:26
  • 回答No.3
レベル10

ベストアンサー率 61% (75/121)

つまり、シールがもったいないから、5枚使ったら6枚目から印刷したい という意味だと理解して説明します。 以下の例は、ACCESS2000で作った現品表(箱に貼るシール)を印刷するために 作ったモジュールです。 ACCESS97で動作するかは未確認です。HELPで"MoveLayout"を検索してみてくだ さい。 まどろっこしいことをやっているのは、1箱に何個入れることが ...続きを読む
つまり、シールがもったいないから、5枚使ったら6枚目から印刷したい
という意味だと理解して説明します。

以下の例は、ACCESS2000で作った現品表(箱に貼るシール)を印刷するために
作ったモジュールです。
ACCESS97で動作するかは未確認です。HELPで"MoveLayout"を検索してみてくだ
さい。
まどろっこしいことをやっているのは、1箱に何個入れることができるかを
あらかじめ計算したものを"NUMBER_OF"に入れて、この枚数分だけ印刷するよう
にしています。

参考になるかはわかりませんが、レポートのイベントをほぼそのままアップ
します。

Option Compare Database
Option Explicit

Dim SkipCount As Integer
Dim GroupNum As Integer
Dim GroupCount As Integer

Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
SkipCount = InputBox("スキップする枚数", "印刷")
If Err Then Cancel = True
End Sub

Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
GroupCount = Me!NUMBER_OF'表示する枚数の取得
End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
If SkipCount > 0 Then
Me.MoveLayout = True'次の印刷位置に移動する
Me.NextRecord = False'次のレコードに進めない
Me.PrintSection = False'そのページに印刷しない
SkipCount = SkipCount - 1
ElseIf GroupCount > 1 Then
Me.NextRecord = False'次のレコードに進めない
GroupCount = GroupCount - 1
Else
Me.NextRecord = True'次のレコードに進む
End If
End Sub
お礼コメント
tomatokids

お礼率 100% (6/6)

アドバイスをいただきありがとうございます。

sghさんのおっしゃるとおりタックシールの半端がもったいないのでこのような質問をさせていただきました。

このサンプルはレポートの「開く時」のイベント部分に記述すればいいんですよね。「詳細」部分は「印刷時」に記述し、そのレポートを開いてたら私のイメージ通りプレビューには表示されました。ちゃんと「6枚目から」とか「3枚目から」とか。
プレビューには正しく表示されるのですが、印刷するとなぜか「1枚目」からの普通の印字になってしまいます。なぜだかわかりますか?

解決まであとちょっとだと思うのですが、どうかもう少しお付き合いしてください。
投稿日時 - 2002-03-23 10:42:23
  • 回答No.5
レベル11

ベストアンサー率 34% (97/285)

storkです。 >これはハンディーターミナル(バーコードリーダー)の仕様なんですかね データに「*」を付加してリーダーで読めるか確認されましたか? #4に書いたとおり、それで大丈夫だと思うのですが.... 他の業務に支障がなければリーダーの設定を「スタートストップビットなし」に設定してもいいと思います。 ...続きを読む
storkです。

>これはハンディーターミナル(バーコードリーダー)の仕様なんですかね

データに「*」を付加してリーダーで読めるか確認されましたか?
#4に書いたとおり、それで大丈夫だと思うのですが....

他の業務に支障がなければリーダーの設定を「スタートストップビットなし」に設定してもいいと思います。
お礼コメント
tomatokids

お礼率 100% (6/6)

今日試してみました。そうしたらアッサリと読めました。

もしかしたら語弊があるかもしれないけど、スタートストップビットってただ「*」が付いただけなんですね。てっきりチェックデジットの事だと思っていました。

早速VBでそれらしい事を書いて活用したいと思います。本当にありがとうございました。
投稿日時 - 2002-03-26 00:13:26
  • 回答No.6
レベル11

ベストアンサー率 34% (97/285)

たびたびすみません、storkです。 書き忘れました。 >これはハンディーターミナル(バーコードリーダー)の仕様なんですかね 仕様ではなく設定だと思います。 code39の初期設定では、「スタートストップビットあり」が通常です。今のバーではデータの最初と最後が判別できていないんですね。 私の知っている範囲では、ほとんど(?)の機種で「なし」に設定できると思います。 ...続きを読む
たびたびすみません、storkです。
書き忘れました。

>これはハンディーターミナル(バーコードリーダー)の仕様なんですかね

仕様ではなく設定だと思います。
code39の初期設定では、「スタートストップビットあり」が通常です。今のバーではデータの最初と最後が判別できていないんですね。
私の知っている範囲では、ほとんど(?)の機種で「なし」に設定できると思います。
お礼コメント
tomatokids

お礼率 100% (6/6)

何度も何度も申し訳ございません。

ハンディーターミナルは会社でいろいろと設定済みのものが与えられたため、細かな設定をすることができないのです。たぶん理解している者が会社にはいないと思います。

>強制的に最初と最後に「*」をつけるとスタートストップビット付きと同じバーになると思います。

実は#4の上記部分の意味がわからなかったため試していなかったのですが、意味がわかりました。今日、明日とお休みなので出勤したら試してみたいと思います。
結果は#4のお礼部分に記入したいと思います。
投稿日時 - 2002-03-23 21:55:08
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ