2017年5月24日水曜日

ms access アクセス メモ

自動車検査登録事務所へ提出するOCR用紙が、A4コピー用紙に自分で印刷したものを使えるようになった。
http://yasutam.blogspot.jp/2017/05/ocr.html
まだ陸運局で買ったOCRものがあったけど、ジャガーの車台番号がちょっとイレギュラーだったために(正確に言えば、自分の想定外の車台番号だったために)、その表示がおかしく表示されてしまったので、そうならないように訂正した。
それから、今までの買ったOCRと、自分印刷OCRの印字の位置が違うので、その調整もした。
これからは、自分でコピー用紙に印刷したOCRに切り替えようと思う。

ms accessのレポート表示部分。
今までの車台番号表示は
!@  @  @  @  @  @  @
としていた。

一応、後々のためにメモを残しておく。
レポート、テキストボックスの書式設定で
!@  @  @  @  @  @  @
とすると、
@マークの間のスペースと同じだけのスペースを文字を表示させたときに入れる。
@マークのところに文字が順番に入っていく。
!マークは、そのように表示させろという記号。

これだと、どうしてもOCR用紙の枠に正確にはめていけないので1つずつ文字を分けて一枠に一字ずつ文字を表示させていくことにした。で、今までの式にちょっと追加した。
----------------------------------------------------------
accessで、陸運支局に提出する第1号様式のOCRへの車台番号印刷部分。そこには車台番号23桁分まで空欄があるけど、そこまで必要ない。実際は7桁入力しておけば大丈夫。一応、"-"以下、15桁まで印刷できるようにしておいた。先頭から空欄を埋めて、残りは空欄。
最初の一文字だけの表示。
=Mid(IIf(InStr(1,[ChassisNo],"-")=0, Right([ChassisNo],15), Mid([ChassisNo], InStr(1,[ChassisNo],"-")+1)), 1, 1)
もし、ChassisNoに"-"が入っていなかったら右から15個分文字を切り取る、入っていたら、"-"の位置の次の位置から最後までの文字を切り取る。その切り取られた文字の最初の1文字分を表示させる。

次の式は、最初から2番目の文字を表示させるためのもの。
=Mid(IIf(InStr(1,[ChassisNo],"-")=0, Right([ChassisNo],6), Mid([ChassisNo], InStr(1,[ChassisNo],"-")+1)), 2, 1)

このようにして順番に15桁まで表示。

-----------------------------------------------------------
陸運支局に提出する第3号様式の2、OCRへの車台番号印刷部分。車台番号が7桁までの入力欄がある。
"-"以降の番号が6桁の時は、先頭から入力して最後は空欄。

=Mid(Right(IIf(InStr(1,[ChassisNo],"-")=0,Right([ChassisNo],7),Mid([ChassisNo],InStr(1,[ChassisNo],"-")+1)), 7), 1, 1)
もし、"-"が入っていなかったら、後ろから7文字を切り取る。"-"が入っていたら、それより後の7文字を切り取る。"-"が入っていて、その後が14桁とかある外車もあるので、それを後ろから7桁分で切り取る。そのあとで、前から1文字ずつ切り取って表示をしていく。

次の式は、最初から2番目の文字を表示させるもの。
=Mid(Right(IIf(InStr(1,[ChassisNo],"-")=0,Right([ChassisNo],7),Mid([ChassisNo],InStr(1,[ChassisNo],"-")+1)), 7), 2, 1)

このようにして最初から7番目までを表示。

0 件のコメント:

コメントを投稿