• 締切済み

アクセスで桁数を増やしたい

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

色々方法があります。 VBAでレコードを加工 SQLで加工 関数で など。 ーーー VBA,SQLを使わないのがアクセスの主義とすると、DLOOKUP関数でやってみました。 まず変換用のテーブルを作ります。 番号変換T テーブル 内容 ID 先頭桁 加算数 ID 先頭桁 加算数 1 1 1100000 2 2 1200000 3 3 1300000 4 4 2100000 5 5 2200000 6 6 3100000 7 7 4100000 ーーー クエリで フィールド1は、もとの番号で 左1桁: Mid([フィールド1],1,1) 右4桁: Right([フィールド1],4) 変換後: [右4桁]+DLookUp("[番号変換T]![加算数]","[番号変換T]","[番号変換T]![先頭桁]=" & [左1桁]) の3つのフィールドを作る(""のつける場所に苦労する。) ーーー 実行すると 結果 ID フィールド1 左1桁 右4桁 変換後 1 12222 1 2222 1102222 2 23333 2 3333 1203333 3 32222 3 2222 1302222 4 43333 4 3333 2103333 5 51234 5 1234 2201234 6 68888 6 8888 3108888 7 70001 7 0001 4100001

runner0023
質問者

お礼

入院しておりまして、お礼が大変遅れましてどうもすみません。 当方の技量は、はじめてシリーズの程度なのでよくわかりませんが、書かれていることが理解 できるように本を探してみます。 ありがとうございました。

関連するQ&A

  • アクセスで桁数をそろえ数字の前に0をつけたい

    例えば、 12 345 5678 という数字があり、桁数を6桁表示にさせます。 000012 000345 005678 エクセルであれば =TEXT(A1,"000000") で可能ですがアクセスのフィールドでは TEXTが使用できません。 どうのようにすればいいのでしょうか?

  • アクセスのNZ関数のことで教えて頂きたいです。

    アクセスのNZ関数のことで教えて頂きたいです。 アクセス2000です。クエリで 売上日計: nz([売上計],0) というフィールドにプロパティ書式で#,###を入れましたがそうなりません。そのクエリの [売上計]に同じことをしましたら出来ました。 桁数が多いので、桁区切りを入れたいのですが、何か方法があるのでしょうか。 よろしくお願いします。

  • 主キーが二つないと、フォーム入力が思ったようにできないのか?

    こんばんは。 従業員の出入りが激しいため、従業員の入社時の「志望動機」と 「退社理由」をデータベースで残して 分析しようという試みのため、 入力用にフォームを作ったけどうまくいきません。 (1)社員基本情報テーブル(主キーは、社員コード。フィールドは、社員コード、氏名、入社日、退社日、部署) (2)入退社テーブルを新規に作成(主キーは社員コード。フィールドは志望動機、退社理由) (1)、(2)を社員コードで結合してクエリを作成しました。 このクエリを元に、フォームを作成しました。 こちらで作成したいフォームのイメージは 社員コードを入れると、氏名と部署、入社日、退社日が自動的に参照。 あとは志望動機と退社理由を入れる。 ところが、実際には 社員コードを入れても自動的に参照は行われず、ただ、一度フォームを閉じてもう一度開けるとそこには上記データが参照されてきます。 ちなみに、(2)で主キーを社員コードと志望動機の二つにすると うまくいったのです。 うまくいった理由も分からないですし、うまくいかなかった理由も分かりません。 これは何がどう悪くてこのようになっているのでしょうか?

  • Access フィールド内の値で、右端から5桁目の値だけを抽出する方法について

    Accessのフィールド内にある半角英数字(10桁~20桁)の右端から5桁目(または左端から5桁目)だけを抽出する方法を教えて下さい。 以下のように 各フィールド内に値が入力されています。 入力されている桁数は10桁以上20桁未満です。(全て半角) ◆元データ(レコードが10万件以上ある)  フィールド1    フィールド2     フィールド3 (1) 12345678910    11aa22bb33cc44dd55  1010101010101010 (2) 9876540000     aaaaaabbbbbb1111    11111111111111 ◆右端から5桁目だけを抽出する  フィールド1    フィールド2     フィールド3 (1)  7          4          0 (2)  4           1           b よろしくお願い致します。

  • Access 主キーの変更について

    調査データの集計、蓄積用のDBを制作しております。 制作しているDBは主キーに県コードが含まれています。 そのため、調査データの住所に変更があるとコードを変えなければなりません。 AccessでのDBはほぼ完成しており、今からコードの形態を変更することは避けたいです。(もともと古い独自のDBのデータを流用しています。) 現在、主キーに県コードが含まれていますが、それとは別に県コードフィールドを設けています。 ※コードの形態 (先頭の二桁又は一桁が県コード、コードは4桁又は5桁) 例   主キー 北海道 1001 東京  13199 沖縄  47001 新規のデータを入力する際に主キーを入力しているのですが VBAの知識がないので県コードは個別に入力しています。 住所が変わり県が変更になった場合主キーを変更する必要が あるのですが一対多でリレーションシップをいくつもしてあり サブフォームなども使用してます。 主のフォームで主キーを変更した場合、関連付けられたレコードの主キーも変更されるようにしたいのですが可能でしょうか?

  • accessのフィールドに10桁の数字は入らない??

    あるCSVからAccessのテーブルに読みこんだのですが 一部のフィールドで文字の欠落がありました。 元のCSVの内容どおりに、手入力で欠落した箇所に 値を入れようとしたのですが、どうも9ケタの数字は入るのですが 10桁の数字は入らないようでエラーが出ます。 ★メッセージは以下の通りです。  このフィールドに入力した値が正しくありません。  たとえば、数値型のフィールドに文字列を入力しました。 Accessの仕様として、数字の桁数制限があるのでしょうか? また、解決策は何かないでしょうか? XP2、ACCESS200です

  • ACCESS2003のテキストボックスの最大桁数について

    Access2003のテキストボックスには、MaxLengthプロパティがありません。変わりに以下のような、コードで対応しようと試みたのですが、いまいち動きが悪いのです。以下のコードは、最大4桁までテキストボックスに入力可能とします。 Private Sub txtBox_KeyPress(KeyAscii As Integer)   If Len(txtBox.Text) > 3 Then     KeyAscii = 0   End If End Sub 最大入力桁数4桁を実現していますが、4桁入力後『Insert』キーを押下して、上書きモードでの修正ができません。 以下例1はOKですが、例2が実現できません。 例1:1回目新規入力『12』 ⇒ 2回目修正『123』⇒3回目修正『1234』 例2:1回目新規入力『1234』 ⇒ 2回目修正『9999』 VBのMaxLengthプロパティのようなことはできないのでしょうか?

  • Accessの短いテキスト型の後ろ空白埋めさせない

    Accessで短いテキスト型で項目を定義してデータを登録すると、 設定した桁数まで後ろに空白が勝手に埋まります。 例えばフィールドサイズを10桁に設定して "abcdefg"という7桁データを入れると、 "abcdefg"+半角スペース3桁になります。 半角スペースで埋まらないようにできませんか?

  • 桁数の異なるコードを分解したい

    製品のコードを分類別に表にしたいと考えています。 例えば コード     機能1 機能2 機能3 AABBCCC  AA   BB   CCC のような感じです。 しかし、あるメーカーのコードは機能部分の桁数が決まっていません。 AABCCC、ABBBCC、AABBBBCC、などのように1~4桁ぐらいの英数字で機能分けされています。 機能1や機能2に登場する組み合わせは決まっています。 まずはExcelやAccessでの表作りの検討を始めているのですが、 どのように自動化できるものでしょうか。 Officeシリーズでは無理なのでしょうか。。。 どうぞよろしくお願いします。

  • フィールドの分割

    DBはアクセスなのですが、例えばフィールド1の桁数が 10桁とします。しかし実際VB上のテキストで入力させ る桁数を5桁とした場合、SELECT文で比較する時にDBの フィールド1の5桁分だけを持ってきたいわけなんですが 5桁のみをどうやって把握させれば良いのでしょうか? 初心者で申し訳ありませんが、よろしくお願いします。