- ベストアンサー
データベース入力設定の要約
- データベースの入力設定において、特定の条件を満たすための設定方法を教えてください。
- 入力されるデータは7桁の数字であり、特定の法則に従っている必要があります。
- VBAを使用せずに、トグルボタンを使用する方法があれば教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo. 1 です。 以下の条件で話を進めます。 ==== ・フォーム "Form1" を作成し、Form1 のレコードソースにはご質問で出された テーブルを関連付ける。 ・以下の名前の 4 つのテキスト フィールドを作成する。 1. code - コントロールソースは「●●コード」 2. number - コントロールソースは「☆☆番号」 3. year - コントロールソースは「年度」 4. money - コントロールソースは「金額内容」 ==== 以下のようなコードを作成します。 テキスト フィールド "number" に値を入力して、カーソル(フォーカス)を マウスや Tab キーなどで他に移したときにテキスト フィールド "year" に 値がセットされるようにします。 [手順] 1. テキスト フィールド "number" のプロパティを開き、「イベント」の 「フォーカス喪失時」をクリック、その行の右端に「・・・」というボタンが表示 されるのでそれをクリックし、「コード ビルダ」を選択する。 2. VBA のエディタが起動するのでそこに以下のコードを貼り付ける。 ==== ここから ==== Option Compare Database Private Sub number_Exit(Cancel As Integer) Dim num As Long '☆☆番号 Dim tmpYear As Integer '年度 Dim grade As Integer '学年 'テキスト フィールド "number" から「☆☆番号」の値を取得 num = Me.number.Value 'tmpYear に num の上位 2~3 桁目を取り出す tmpYear = (num / 10000) Mod 100 'Mod は「割り算した余り」のこと 'tmpYear が 50 以上なら 1900 年代、50 未満であれば 2000 年代とする '!!!!このやりかたは改善すべき!!!! If tmpYear > 49 Then tmpYear = tmpYear + 1900 Else tmpYear = tmpYear + 2000 End If 'テキスト フィールド "year" に tmpYear の値をセット Me.year.Value = tmpYear 'grade に num の上位 1 桁目を取り出す grade = num / 1000000 'ここでは使い道が無い End Sub ==== ここまで ==== 以上です。 コードにはコメントを書いておいたので参考にしてください。 テキスト フィールド "number" の上位 2~3 桁目が 50 以上であれば 1900 年代、 50 未満であれば 2000 年代にするようにしています。 しかし、これは問題のあるやり方です。2000年問題を覚えていますよね? テーブル定義で年度を表す桁数を 4 桁以上に改めるべきでしょう。
その他の回答 (1)
- irija_bari
- ベストアンサー率73% (70/95)
補足要求です。 ・まず、VBA を使うということなのでデータベースは ACCESS なのですよね? ・「入力」というのは単票フォームを使って入力ということなのですか? 以下、参考です。 ・「7桁の数字である」という条件はテーブルの定義(テーブルの「デザイン ビュー」)で「☆☆番号」の入力規則を「>999999 And <10000000」とすれば 良いのでは? ・「年度」は2000に「☆☆番号」の上から2~3桁目を加えたものなのです よね?それならば、フォームで「☆☆番号」を入力した時点で自動的に 「年度」の値をセットするようにすれば良いのでは?
補足
データベースはACCESSになります。 単票フォームの入力でございます。 7桁の数字の入力規則は非常に参考になりました。 早速設定いたします。 年度については☆☆番号を入力する際に必ず20~、30~と 最初に二桁は固定されます。それに伴い年度も自動入力されるようにしたいのです。 学校のデータベースを作っており、200と入力した段階で2年生で00年(西暦2000年)という風に表示したいのです。 301なら3年生で年度は01年(年度表示は2001)といった具合に。 399なら3年生で年度は99年(年度表示は1999)といった具合に。 上記のように設定したいのですが。。。 質問がいたらなくてご迷惑おかけしました。