
No.3ベストアンサー
- 回答日時:
次の条件で VBAを作りました。
◎テーブル名 = テーブル1
◎連番のフィールド名 = ID とし
◎連番は後から入力した数値が
先に入力した数値より
小さくなることは無い。
(dmaxを使用しているので大丈夫かと思いますが)
Sub test()
Dim Db As Database
Dim Rs As DAO.Recordset
Dim Temp As String
Dim I As Integer
Set Db = CurrentDb()
Set Rs = Db.OpenRecordset("テーブル1")
Rs.MoveFirst
I = 1
Temp = ""
Do Until Rs.EOF = True
Do While I < Rs!ID
Temp = Temp & " " & I
I = I + 1
Loop
Rs.MoveNext
I = I + 1
Loop
Rs.Close
Set Rs = Nothing
Db.Close
Set Db = Nothing
MsgBox "次の数字が抜けています。" & vblf & Temp
End Sub
No.5
- 回答日時:
参考URLで提示されているSQLが使えるかもしれません。
エイリアスを使用した対象テーブル自身への自己結合で処理していますので、
番号管理用に別表を使用する私の案(No.2)よりスマートかもしれません。
(動作検証はしていません)
参考URL:http://www.geocities.co.jp/SiliconValley/4334/un …
No.4
- 回答日時:
バッチ処理的な考えを出してみます。
#3のご解答と似ているようでもあり違うようでもあり。一応載せます。ソートと主キーの関係は、下記「注意」をご参考に。
適宜Msgboxはコメント化して下さい。
(A)月、週、日1回とかで良ければ。また
(B)ソートしても良ければ。
-------
(1)データ-並べ替-昇順でソート
(2)データをシーケンシャルに読んで、直前のものと比べて+1かどうかチェックする。
------
注意
主キーを設定していなくて,「ID」フィードが主キーに設定されていることを気づかず、ソート後に、テーブル上で、番号フィールドでソート出来ているに関わらず、テスト結果がおかしく、手間取りました。
今は番号フィールドが主キーとしてテストして上手く行きました。
------
Sub test01()
Dim db As Database
Dim rs As Recordset
Dim mae番号
Dim fst As String
Set db = CurrentDb
Set rs = db.OpenRecordset("経理1", dbOpenDynaset)
fst = "y" '第一レコードのスイッチサイン
rs.MoveFirst
While Not rs.EOF
'------------前レコードの番号+1の番号か
MsgBox rs!番号 ' & "=" & mae番号 + 1
If fst = "y" Then GoTo p01
If Val(rs!番号) = Val(mae番号 + 1) Then
Else
MsgBox rs!番号 & "連続せず"
End If
'-----------
p01:
fst = "n"
mae番号 = rs!番号 '1つ前の番号として保存
rs.MoveNext
Wend
'---------
rs.Close
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで日付が変わると番号が...
-
Accessで別テーブルの値をフォ...
-
access 自動採番 「10-AA-000...
-
ADO VBA 実行時エラー3021
-
GROUP BYを行った後に結合した...
-
ADOでエクセルからアクセス...
-
ACCESSで大量の更新を行うと「...
-
Excelで、改行がある場合の条件...
-
oracleの分割delete
-
Oracleでの文字列連結サイズの上限
-
実績累計の求め方と意味を教え...
-
OracleのSQL*PLUSで、デー...
-
PHP+MySQL
-
レコードが存在しなかった場合
-
[VBA] ADOの Clone と AddNew
-
エクセルのピボットテーブルの...
-
自己相関サブクエリと自己結合...
-
MINUS の結果の rowid を取得し...
-
MERGE文を単体テーブルに対して...
-
関係演算子が無効です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
Accessで日付が変わると番号が...
-
access 自動採番 年が変わる...
-
SELECT * FROM `生徒名簿` INNE...
-
vba 直前の操作はキャンセルさ...
-
accessのテーブルから条件の抽...
-
sqlで質問です。 Aテーブルの登...
-
〜のような結果を出すためのSQL...
-
社員DBを作る
-
条件をつけて日付の古い行を抜...
-
Accessでのレコード存在チェック
-
【アクセスVBA】テーブルにフィ...
-
【SQL】existsでの商演算
-
質問です。 下記のテーブルとデ...
-
主キーの選び方
-
access 自動採番 「10-AA-000...
-
Access 文字+年ごとの自動採番
-
Access VBAで更新履歴を追いたい
-
MySQLで桁あふれを防ぐ方法
おすすめ情報