• 締切済み

Access97でクエリーにオートナンバーは?

簡単なことかも知れませんが… クエリーで抽出した結果にオートナンバーをつけたいのですが、方法はありますか?

みんなの回答

noname#420
noname#420
回答No.4

先に回答している方の言うとおり、クエリーで連番はつけれません。 が、テーブル作成クエリーでクエリー結果を抽出した後にそのテーブルにもう一つオートナンバー型のフィールドを追加すると自動的に連番がふられますよ。

start1
質問者

お礼

ありがとうございました。さっそくやってみます。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

クエリに自動で連番を付加する機能はありません。(断言) テーブルに[連番]フィールドを作って、VBAを使って連番を入力する以外には、有効な方法がないものと思います。 '以下のコードをモジュールにコピーし、 マクロの「プロシージャの実行」で、 =Renban("クエリ名", "[連番]フィールドの名前", 開始値, 間隔) のようにして使ってください。 開始値、間隔は数字で指定すること。省略してもいいです。(省略時は1が指定されたものとみなす) Public Function Renban(QueryName As Variant, FieldName As String, Optional Start As Long = 1, Optional Step As Long = 1) As Long  Dim SrcRS As Recordset  Dim Ct As Long On Error GoTo HandleErr  On Error Resume Next  Set SrcRS = CurrentDb.OpenRecordset(QueryName, dbOpenDynaset)  Ct = Start  With SrcRS   Do Until .EOF    .Edit    .Fields(FieldName) = Ct    .Update    .MoveNext    Ct = Ct + Step   Loop  End With    ExitHere:  Exit Function HandleErr:  Select Case Err.Number   Case Else    MsgBox "エラー " & Err.Number & ": " & Err.Description, vbCritical  End Select End Function なんかあったら、補足をお願いします。

start1
質問者

お礼

詳細にありがとうございます。なんか見てるだけでむずがゆくなってしまいそうです。まだまだこのレベルは難しいかな。

  • tepapapa
  • ベストアンサー率23% (7/30)
回答No.2

クエリーではなく、レコードセットではダメでしょうか? 例えば以下のような感じで・・・ Dim myRS 'テーブルのレコードセット Dim myCt 'カウンター   'テーブルのレコードセットを開く Set myRS = CurrentDb.OpenRecordset("テーブル1")   '最初のレコードに移動する myRS.MoveFirst   '最後のレコードまで繰り返し、カウンターをひとつずつUP Do Until myRS.EOF myCt = myCt + 1 MsgBox myCt & myRS!項目1 myRS.MoveNext Loop myRS.Close これで一応は抽出した項目にナンバーをつけて表示できます。 どうしてもクエリーで・・・となると分かりません。 どなたか分かる方よろしくお願いします!

  • nushi2
  • ベストアンサー率21% (12/56)
回答No.1

回答らしい回答ではないのですが、私も以前クエリーで抽出結果にオートナンバーを付した処理をやりたかったのですが、Access単体ではうまくいかないようです。 実現するには、VBで作成しないといけないようです。 (その時は、オートナンバーの機能はあきらめました。)

関連するQ&A

  • アクセスのクエリでオートでナンバーを振りたいのですが?

    アクセスのクエリでレコードをスコアの大きい順に並べ替えて、オートでナンバーを振り順番をつけたいのですが、可能でしょうか?ご解答宜しくお願い致します。

  • ACCESSクエリーの抽出後について

    クエリーでデータを抽出した際にオートナンバーが、 歯抜けになるのですが歯抜けになったオートナンバーだけを 再度クエリーでテーブルの並びと同様にふることは、 できるのでしょうか。つまり中身はクエリーのもの のみが欲しいのですが、オートナンバーだけはもと どおりにふりなおしたいです。 お知恵を頂戴したく。

  • Accessのデータベースのオートナンバーについて

    Accessのデータベースにおけるオートナンバーが 削除クエリや追加クエリ、更新クエリを連続して行なっても 付けられるオートナンバーが常に一行目(先頭)から1になる 設定方法がわかりません。 よろしくお願いします。

  • アクセスのクエリーについて

     アクセスのテーブルでオートナンバー型の設定がありますが、クエリーでそれに変わるような機能はあるでしょうか。クエリーである事柄を抽出した場合でも、フィールドに連番を付したいのです。  アクセス初心者です。VBAとかは使わないでできますか?

  • アクセス2000 オートナンバーについて

    いつもお世話になります。 アクセス2000を使用しているのですが、Dsum関数を使用したいので、時系列を付けるためにオートナンバーを付けています。必要データが日々変わるためにこのテーブルは全データを削除し追加クエリーを使用して計算もとのテーブルをその都度必要なデータのみにしています。 現在テスト中で特に問題はないのですが、本稼動した場合、オートナンバーが一日に10000程になってしまいます。計算に使うレコード数は200程度なのですが、処理作業を1日に50回程度行いますので。 2年程度メンテナンスはする予定をしていないので、このままではオートナンバーが7000000程度になってしまいます。オートナンバーの数字が多くなることによるエラー等は発生しないのでしょうか。またオートナンバー以外に連番をふる方法はあるのでしょうか。 宜しくお願い致します。

  • アクセスでオートナンバーをリセットするには?

    Accessで連番をふるプロセスで質問です。 データをあるテーブルに追加した時に、連番をふりたいと考えています。 最も簡単なのはオートナンバーフィールドを設定する方法なのですが、この場合一つ欠点があります。 それはレコードを全削除した場合でもナンバーがリセットされないという事です。 追加クエリでテーブルにデータを追加する前に必ずテーブルのレコードを全削除するのですが、 この際にオートナンバーも一緒にリセットする方法は無いでしょうか? また、質問の題名とは変わってしまうかもしれませんが、 オートナンバーを使用せずにレコードに連番をふる方法があればご教授下さい。

  • access2007のオートナンバーについて

    access2007のオートナンバーについて こんにちは、さっそくですが質問させていただきます。 accessの勉強を始めた者ですが、 オートナンバーを指定したフィールドと、その他の必要な項目の フィールドから成るテーブルを作成して、 オートナンバー1~3までのレコードを入力して、 オートナンバー3のレコードを削除した時、 そのあとで、レコードを追加すると、 オートナンバー4のレコードが作成されるのですが、 このレコードをオートナンバー3のレコードとして、 作成することはできるのでしょうか? そのような設定ができろのかどうか、もしできるのであれば、 その方法や、参考になるサイトなど、なにぶん初心者ですので 教えていただけないでしょうか。 よろしくお願いします。

  • ACCESS2000でオートナンバーを1から付けたいのですが

    ACCESS2000のテーブルで新規に作ったときはオートナンバーフィールドが1からになるんですが、何度かレコードの試験入力や削除を繰り返しているうちに、頭の番号が増えていきます。テーブルのデザインで、オートナンバーをテキスト型にして、新しいオートナンバー型行を挿入しても1からになりません。なにかよい方法はないでしょうか?

  • Access で更新クエリー

    教えてください。アクセス2000 Win2Kです。 あるDBから1つのレコードだけ抽出し(オートナンバーをキーにしてテーブル作成クエリでローカルテーブルを作成します。)その後、そのレコードを加工して元のDBにもどしたいのですが、1レコード上にフィールドが60近くあるので一括で更新したいのです。「T_ローカル.*」みたいな感じで・・・。なにか良い方法はありませんか?一旦、DBから削除して加工したレコードを追加する方法も考えたのですが、DBのオートナンバーが変わってしまうのでやめました。 なにか良い方法をご存じの方、是非ご教授ください。 よろしくお願いします。

  • Access オートナンバーについて

    17年・18年の伝票整理をしたいと思っています。 伝票IDを、17年度分なら 17-(オートナンバー) 18年度分なら 18-(オートナンバー) のように、設定したいと思ったのですが、どんな方法があるでしょうか。

専門家に質問してみよう