• ベストアンサー

Access2000でテキストボックスから文字列抽出

Access2000のフォーム上でのデータの抽出で困っています。 [生年月日年]には、生年月日の年(和暦:2桁)が格納されています。 ここから、[生年月日年1]に生年の上1桁を抽出したいのですが、何も抽出 されません。 下記のようなコードを記述してみたのですが、うまくいきません。 どうしたらよいでしょうか? Private Sub 生年月日年1_Enter() Me![生年月日年1] = MidB([生年月日年], 1, 1) End Sub ちなみに、LeftB もやってみましたが、結果はやはり何も抽出されませんでした。 Mid や Left は固定文字列からの抽出にしか使えないのでしょうか? おわかりになるかた、できるだけ簡単なコードをご教示いただければ、幸いです。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 これでどうですか。 Me![生年月日年1].Text = Left(Me![生年月日年].Value, 1) では。

ariga
質問者

お礼

ありがとうございました。 また、お礼が遅くなってしまってすいません。 やってみたところ、非常にうまくいきました。 MID でもうまくいきました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.2

Accessでは、文字列には Unicode が採用されています(たしか、Access95 以降からだったと思います)ので、半角文字も2バイトになります。 そのため、MidB や LeftB 関数を使う場合には、数字も2バイト文字として考える必要があります。 (詳しくは、HELPの Unicode 形式 を参照してください。) 具体的には、 Me![生年月日年1] = LeftB([生年月日年], 2) または、 Me![生年月日年1] = Left([生年月日年], 1) とすれば、ご希望の処理が可能になると思います。

ariga
質問者

お礼

ありがとうございました。 また、お礼が遅くなってしまってすいません。 半角文字も2バイトだとは知りませんでした。 さっそくチャレンジしてみます。

すると、全ての回答が全文表示されます。

関連するQ&A