• ベストアンサー

連番について

piroin654の回答

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.8

話の内容から、F2に随時データを入力していくものとして。 F2に入力していくとF2に入力されたデータに基づいて 関連するF2、F3にデータが入るようにする、という 方法だと思いますが、いいですかね。 テーブルに直接入れながらこういう処理はできないので、 フォームを利用します。 テーブル名は「テーブル連番」として F1 オートナンバー  F2 数値型  F3 数値型 とします。とくにF1を主キーにする必要はありません。 必要ならば設定してください。 なお、テーブル名やフィールド名は実際の名称にしてください。 テーブル名はコードの中にも一つ出てきます。それも 変更してください。 テーブルを元に選択クエリを作り、名前をQ連番とします。 フィールド--- F1 ----------- F2  ------ F3 テーブル-----テーブル連番 ---テーブル連番 ---テーブル連番 並び替え-----昇順 表示---------- ☑  ----------- ☑ -------------☑ 抽出条件------- または--------- のようにします。 これはオートナンバーの並びを昇順にして並びを 確定するためです。 このクエリを元にフォームの新規作成から 帳票フォームを作成します。 出来たら、フォームをデザインビューで 開き、F2のプロパティシートを開き、 F2の更新後処理を選択し、クリックしてコード表を 開きます。 まず、コード表の上部に、 Option Compare Database Option Explicit のあとに続いて、 'フォームのGeneralに設定 Dim s2Data As Long Dim s3Data As Long を貼り付けます。 次に、 Private Sub F2_AfterUpdate() End Sub の間に以下のコードの中身をコピーし、貼り付けます。 これで終了です。 Private Sub F2_AfterUpdate() Dim db As DAO.Database Dim rs As DAO.Recordset Dim i As Long Set db = CurrentDb Set rs = db.OpenRecordset("テーブル連番", dbOpenDynaset) 'データが何も入力されていない場合。 '当然ながら関連するF3には1が入る。 If rs.RecordCount = 0 Then If Me.NewRecord Then   s2Data = Me!F2   Me!F3 = 1   s3Data = Me!F3   If Me!F2 > 1 Then   For i = 1 To Me!F2 - 1     rs.AddNew       rs!F2 = s2Data       rs!F3 = s3Data     rs.Update   Next i   End If   DoCmd.RunCommand acCmdSaveRecord   Me.Requery End If GoTo ER End If 'すでに入力されてレコードが存在している場合。 If rs.RecordCount > 0 Then   s2Data = Me!F2   Me!F3 = s3Data + 1   s3Data = Me!F3   If Me!F2 > 1 Then     For i = 1 To Me!F2 - 1       rs.AddNew         rs!F2 = s2Data         rs!F3 = s3Data       rs.Update     Next i   End If   DoCmd.RunCommand acCmdSaveRecord   Me.Requery End If ER: rs.Clone: Set rs = Nothing db.Close: Set db = Nothing End Sub これで、Fに入力していくとF2に入力された データに基づいて関連するF2、F3にデータが 入っていきます。 下記のようにF2へのデータ入力で F2が2以上ならば関連するF2やF3に データが自動入力されます。 F1-----F2------F3 1-------3-------1 2-------3-------1 3-------3-------1 4-------1-------2 5-------2-------3 6-------2-------3 7-------1-------4 8-------3-------5 9-------3-------5 10------3-------5 11------2-------6 12------2-------6

関連するQ&A

  • 連番になってしまいました。

    教えてください。 特に何もしていないのですが、突然WORDの文章で()が全て連番になってしまいました。下記のような現象です。 1(1) (2) (3) 2(4)←本来ここが(1)になる。 番号を振りなおしてもなぜかまた連番に戻ってしまいます。元に戻す方法はないでしょうか?

  • 連番

    WinXP,OfficeXP使用しております。 Excelで枡に数字が記入してあるの枡の右下にポインターを合わせると「+」が出ます。そこで左クリックを押しながらドラッグすると隣の枡に一番だけ多い数字が現れます。 ところがSP3F-B5I-50などの入った枡を同様な方法でドラッグしますと最後の「50」が「51]となります。 希望するのは中ほどの「B5I]の枡をドラッグすることで「B6I」、[B7I]と順次大きい数字にしたいのです。 宜しくお願いします

  • エクセルで連番をつける

    A    B・・・ E   F・・・ AAA  111   1   1 AAA  222   1   2 BBB  333  2   3 CCC  444   3   4 CCC  555   3   5 入力はA,B列だけです。 (1)A1を入力するとE1は1を表示。B1を入力するとF1は1を表示。 (2)A2を入力した時に、A1と同じ名前ならばE2は1、違う場合は2を表示。以下同条件。 (3)F列は1~連番になります。 (4)途中で行挿入、行削除を行っても自動的にE、F列を修正。 上記の内容で処理するにはどうすれば良いでしょうか?

  • Excelで飛ばし連番

    Excelで連番をふりたいのですが、下記のようなことは可能でしょうか? A列に曜日、B列に連番なのですが、 土曜日と日曜日は飛ばしたいのです。 連番が1000ほど続くので、何かいい方法はないかと考えています。 宜しくお願いいたします。   A B 1 月  1 2  火  2 3 水  3 4  木  4 5 金  5 6 土 7 日 8  月  6 9 火  7   ・  ・   ・  ・   ・  ・ Excel2002を使用しています。

  • 任意の連番 ソフト

    連番をテキストで縦に、数千行書きたいのですが、1から一つづつ1.2.3と連番で書けるソフトは、フリーでいくつかあったのですが、下記のように3個づつなどで記載できるソフトは、ないでしょうか・・?ソフトでなくても良い方法があれば、教えてください。 1 1 1 2 2 2 3 3 3 4 4 4

  • 連番

    今名簿を作成しています。(4000人分) うまく伝わればいいのですが・・・ 一列目(A列)・・・1から50の数字 二列目(B列)・・・氏名 三列目(C列)・・・51から100の数字 四列目(D列)・・・氏名 五列目(E列)・・・101から150の数字 六列目(F列)・・・氏名 そして 一列目に戻り150から200の数字 三列目201から250の数字 五列目251から300数字 といったようにしていきたいのですが、 一列ずつ連番を入力していくのが面倒なので、もっと簡単にできる仕方があれば教えてください。

  • ∫[-1 to 1]f(x)dα(x)の値を求めるには?まず何をすれば

    こんにちは。皆様どうか宜しくお願い致します。 下記の問題はどのような手順で解けばいいのかわからず困っています。 [問]∫[-1 to 1]f(x)dα(x)の値を求めよ。但し, fは[-1,1]で有界で0で連続。そしてαは α(x)= -1 (x<0の時) 0 (x=0の時) 1 (x>0の時) で与えられるものとする。 で正解は2f(0)となっているですがどのようにして計算すればいいのでしょうか?

  • 計算結果が合わない

    下記の計算をしています(計算式=ABC/F+G(D+E) 電卓及びexcelで計算すると、結果の3,683まではあっているのですが、 下記表の4行目の結果が、電卓では、9,684、Excelで計算すると、 どうしても8,507となってしまいます。 計算式が間違っているのでしょうか?? Excel計算式 =B21*C21*D21/G21+H21*(E21+F21) 何度、電卓で計算しても、9,684となってしまいます。 よろしくお願いいたします。 A B C D E F G 結果 2.64  1312.5  511 11.49  1.5  5407  0 327 27.6  1312.5  511 11.49  1.5  5407  20 3,683 23.76 1312.5  511 11.49  1.5  5407  428 9,684

  • 運動方程式の計算

    下記はある問題の運動方程式の計算です。 F-T-μk・mg=ma  (1) T-μk・Mg=Ma   (2) (1)と(2)から張力をもっとも簡単に計算できる方法を教えてください。 いつも、私はいつも、(1)をa=(F-T-μk・mg)/m にして、(2)にaに代入していますが、計算間違いや文字が多くなるので。

  • excel 再計算のショートカットキー

    Ctrl+Alt+F9のショートカットは開いているすべてのブックの再計算だと思う のですが、再計算されません。 オプションの計算方法タグは手動にしていて F9やShift+F9のシートの再計算 はうまくいきます。 隣の人のパソコンだとCtrl+Alt+F9でうまく再計算されるのですが 何かイン ストール時の違いなどご存知の方はいらっしゃいせんか?