OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

初心者なのですが・・・accessで抜けている番号を探すには?

  • すぐに回答を!
  • 質問No.183228
  • 閲覧数408
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 100% (29/29)

すみません。検索してみたのですが見つからなくて・・・ぜひ教えてください。
使っているのは、ACCESS97です。
ある伝票の整理番号が連番になっています。データは入力されています。
抜けている整理番号を調べたいのですが、どういった方法があるでしょうか?
クエリーでもできるでしょうか?
困ってしまってますので、なにとぞよろしくお願いします!
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル10

ベストアンサー率 61% (75/121)

こんにちは。

>で、せっかくなので実際やってみてからお返事したい!と思ってぺたぺた張ってみたりしたのですが、
>どうもうまくできなくて・・・
>何しろ初めてなので、何もわからなくって。

ごめんなさい。よく質問を読んでいませんでしたのでとんちんかんなレスをしたかもしれません。
どんなエラーが出るかによりますが、

「パラメータが少なすぎます。? を指定してください。」
と出た場合は「ID」と書いている全ての文字を「整理番号」に変更してみてください。
>StSQL = "select 整理番号 from テーブル1 order by 整理番号"
>If RS!整理番号 = i Then
上記3カ所

「入力テーブルまたはクエリ '???' が見つかりませんでした。そのテーブルやクエリが存在していること、
または名前が正しいことを確認してください。」
と出た場合は、テーブル名が違っていますので以下の「テーブル1」の部分を修正してください。
>StSQL = "select 整理番号 from テーブル1 order by 整理番号"

それ以外のエラーが出る場合は補足に書いてください。

あと、この方法では、大量に抜けているデータが存在する場合は、取得したデータをテーブルに書き込むなどの工夫が必要です。

#3のstorkさんが回答した方法等で解決しているのであれば、こんなやり方もあるんだ、くらいに思ってください。
お礼コメント
nontaro

お礼率 100% (29/29)

度々ありがとうございます!おかげさまで、なんとかできました!!
丁寧な回答、本当に感謝感謝です!
これをきっかけにVBAにチャレンジしてみようと思います。
投稿日時 - 2001-12-22 09:21:12
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル9

ベストアンサー率 53% (41/76)

データベースは入力されているデータを検索するのは簡単ですが、無いものを検索することは出来ません。 仮に連番で整理番号が振られているのなら、マクロなりVBAなりで番号を+1しながら順番にレコードが存在するかどうかを確認するしかないと思います。 ...続きを読む
データベースは入力されているデータを検索するのは簡単ですが、無いものを検索することは出来ません。
仮に連番で整理番号が振られているのなら、マクロなりVBAなりで番号を+1しながら順番にレコードが存在するかどうかを確認するしかないと思います。
お礼コメント
nontaro

お礼率 100% (29/29)

早速の回答ありがとうございます。
やっぱりそうですか・・・
>マクロなりVBAなりで番号を+1しながら順番にレコードが存在するかどうかを確認するしかない
すみません・・・マクロではどのように書くのでしょうか。
良かったら教えていただけませんか?難しいのでしょうか?
投稿日時 - 2001-12-11 13:17:52

  • 回答No.2
レベル12

ベストアンサー率 39% (264/666)

クエリーでもできるでしょうか? 面倒ですけど出来ますよ。 現実的ではないですが・・・ 伝票番号のフィールドだけを持つテーブルを作成して、検査したい開始番号から終了番号までのレコードを作成する。 クエリーで伝票TBとチェックTBを伝番でリンクしてプロパティをチェックTBの全てを表示する様に設定。 伝票TBの伝番以外の必須フィールドの条件をNullにする。 チェックTBの伝番を表示すれば、伝 ...続きを読む
クエリーでもできるでしょうか?
面倒ですけど出来ますよ。
現実的ではないですが・・・
伝票番号のフィールドだけを持つテーブルを作成して、検査したい開始番号から終了番号までのレコードを作成する。

クエリーで伝票TBとチェックTBを伝番でリンクしてプロパティをチェックTBの全てを表示する様に設定。
伝票TBの伝番以外の必須フィールドの条件をNullにする。
チェックTBの伝番を表示すれば、伝票TBに存在しない伝番だけ出てきます。

こんな面倒な事をするならVBAでチェックプログラムを書いたほうがスマートかと思いますが・・・・
お礼コメント
nontaro

お礼率 100% (29/29)

具体的に書いていただいてありがとうございます~。ほんとにスミマセン。
ふー、実は私もそれを思いついてみましたが、おっしゃるとおり現実的ではないですよね・・・
VBAについに踏み入れるべきかしら・・・。
チェックプログラムは難しいでしょうか?
参考になりそうなURLなどあったら教えていただけないでしょうか・・・
前に本屋さんでVBAの本も見てみましたが、初心者向けなのにいきなりハイレベルでチンプンカンプン
でした。田舎に住んでいるもので、本も少ないのです(涙)。
投稿日時 - 2001-12-11 13:29:43
  • 回答No.3
レベル11

ベストアンサー率 34% (97/285)

VBAで照合するよりクエリで照合する方が楽ですよ~。 そこで連番の作成が問題になってきますが、件数によって 1.エクセルのオートフィルを使って連番を作成してアクセスでインポートする。 2.オートナンバー型を持つテーブルを作成して行挿入の処理をループをまわす。(これだけなら簡単でしょう?) 初心者だったら、1の方法がわかりやすいですね。 数万件以上であれば2の法が簡単です。 あとは、 ...続きを読む
VBAで照合するよりクエリで照合する方が楽ですよ~。

そこで連番の作成が問題になってきますが、件数によって
1.エクセルのオートフィルを使って連番を作成してアクセスでインポートする。
2.オートナンバー型を持つテーブルを作成して行挿入の処理をループをまわす。(これだけなら簡単でしょう?)

初心者だったら、1の方法がわかりやすいですね。
数万件以上であれば2の法が簡単です。

あとは、不照合クエリを作成してください。
お礼コメント
nontaro

お礼率 100% (29/29)

回答ありがとうございます!
いろいろなやり方があるのですね~。1の方法なら私にもできそうです!
2の方は・・・すみません、初心者すぎてそれさえもわからず・・・とほほ。
がんばってみます!!
投稿日時 - 2001-12-12 17:05:32
  • 回答No.4
レベル10

ベストアンサー率 61% (75/121)

こんにちは。 以下のコードで実現できます。 テーブル名が「テーブル1」、ID列が「ID」で1から始まっているという前提です。 下記コードを貼り付けて、テーブル名を編集し実行するとイミディエイトウインドウに抜けたIDが表示されます。 一応実験済み。 Sub test1() Dim DB As DAO.Database Dim RS As DAO.Recordset Dim StSQL A ...続きを読む
こんにちは。
以下のコードで実現できます。
テーブル名が「テーブル1」、ID列が「ID」で1から始まっているという前提です。
下記コードを貼り付けて、テーブル名を編集し実行するとイミディエイトウインドウに抜けたIDが表示されます。
一応実験済み。

Sub test1()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim StSQL As String
Dim i As Long
Dim Flag As Boolean

Set DB = CurrentDb

StSQL = "select ID from テーブル1 order by ID"

Set RS = DB.OpenRecordset(StSQL)
i = 1
Do Until RS.EOF
Flag = False
Do Until Flag
If RS!ID = i Then
Flag = True
Else
Flag = False
Debug.Print i
i = i + 1
End If
Loop
RS.MoveNext
i = i + 1
Loop
Set RS = Nothing
Set DB = Nothing
End Sub
お礼コメント
nontaro

お礼率 100% (29/29)

お返事送れてすみません。
ありがとうございます~実際にコードを書いていただいて、しかもテストまで。
感激です!
で、せっかくなので実際やってみてからお返事したい!と思ってぺたぺた張ってみたりしたのですが、どうもうまくできなくて・・・
何しろ初めてなので、何もわからなくって。
でももう少しがんばってみます。回答本当にありがとうございました。
投稿日時 - 2001-12-16 00:37:20
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ