A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>17年・18年の伝票整理をしたい・・
伝票整理だけであれば17・18年度を日付のフィールドを元に年度別に抽出するテーブル作成クエリを作り別テーブルを作れば良いと思いますが。
同じテーブル構造のテーブルを用意しクエリで17年度分の伝票のレコードを抽出し日付等でソートしそのテーブルに追加します。オートナンバー型のフィールドを追加し連番を作り17-(オートナンバー)を保存するフィールドもテキスト型で追加します。
そのテーブルを更新クエリでオートナンバー型のフィールドから年度-連番を作りだし17-(オートナンバー)を保存するフィールドを更新します。オートナンバーのフィールドを[No]として17-(オートナンバー)のフィールドを[ID]・伝票の日付のフィールドを[日付](入力は西暦)とした場合。
17年度分を抽出しIDのレコードの更新欄に
Format(Format([日付],"ee"),"00") & "-" & Format(Str([No]),"00000")
で日付(西暦)から和暦に変換しテキストに変換、オートナンバーを00000のフォーマットでテキストに変換し間に-を入れる。
これでテーブルを更新すれば17年度分伝票の場合17-00001からの連番を振れます。日付を日付型で持っていなければMidで切り出すか単純に"17-"&Format(Str([No]),"00000")で出来ます。
18年度も同様に出来ます。
18年度の新しい伝票を入力する場合は上記の方法で18-0000?の連番を作ったテーブルを元に入力するようにすれば続きの連番を作り出せます。
DMax([No])で一番大きな連番を取得し連番(0000?)の部分を切り出して+1させて"18-"と結合した連番を新しいレコードと一緒にテーブルに保存するようにすれば出来ます。
こういう事でしょうか?
No.3
- 回答日時:
#1 です。
オートナンバーは "そのテーブルの全レコードの中で一意" であり、しかもユーザーまたは開発者が意図的に変えることができません。(最適化をすれば云々は別の話)
しかも登録を途中でキャンセルしても次回採番予定の番号は 1つ進んでしまうので、歯抜け番号になったりします。
こういった理由から、私はオートナンバーを "ユーザーの目に触れる列" に使うことをお勧めしません。
私ならオートナンバーは決して一般ユーザーが見ることの出来ない "内部的なキー" に使います。
そして伝票番号のような番号は "年番号" と "連番" の 2列を使って "表現" します。
ただし、yy-nn の組み合わせが全体の中で一意にならなくてはいけないのは確かなので、レコードの新規作成や更新の操作はユーザーが画面上で行うにしても、実際にレコードを更新する行為はプログラムの中から行うようにしています。
複数ユーザーが更新しない保証がある場合の大雑把な例として下記のようなロジックが考えられます。
ホントに大雑把ですけど。
【新規登録】
・必要項目入力後ユーザーが登録ボタンを押す。
・日付またはユーザーが入力した "年" をキーに、同年での最終番号を取得。
・その番号に 1を足した番号に決定。
・情報を ADO で登録。
【更新(番号部分もユーザー編集が可能)】
・必要項目入力後ユーザーが更新ボタンを押す。
・フォーム上に表示されている番号を取得。
・編集前の番号と同じならそのまま ADO で更新。
・違っていれば、フォーム上の番号が既に使われているか確認。
・使われていなければ新しい番号で更新。
・(または新しい番号で新規登録して古い番号のレコードを削除)
・使われていれば更新せずにユーザーへ知らせる。
この回答へのお礼
お礼日時:2006/02/08 20:20
回答ありがとうございます。
あまりデータベースに深い知識を持っていませんが、自分で調べて、教えていただいたのをやってみたいと思います。本当にありがとうございました。
No.2
- 回答日時:
質問があまり明快ではありませんが、取り敢えず二つのやり方
1.「伝票整理」の前処理として更新クエリを動かす
2.データの新規登録(append,insert)時に、VBAなどで値をセットする
しかしご質問のようなID設定にあまり意味がないように思われます。そのようなIDがなくても、演算その他の処理時にどのようにでも扱えると思うので。
No.1
- 回答日時:
できません。
データを操作するユーザーが手動で意図的につける。
データを操作するユーザーがレコードを保存するタイミング(登録用のボタンを押すとか)で、VBA などによって付ける。
ってところじゃないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- エアコン・クーラー・冷暖房機 エアコンのオートについて。 家にあるエアコンのモードが冷房・暖房・除湿・オートとあるのですが、オート 4 2022/08/04 13:45
- 一眼レフカメラ プログラムオートといわゆるオートの違いは? 1 2022/09/11 20:20
- 政治 選挙の投票時間を短縮するべきでは? 4 2022/07/10 16:47
- 一眼レフカメラ α6400でISOをオートにした設定をロックすることはできますか?Av設定でF値を8にロックできる? 3 2023/08/04 23:26
- 国産車 車のミラーがオートで閉まるように設定してあります。 車のエンジンを切って車を降りてドアのノブのボタン 9 2023/02/08 21:18
- 写真 カメラ初心者です。Sonyのα5000を使ってみてるんですけど、もうよく分かりません。 試し撮りで家 4 2023/03/13 01:49
- 車検・修理・メンテナンス 輸入車のパワーウインドウがオートで開かなくなりましたが、このような使用頻度の高い部分が故障? 10 2022/06/14 11:14
- 車検・修理・メンテナンス リース車の法人契約について質問です。 会社はリースの契約内容は社員には伝えないので、リース契約に詳し 3 2023/03/28 20:53
- 据え置き型ゲーム機 PS4グランド・セフト・オートについて 2 2022/06/03 20:51
- 経営情報システム 個人で運送業を営んでいます。 請求書作成のアプリ(ソフト)ないでしょうか?顧客は100件ほど、締日が 3 2022/05/20 20:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでの改行コード
-
アクセス エラーを数値「0」に...
-
Accessでテーブルの値をテキス...
-
ExcelのデータをコピーでACCESS...
-
SQLServer2005のSQL文での別名...
-
INSERT INTO ステートメントに...
-
ACCESS2000「定義されているフ...
-
Accessのフィールド数が255しか...
-
Accessで、固定アルファベット+...
-
ACCESSで400以上のフィールドが...
-
accessで重複を防ぎたい
-
Access 昇順・降順で並び替え...
-
ACCESSでテーブルのフィールド...
-
ACCESSで和暦を西暦に・・・
-
アクセス A列コピー B列貼り...
-
accessのレポートで元になるテ...
-
ACCESSでオートナンバーを任意...
-
acsessのSQLでフィールド名と説...
-
Access2003 空レコード挿入
-
主キーはオートナンバー型のID...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
アクセス エラーを数値「0」に...
-
ACCESSでの改行コード
-
Accessのフィールド数が255しか...
-
accessのレポートで元になるテ...
-
Accessで、固定アルファベット+...
-
INSERT INTO ステートメントに...
-
Access 昇順・降順で並び替え...
-
ExcelのデータをコピーでACCESS...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
アクセス VBAで列の入れ替...
-
IT用語について質問です。 以前...
-
【Access】フォームで自動計算...
-
accessで重複を防ぎたい
-
ACCESSでテーブルのチェックを...
-
ACCESSで和暦を西暦に・・・
-
アクセス メモ型 255文字...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
おすすめ情報