• 締切済み

Access_「1」と入力→「0001」に変換

Accessのフォーム上で4桁のコード扱うテキストボックスがあります。 このテキストボックスは必ず4桁で入力してもらいたいものです。 「1」と入力しEnterが押された時は「0001」となる様にしたいのですが どの様に設定すればよろしいでしょうか?

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

数値型で表示だけでいいなら書式を「0000」と0を4つにする。 テキスト型でなら入力定義を「9999;0;0」とする。

picopico_7
質問者

補足

説明が不十分ですみません。 元テーブルのデータ型はテキスト型です。 入力定義とは、テキストボックスのプロパティの「定型入力」のことでしょうか? 定型入力へ「9999;0;0」を入力した結果、テキストボックスへ「1」と入力した時に「1000」と表示されEnterで次のテキストボックスへ移ると「1」と表示されてしまします。 やり方が違う様でしたらご指摘頂けると嬉しいです。

noname#22222
noname#22222
回答No.2

すみません! Public Function LenH(ByVal Text As String) As Integer   LenH = LenB(StrConv(Text, vbFromUnicode)) End Function SetR 関数で LenH 関数を利用していました。

picopico_7
質問者

お礼

すみません。補足の補足です。 このテキストボックスでは0~9までの数字しか扱いません。 元テーブルでのデータ型はテキスト型です。

picopico_7
質問者

補足

とてもいろいろ書いて頂いてこうゆう質問は大変恐縮なのですが このコードはどこに書いてあげれば良いのでしょうか? また設定の仕方など細かく教えていただけると助かります。 VBAはExcelで軽くやったことがあるんですがAccessと言うアプリケーションに関してはかなり初心者なものでして・・・。 どうぞよろしくお願いしますm(_ _)m

noname#22222
noname#22222
回答No.1

? SetR("1", "0000") 0001 Private Sub テキスト57_AfterUpdate()   Me.テキスト57 = SetR(Me.テキスト57, "0000") End Sub と、SetR 関数を利用すると目的を達成できます。 ? Format(1, "0000") 0001 または、 書式="0000" でもOKなので、SetR 関数はお呼びでないかも?? でも、数値でないコードも予定されていれば役に立つかも・・・。 適宜3つからチョイスして下さい。 Public Function SetR(ByVal Text1 As String, ByVal Text2 As String) As String   Dim I As Integer   Dim J As Integer   Dim L As Integer   Dim M As Integer   Dim N As Integer   J = Len(Text1)   L = LenH(Text2)   For I = 1 To J     M = LenH(Mid$(Text1, 1, I))     If M > L Then       SetR = Left$(Text2, L - N) & Left$(Text1, I - 1)       Exit Function     Else       N = M     End If   Next I   SetR = Left$(Text2, L - N) & Text1 End Function

関連するQ&A

  • 【ACCESS】入力規則(Len関数)の桁数の複数指定

    ACCESSフォームのあるテキストボックスに入力規則(Len関数)を11桁に設定しているのですが9桁もまれに登録の対象となるため9桁と11桁のみを入力規則としたいのですが、どのような式になりますか? なおデータ型はテキスト型、項目名は機種コードとします。

  • 磁気カードの入力

    access2000にてフォームを作成してそのテキストボックスにて磁気カードを入力し、別のテキストボックス(2)にカードのデータの16桁目から7文字のみをテキストボックス(2)に表示入力する方法があったら教えてください。excel ではmid()関数のようなものです

  • テキストボックスの入力で困っています

    アクセス2010で請求書を作成しています 請求データベースの入力フォーム上の(商品コード)テキストボックス(非連結)に入力して、その値を使い、Dlookupで商品コードデータベースから商品名を入力フォーム上の(商品名)テキストボックスに表示させています 商品コードデータベース上で商品コードを長整数型で設定してあります 商品コードには、40011などの整数型の範囲を超えたデータがあります いろいろな理由から、商品コードは主キーに設定せず、インクリメント型でもありません 入力フォーム上の(商品コード)テキストボックスに整数型の範囲(-32768から32767)なら正常に動作します しかし整数型の範囲を超えて入力すると、「このフィールドに入力した値が正しくありません」が表示され、先に進めません 申し訳ありませんが、何か打開策をお知らせいただけると幸いです

  • oracle8に接続Access97での質問

    Access97のフォーム上にoracleのテーブルからデータを呼び出したいのです。oracle側でのIDコードは8桁あり、初めの4桁は固定で例えばIDコードgggg0000とあるとするとggggの部分は固定です。これをAccess97のフォーム上に呼び出すときは後半の4桁(0000)だけをテキストボックスに取り出したいのです。また反対にAccess97のフォーム上で登録するときは後半の4桁(例えば0001)だけをテキストボックスに入力します。そしてoracle側には8桁(gggg0001)でデータを保存したいのです。初心者なんで丁寧かつ詳しい説明をお願いします。説明不足でありましたら質問してください!よろしくお願いします。

  • Accessの入力規則の設定について

    初心者ですのでよろしくお願いします。 Access2000で「現金出納帳」のフォームを作成しました。フォームのテキストボックスに「科目コード」「収入金額」「支出金額」があります。 「科目コード」には1から20までの数字を入力します。 「収入金額」と「支出金額」のテキストボックスの入力規制に次のような設定はできますか? 「収入金額」は「科目コード」が1から10までの場合のみ入力できる。「支出金額」は「科目コード」が11から20までの場合のみ入力できる。 よきアドバイスをよろしくお願いします。

  • ACCESS2010テキストボックス値を抽出条件に

    ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。

  • 非連結テキストボックスの数字入力について

    どうしても分からないので質問します 今、アクセス97にてフォームを作成しています 構成はメインフォーム + サブフォーム ×2です コードを入力するテキストボックスをメインフォームに作成したのですが実際入力してみると桁溢れの場合、 「実行時エラー’3163’:フィールドが小さすぎるため、追加しようとするデータの量を受け入れることができません。データの量を少なくして、挿入または貼り付けを行なってください。」とエラーメッセージが表示されてしまいます エラーを出ないようにするにはどうすればいいのでしょうか? 宜しくお願いします

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • Access97で、“分:秒”という形式で入力・保存する方法

    Access97で、あるテーブルに時間のフィールドを作りました。 このテーブルをもとにフォームを作成しました。 ここで、このフォームの、あるテキストボックスのコントロールソースを時間フィールドに設定し、書式を“nn\;ss”に設定し、定型入力で“##:##;0;*”としました。 このフォームのテキストボックスにカーソルをあてると“**:**”となり、4つの数字を入力できるのですが、この4つの数字を分秒では認識せず、時分としてしか認識しないようです。 どうすれば4桁の数字を入力し、“分:秒”という形式で表示・保存できるのでしょうか。 宜しくお願いします。

専門家に質問してみよう