Microsoft Access 掲示板

高さが可変のテキストボックスの上下中央に文字を配置したい / 17

27 コメント
views
4 フォロー
17
亞紀姐 2024/01/05 (金) 21:53:41 6b68c@61731 >> 16

1.数字を桁区切り+¥がついた通貨型で表示したい
2.指定した場所から左揃えではなく右揃えで表示したい
3.同じような書式設定にしたいものが複数あるが、同じコードを繰り返す以外のやり方はないのか?

1に関しては
上記のコードだと下記の画像の様に桁区切りも¥もない数字になってしまい、以下を試しました。
.text → SetFocusがレポートの印刷プレビューではできない
.Value → 値を代入できないとエラーが出る
.Format = "Currency" → 何も変化なし
Me.請受金額月額 = Format(Me.請受金額月額, "\#,##0") → エラーで進まない
という感じで、結局希望する「協力会社1回金額」のような表示にはできませんでした。

2に関しては
上記コードだと左揃えだったので

        Me.CurrentX = .Left + (Me.Width / 2) - (Me.TextWidth(.Value) / 2)

としたらテキストボックスよりもだいぶ右の方に表示されました。

尚、よくわからずに

        Me.CurrentX = .Right

にしてみましたが、当然エラーでした。

3に関しては
まず、レコードによっては値がNullの場合があるため上記のコードにしています。

画像1

テキストを上下中央に配置したいテキストボックスは
テキストが1行のものが15(画像の請求回数・請受金額月額・協力会社1回金額・txt_1月~12月まで)、複数行の可能性があるものが2(協力会社名・作業内容)ありますが、複数行表示の可能性があるものは最悪このままでも、と思っていますが上記のようなコードをあと13書くのはコードがかなり冗長になるので避けたいと思いつつ、いい方法が見つけられませんでした。
(余談ですが、当初テキストボックスの名前が「1月」だったのですが、『Me.1月』にするとエラーになってしまい上記の様に『txt_1月』に変更しました。エラーの理由(規則?)を探しましたが見つけられませんでした)

1~3に関し、どうにかクリアしたいのですがもう少し教えていただけると助かります。(当初の質問とずれて来てすみません、問題があるようでしたら新たなスレッドを立てます)
よろしくお願いします。

通報 ...
  • 19

    本題から遠いので個別に

    『Me.1月』にするとエラーになってしまい

    ニンゲンが記述するものはすべて「文字」なので、それが計算してほしいモノ(計算式)なのか、名前の指定なのかはそれだけでははっきりとしません
    例えば「1 + 1」という名前のテキストボックスを作ったらそれを指定するときはどうしたらいいでしょうか?

    ACCESSは開発を楽にするためにある程度自動認識でこれらの判別をしています
    Me.1月という記述はその自動認識によって構文エラーとなるような記述ということですね

    それがオブジェクトの名前による指定であると明記する場合には[]で囲みます。Me.[1月]とすれば正常に動作します


    命名規則(の一部)というやつですが、どんな文字でもいいからと言って本当にどんな名前にしてもいいというわけではないということですね

    可能な限り数字や記号から始まる名前を付けるのはやめましょう

  • 22
    亞紀姐 2024/01/09 (火) 10:23:05 6b68c@61731 >> 17

    ありがとうございます。

    命名規則に抵触しているのだろうと探していたのですが「こういう風につけましょう」しか見つけられず、「ダメな理由」を見つけることが出来ずにいたのでとても助かりました。

    今あるものを確認して修正します。