• ベストアンサー

Access2007でフィールドの規定値として、一意の文字列「D-★★★★-☆☆☆☆」(★と☆の部分は半角数字)を設定したい

お世話様です。 まったくもって表題の通りなのですが、 Access2007でフィールドの規定値として、一意の文字列「D-★★★★-☆☆☆☆」(★と☆の部分は半角数字)を設定したいと思っています。 ●「」はナシです(説明のためにつけただけです) ●かならず D-のハンカク2文字が最初につく ●★★★★、および、☆☆☆☆の部分は、[0-9]が4つつづく ●新規レコードを追加しても、必ず値は一意になる (★★★★と☆☆☆☆が一致しても問題ないです。★と☆の間のハイフンは読みやすさのためにそうしたいとおもっただけなので) 一意とはいっても、数字の部分が8けたなので、 00000000~99999999までの1億レコードまでしか作れないことは承知です。 実際、1億もレコードが増えることは想定していません。 これを実現するにはどうすればいいのでしょうか? 自分、MySQLとPostgresはいじったことあるのですが、 Accesssはほんのちょっとでして・・・。 たぶんAccesssとしては初歩の初歩なのでしょうが・・・ ご存じの方、教えていただければ幸いです。 よろしくお願い申し上げます。

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

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

#1です。 >RndとNowと4桁の整数に変換する巻数(不明。なお、3桁だとしたら0パ>ディングする)を使えばうまくいくような気がするのでしょうが・・・ Rndで4桁数値とNowで時分の表示なら "D-" & Format(Rnd() * 10000, "0000") & "-" Format(Now(),"hhnn")

daisuke_dm
質問者

お礼

ご回答ありがとうございます。 "D-" & Format(Rnd() * 10000, "0000") & "-" Format(Now(),"hhnn") で、"-" のあとに & がなかったですが、それをいれたらいけました。 ありがとうございます。

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

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

入力のたびにひとつずつカウントアップするということでいいいのなら 入力済の最大値を求めそれに1を足すというありふれた処理でいいのでは Me.txtID.DefaultValue = "'" & "D-" & Format(Nz(Right(DMax("ID", "[テーブル名]"), 8), 0) + 1,"00000000") & "'"

daisuke_dm
質問者

お礼

ご回答ありがとうございます。 今回は#3さんのやりかたでいってみたいとおもいますが、 今後、#4さんのやりかたを参考にさせていただきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

安直な案 テーブルデザインでオートナンバー型のフィールドを作成し 書式に、"D-"0000-0000 とすれば? 内部的には単なる長整数型なので、”D-”は含まれません。 でも・・ 実は、A-、B-、C-・・・・とかも有ったりして。。。

daisuke_dm
質問者

お礼

ご回答ありがとうございます なかなかトリッキーなやりかたで、なるほど、と思いました。 ただ、オートナンバーだとヒューマンエラーが出そうな気がしまして・・・ (できれば(<=自分の技術的に)印刷も可能にしたいので) ヤフオクの商品IDのようなものを想定しているのですが・・・ いい解決案がございましたら、お教えいただければ幸いです。 以上、よろしくお願い申し上げます。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

定型入力欄に「"D-"0000-0000;0;_」とすればいいのでは? http://office.microsoft.com/ja-jp/access/HA100964521041.aspx

daisuke_dm
質問者

お礼

ご回答ありがとうございます、 掲載していただいたURL,大変みやすく参考になります。 ただ、これだと「D-★★★★-☆☆☆☆」の★と☆の部分は自力でなく 自分で入力しないといけないですよね。。。 規定値として入力させたいのですが。。。、 RndとNowと4桁の整数に変換する巻数(不明。なお、3桁だとしたら0パディングする)を使えばうまくいくような気がするのでしょうが・・・ 型不一致とかいろんなエラーがでてk実現できません、 どうすればよろしいでしょうか? 以上、よろしくお願い申し上げます。

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

関連するQ&A

  • 1フィールド目を16文字目の後に半角スペースを入れたい

    repquota -a コマンドにてユーザ容量を 割り出しております。しかし、16文字に設定されたユーザ名の 後に2フィールド目であるはずのハイフンがくっついて表示されて いるため、【ユーザ名--】という文字列が1フィールド目に なってしまいます。 その為、1フィールド目の16文字目の直後に半角スペースを 入れるという指定をしたいのです。 以下はわかりやすく16文字まで指定できるユーザ名を 数字だけにしました。2フィールド目に必ず--とハイフンが 2回続きます。ユーザ名の中にハイフンが2回続くことも考えられる ので、悩んでおります。 1234567891123456-- 50 50 123456789--23456-- 20 20 本来であれば容量の50と20という数値は3フィールド目と4フィールド目 であって欲しいのです。 substr($1,1,16)を使ってみましたが、3フィールド目と 4フィールド目の数値を計算して現在のディスク使用率を 出したいので、1フィールド目の16文字目の直後に半角 スペースを入れたいのです。 どうしたらよいでしょうか

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

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

  • エクセルで、半角文字列を抽出するには

    使用機種はXPでEXCEL2003です。 住所のデータ整理をしています。 地名の後の番地のみ半角数字(ハイフンも半角)で入力されており、その部分だけを別の列に移動させる作業です。 関数で、半角文字列だけを抽出することはできますか? left関数を使おうとも思いましたが、文字数がバラバラなので、難しいと思いました。 私は、一つひとつコピー→ペーストをするしか思いつかないほどの初心者です。 どうぞよろしくお願いいたします。

  • セル内の特定の文字の右隣りの半角数字を取り出したい

    いつもお世話になっております。 エクセル関数で、セル内の文字列の中の特定の文字の右隣り2文字か3文字を取り出したいのですが、いろいろ試行錯誤しているのですが中々突破口すら開けず質問させていただきました。 例)      A     B    C    D 1          赤    青    黄 2 赤15個青99個   15    99     3 薄青16個赤71個  71   16 4 赤133個黄25個  133        25 上のように、B2:D4セルに数式で抽出したいです。 ないものは空白でもゼロでも構いません。 検索値は漢字1文字で、取り出したい値は半角数字2桁or3桁です。 半角数字の後に必ず「個」が付きます。 「薄青」でも「青」を検索値とするのですが、取り出したい数字が2桁か3桁の二通りあることもネックになるかと思います。 関数に精通している方いらっしゃったら是非教えてください。 よろしくお願いいたします。

  • Excelの置換機能で文字列の部分削除

    Excelの置換機能を使って、あるパターンの文字列の特定の部分のみ削除すると言うことは可能でしょうか? <文字列例> AB01234-56789 のハイフン以下(-56789)のみを削除したい 対象の文字列パターンは、最初の2桁がアルファベットで固定、そのあと数字が5桁(ユニーク)続き、ハイフン、その後ユニークな文字列(数字5桁) さらに言うと、ファイル内にはこのパターン以外の文字列も存在している(ハイフン含む)ので、上記のパターンの文字列のみをマッチングさせ、ハイフン以下を削除したいのです。 やはり、VBAとかで正規表現使わないと無理ですかね?? 数万件の大量のデータの中から上記処理をせねばならず困っております・・ ご教授いただけると幸いです。

  • 特定のフィールドの文字列を取得

    初心者ですがよろしくお願い致します。 □わからない事 ・特定のフィールドの文字列を取得 ・取得した文字列を配列に格納 □条件 ・mysqlにはすでにデータが登録済み ・PHPより操作 □具体例 フィールド名(hogehoge)に文字列が入っています。 AAAAAA(10000レコード) BBBBBB(5000レコード) CCCCCC(3000レコード) DDDDDD(1000レコード) ・・・・・・(・・・・レコード) 重複が多数ありますが、重複しない文字列だけを取り出して配列に格納したいと思っていますが、うまいやり方がわかりません。 どなたか教えて頂けませんか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 正規表現で、半角大文字と半角数字,ハイフン許可

    PHPを使った正規表現で困っています。 /^(\w|(?!-{2,})-)+$/ ・半角大文字(A~Z)、数字(0~9)とハイフン(-)のみ許可. ・先頭にハイフン(-)が利用できない. ・ハイフンは2回連続で利用できない.例) -- に対応したいと思っていますが、いろいろやってみましたが上記の方法で上手くいきません。

    • ベストアンサー
    • PHP
  • SQLのデータで半角カナを全角にしたい

    レコード数かけるフィールド数が何万とあるデータベースのデータの中で 半角カナの部分だけを全角カナに変えたいのですが、何かよい手はありますでしょうか? 半角数字と半角記号(ハイフンやスラッシュなど)はそのままにしておきたいのですが。 xamppの1.7.3を使用しており、MySQL5.14、PHP5.31です。 ご存知の方いらっしゃればアドバイスお願いします。

  • 数字と文字列から数字のみ取り出したい

    下記のような数字と文字の組み合わさった文字列から数字のみを取り出したいのですが、 基準となる文字もなく、数字の桁、文字数もバラバラで、さらに文字部分にも数字が 入っていて調べた数式が使えず困っています。 (例1)109778大倉山マンション第3⇒109778 を取り出したい (例2)13482マックハイム綱島第10 ⇒ 13482 を取り出したい (例3)12896ハイム大倉山⇒12896 を取り出したい (例4)1198藤和シティコープ大倉山太尾町A棟⇒1198を取り出したい 調べた数式=LEFT(A1,LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},)))) 上記の数式だと(例1)(例2)の場合、建物名の数値を反映してしまい数値のみ取り出せません。 数値部分はみたところ4~6桁でした。 何か良い数式がありましたら、ご教授願います。

  • セル内の数字も混じった文字列から特定パターンの数字列を取り出す

    またまたお世話になります。  (1)セル内に1つまたは2つのハイフンでつながる数字列を含む文字列(ブランクも含みます)がある場合にそこからその数字列のみを取り出す方法をアドバイス願います。  例 cを文字、xを数字(最大7桁)とします。 セル内の文字列 cccccc cccc cccc xxxxxxx-xx-x ccccccc cccc cccc からxxxxxxx-xx-x を取り出して文字列として別のセルに置く方法です。 (2) もしこのxxxxxxx-xx-x が[ と ] で囲まれていた場合はもう少し容易になりますか?  よろしくお願いします。  

専門家に質問してみよう