Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Access 2013)
枠の中に納まらない
投稿日時: 17/02/17 10:53:25
投稿者: 島ちゃん

お世話になります。
 
IIf関数で、[HINCOD]が無いときには、[TORISU]は空白になるようにしています。
次に、Format関数で枠の中に数字が均等になるようにしたいのですが出来ません
宜しくお願いします。
 
=Format(IIf([HINCOD_1]=0,"",[TORISU_1]),"@@@@")
 

回答
投稿日時: 17/02/17 11:16:24
投稿者: sk

引用:
IIf関数で、[HINCOD]が無いときには、[TORISU]は空白になるようにしています。
次に、Format関数で枠の中に数字が均等になるようにしたいのですが出来ません

・どのオブジェクト(クエリ/フォーム/レポート)での話をしているのか。
 
・仮にフォーム/レポートの話であるとして、
 ここでの「枠」とは、連結テキストボックス
 または演算テキストボックスのことを指しているのか。
 
・「数字が均等になる」とは具体的にどのような
 表示状態になることを意味しているのか。
 
引用:
=Format(IIf([HINCOD_1]=0,"",[TORISU_1]),"@@@@")

・上記の IIf 関数では、[HINCOD_1]の値が 0 であるならば空文字列を、
 0 でなければ[TORISU_1]の値を返すように式が設定されているが、
 [TORISU_1]のデータ型は何型なのか。

投稿日時: 17/02/17 11:53:13
投稿者: 島ちゃん

skさん
有難うございます。
 
説明不足ですみません。
 

引用:
・どのオブジェクト(クエリ/フォーム/レポート)での話をしているのか。

レポートになります。
 
引用:
・仮にフォーム/レポートの話であるとして、
  ここでの「枠」とは、連結テキストボックス
 または演算テキストボックスのことを指しているのか。

連結テキストボックスです。
 
引用:
・「数字が均等になる」とは具体的にどのような
 表示状態になることを意味しているのか。

印刷用紙に枠があり、その枠に合わせて印字が出来る様にしたいのです。
 
引用:
・上記の IIf 関数では、[HINCOD_1]の値が 0 であるならば空文字列を、
  0 でなければ[TORISU_1]の値を返すように式が設定されているが、
  [TORISU_1]のデータ型は何型なのか。

[HINCOD_1]も[TORISU_1]も数値型になっています。
 
関数の入力は正しいのでしょうか?
宜しくお願いします。

回答
投稿日時: 17/02/17 12:04:06
投稿者: sk

引用:
Format関数で枠の中に数字が均等になるようにしたい

引用:
印刷用紙に枠があり、その枠に合わせて印字が出来る様にしたいのです。

それがどのような状態であるかを具体的に示して下さい。
 
引用:
[HINCOD_1]も[TORISU_1]も数値型になっています。

例えば、[TORISU_1]の値は 1 であるケース(1桁)、
10 であるケース(2桁)、100 であるケース(3桁)、
1000 であるケース(4桁)のいずれかが生じ得るとして、
それぞれのケースにおいてどのような形で出力されることを
目指していらっしゃるのでしょうか。

投稿日時: 17/02/17 15:42:16
投稿者: 島ちゃん

skさん
有難うございます。
 

引用:
印刷用紙に枠があり、その枠に合わせて印字が出来る様にしたいのです。

用紙に右側から、1桁目、2桁目、3桁目、4桁目と左側に数字が記入出来る様に枠があります。
[TORISU_1]1桁の場合は、1桁目の枠内に印字出来ます。
[TORISU_1]2桁の場合は、1桁目と2桁目の枠の上に数字2桁目が印字されます。
[TORISU_1]3桁の場合は、1桁目と2桁目の枠の中に数字3桁が印字されます。
[TORISU_1]4桁の場合は、1桁目と2桁目と3桁目の枠の中に数字4桁が印字されます。
 
枠にあった場所に印字が出来ればと思っています。
宜しくお願いします。

回答
投稿日時: 17/02/17 16:20:41
投稿者: sk

引用:
用紙に右側から、1桁目、2桁目、3桁目、4桁目と左側に数字が記入出来る様に枠があります。
[TORISU_1]1桁の場合は、1桁目の枠内に印字出来ます。
[TORISU_1]2桁の場合は、1桁目と2桁目の枠の上に数字2桁目が印字されます。
[TORISU_1]3桁の場合は、1桁目と2桁目の枠の中に数字3桁が印字されます。
[TORISU_1]4桁の場合は、1桁目と2桁目と3桁目の枠の中に数字4桁が印字されます。

・用紙上において 4 つの枠が横並びに配置されており、
 1 つの枠につき 1 つの数字が印字されるようになっている。
 (実線で描画された四角形が一定の間隔を置いて 4 つ並んでいるのか、
  実線で描画された長方形を縦の実線/破線で 4 等分しているのかは不明)
 
・[TORISU_1]の値は最大 4 桁( 0 〜 9999)の数値であり、
 上記の枠に対して右詰めで各桁の数字が印字されるようにしたい。
 
ということであれば、
 
引用:
=Format(IIf([HINCOD_1]=0,"",[TORISU_1]),"@@@@")

この式の結果(前スペース埋めの数字文字列)の
各桁の 1 文字を Mid 関数によって抜き出す式が
設定された演算テキストボックスを 4 つ追加して、
それらの演算テキストボックス(の文字)が
用紙上のそれぞれの枠にフィットするように
位置合わせをされた方が確実でしょう。

回答
投稿日時: 17/02/21 12:47:12
投稿者: hatena
投稿者のウェブサイトに移動

現状のテキストボックスの幅を4桁分の枠を覆うようにして、「文字配置」プロパティを「均等割り付け」にしたらどうでしょうか。
 
他にも、下記でいろいろな方法を紹介していますので、ご参考に。
 
定型枠に一文字ずつはめ込み印刷 - hatena chips
http://hatenachips.blog34.fc2.com/blog-entry-127.html

トピックに返信