- ベストアンサー
ACCESSでの主キーの設定について
Accessを使用して在庫のデーターベースを作ろうと仮定します。 製造番号を主キーとしたい。 製造番号には、例えばar-001やb-j001と言うように種類別に頭にアルファベットが付いていて、それぞれが100種類くらいあるとします(ar-シリーズが110種類、b-jシリーズが92種類、su-シリーズが104種類とします) ar-001,ar-002,ar-003・・・と打っていくのは面倒なので、アルファベットを除いて、001,002,003と入力して、データーベース上ではar-001,ar-002,ar-003となっているようにしたいのですが、方法はありますか? なお実際にデーターベースを使うのは初心者だと思ってください。複雑な作業を要すると、使用者からまた苦情が来るのです。 クエリーなら簡単に文字を結合できるけど、テーブルもしくはフォームで文字を出来るかどうか?たぶん出来ないと思うけど、念のため質問させていただきます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
当該テーブルを元に単票フォームを作り、非連結のコンボボックスと、非連結のテキストボックス、コマンドボタンを追加し、コマンドボタンに次の様なコードを登録するのはいかがでしょうか。コンボボックスには、簡単には値集合ソースとして、"ar";"bj";"su"といったリストを設定して、選択できる様にします。 Private Sub コマンド4_Click() Me.製造番号 = Me.コンボ5 & "-" & Me.テキスト2 End Sub なお、コントロールに付いている番号は、試しにやってみたときにAccessが付けた番号のままです。 コマンドボタンを押すのが面倒という事なら、テキストボックスに次のコードを設定しても良いかと思います。 Private Sub テキスト2_BeforeUpdate(Cancel As Integer) Me.製造番号 = Me.コンボ5 & "-" & Me.テキスト2 End Sub ご参考まで。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
番号帯からar,b,・・・は割り出し出来ないのでしょう。 そこを質問に注記でもすべきでしょう。 あるいは事実上ar,bを決める要因が有るのですか。例えばこの工場は arだけしか扱わないとか。 なければ、理の当然で、ar,b,・・を入力しないとダメじゃないですか。 アクセスの質問にもならない。 >クエリーなら簡単に文字を結合できるけど、テーブルもしくはフォームで文字を出来るかどうか? 何か質問に書くべき前提を書いて無いのでは。質問の条件だけからは絶対出来ないはず。 ーー フォームで入力受付するとして、 ar分を作業的にまとまって(ロット・バッチ的に)入力するなら、1桁入力を設定するテキストボックスなりを設けて、変わる都度だけ設定(しなおし)すれば(設定変更を忘れそうだが。現在のモード(ar,b・・)を日本語訳を大きく目立つように画面に出しておく工夫とか)よいのかな。
- okdeath
- ベストアンサー率28% (13/46)
こんにちわ。 作成クエリでテーブルをつくる。 又は エクセルでつくって、インポートする。 で、どうですか?
お礼
僕が作業するのならそれでもいいけど、実際に作業するのは初めてデーターベースを触る人だし、デザインビューに変更して作業をさせることはさせたくないのです。
お礼
詳しくは掛けないけど、海外数カ国の問屋から商品を仕入れて販売しています。その問屋毎に独自の商品番号があるため、たとえば、001、002という番号だけでは重なってしまうので、問屋毎にarやbjなどと頭文字を付けたそうです。 僕としては、メモ帳に頭文字と‐を記入しておいて、商品番号(質問文にある製造番号は誤りです)欄にコピーペースとしたあとで、数字のみをキーボードから入力することを勧めたのですが、「面倒くさい」と言われました。 一つ問題があるのは、問屋が十数件あるため、実際には頭文字も数十あるということです。 1番の方が回答してくれた「作成クエリー」の使用というのも当然頭に浮かびまして、それも提案したのですが、デザインビューを開いて作業することも「面倒くさい」と断られてしまったのです。 これが昨日までの段階です。 本日再び会って「相当困難です」と伝えると、それなら「メモ帳から頭文字のコピペでもいいよ」と言われました。