• ベストアンサー

ACCESSの値の代入に関して

ACCESS2000を使用しています。 あるテキストコントロールに8桁のコードを入力します。 入力後、更新後のアクションで隣にあるコントロールに=left(8桁のコントロール,4)の 値を代入する仕組みを作成したのですが、この8桁に数字と文字(アルファベット)が 混在することがあり、数字のみの場合はなんなく代入できるのですが、文字が混在する 場合、エラーとなってしまいます。 代入するコントロールのデータ型は勿論テキスト型にしております。 このエラーの対処方をご存知の方がいらっしゃいましたらご教授お願いします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

ひょっとして、マクロの「値の代入」で、以下のように設定していませんか? アイテム : Forms!○○!○○ 式:=Left(Forms!●●!●●) だとしたら、「Left」の前の「=」を削除すれば、ご希望通りの動作をすると思います。 (Access2000で確認)

xmoto
質問者

お礼

!!!!!!!!!!ズバリ!!!!!!!! DexMachinaさんの回答で解決できました!!! ありがとうございます。 これで作業効率が倍増します。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

Left関数はバリアント型の値を返すので文字数字が混在していても大丈夫なのですが・・。 >入力後、更新後のアクションで・・ は更新後のイベントに 隣のコントロール名 = Left(8桁のコントロール, 4) または Me!隣のコントロール名 = Left(8桁のコントロール, 4) のようにしてあるのですよね? これならイベントの実行に問題ないはずです。 数字・ひらがら・英字等何でも4桁切り出してきます。 または 隣のコントロール名 = Mid(8桁のコントロール,1,4) でもいけますが。 >文字が混在する場合、エラーとなってしまいます どのようなエラーでしょうか?

xmoto
質問者

お礼

ありがとうございました。

noname#29127
noname#29127
回答No.1

>隣にあるコントロール が数値のみの入力しか受けつけなくなっていませんか? left関数は文字の切り出しに対応していると思いますので 文字が入っていても大丈夫だと思いますが。 問題のきりわけのために、left関数の結果だけ画面表示するとか されてみては。

xmoto
質問者

補足

コントロールのデータ型はテーブルに設定されたデータ型が適用されるのですよね? エラーの後にハンドで入力すると何事もなくデータは格納されるのです。 何がいけないのだろう・・・?

関連するQ&A

専門家に質問してみよう