ACCESSで、何週間も原因がどうしても解らず困っております。お助けください。
ある条件を基に複数のテーブルを参照しデータ加工を行った後に、レポート作成用テーブルのいちばん最後のレコードに必ず追加登録をしたいのですが、いちばん最後のレコードに登録できたり、既に登録されているレコードの間に割り込んで登録されたり処理の検証を行うたびに結果が異なるのです。
何度もデバッグを行いましたが、レポート作成用テーブルへUPDATEするまでの処理及びデータには間違いありません。レポート作成用テーブルで勝手にデータ入れ替わっているとしか思えないのですが・・・・・・
最初はRecordsetオブジェクトはテーブルタイプを指定し、Addnew及びUpdateメソッドで追加登録していましたが、思うように動作しないためRecordsetオブジェクトをダイナセットタイプに変更してみましたが処理結果は変わりません。
※RecordsetオブジェクトでIndexプロパティの設定はありません
参考書にダイナセットタイプのRecordsetオブジェクトは、設定されている並べ替え規則にかかわらず、必ずいちばん最後のレコードに追加されると記載されていたので試してみましたが駄目でした。
おおざっぱな説明で現状を理解して頂けるかわかりませんが宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
レコードの並び順は保証されていません。
http://support.microsoft.com/kb/834927/ja
http://www.naboki.net/access/achell/achell-03.html
指定してやる必要が有ります。
入力順などというプロパティは無いので、
入力順に並べたい場合は、オートナンバー型のフィールドを追加して
そのフィールドを並び替えのキーに指定するとかではないですかね。
この回答への補足
ご回答ありがとうございました。
回答を見た瞬間に これだ! と納得しました。
これから検証を行いたいと思いますが解決できそうな気がします。
前から気になっていたことがありますが、オートナンバー型のフィールドはデータを登録するたびにナンバーが加算されていきますが、限界値があれば限界値以降のナンバーはどうなるのでしょうか?
また、テーブルデータを全て削除してもオートナンバーは削除する前の最終ナンバーから加算されていきますが初期値(1からスタート)に戻すことはできないのでしょうか?
今作成しているツールを何十年も使うことは無いとは思いますが気になります。
おかげさまで解決することができました。
教えて頂いたオートナンバー型のフィールドを追加しそのフィールドの並び替えを行った結果レポート作成テーブルは希望通りに作成できましたが、レポートを作成するとテーブルデータのレコード順に表示されなかったので少し悩んでしまいましたが、レポートにもオートナンバー型のフィールドを追加し並び替え指定を行ったら解決できました。
ほんとうに有難うございました。
No.3
- 回答日時:
オートナンバー型は長整数型です。
『4 バイトで、-2,147,483,648 ~ 2,147,483,647の範囲の整数を表すデータ型。Visual Basic では、キーワードは Long で、型宣言文字はアンパサンド (&) です』
限界に達したらどうなるかというと
オートナンバー型フィールドが上限値を超えた場合はどうなる?
http://www.ruriplus.com/msaccess/Exp/Exp0901.htm
負の数を使い始めたら入力の並び替えには使えませんね。
もっとも、その前にAccessでは重たくて。。。
道草ですが日付時刻型に時刻の部分も入れれば(Now()とかで)もっと使えます (^^ゞ
データ型の限界の前にAccessが過労死するのは間違いないと思います。
『倍精度浮動小数点数型 (Double) の変数は、IEEE 64 ビット (8 バイト) の浮動小数点数の変数です。負の値は -1.79769313486231E308 ~ -4.94065645841247E-324、正の値は 4.94065645841247E-324 ~ 1.79769313486232E308 の範囲の値をとります。倍精度浮動小数点数型の型宣言文字はシャープ記号 (#) です。』
>初期値(1からスタート)に戻すこと
『Access オートナンバー リセット』でGoogleって見てください。
http://support.microsoft.com/kb/812718/ja
テーブルのオートナンバーを振りなおす方法(β版)
http://www.f3.dion.ne.jp/~element/msaccess/AcTip …
などなど。
AccessClub.jp さんが見えなくなってる?。
No.1
- 回答日時:
> ある条件を基に複数のテーブルを参照し
キーの構成が気になりますね。主キーだったり、ソートしてませんか?
この回答への補足
さっそくのご回答ありがとうございます。
ご指摘のキーの構成ですが、レポート作成用のテーブル及び参照しているテーブルには主キーの設定はありません。
参照しているテーブルには一部インデックスの設定がありレポートデータの編集処理で並び替え処理を行っていますが、デバック時に並び替えルーチンを通らないようダミーデータで試してみましたが結果は同じでした。
デバック時にレポート作成用テーブルに登録するデータをUPDATEする前にフォーム上に表示させ確認しましたが、フォームに表示されるデータは期待する順番で表示されるのですが、登録処理完了後にレポート作成用テーブルを見てみるとフォームで確認した順番で登録されていません。(処理を行うたびに登録順が異なり規則性が無い。ただし、正常に登録されることもある)
おかげさまで解決することができました。 ありがとうございました。
ACCESSではレコードの並び順は保障されていないのですね!
レポート作成テーブルにオートナンバー型のフィールドを追加しそのフィールドの並び替えを行うことで解決できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
Accessにインポートしたら並び...
-
Access VBA Me.Requery レコー...
-
3つ以上のテーブルをUNIONする...
-
データの二重表示の原因
-
ACCESS【更新クエリの中断がで...
-
Accessでのレコードの削除時の...
-
Access カレントレコードがあり...
-
Accessで重複したデータを一件...
-
重複レコードの上書きについて
-
ACCESSにて全項目(レポート)...
-
SQLServerで同一条件レコードの...
-
Accessでレコードが更新された...
-
PostgreSqlのテーブルをVBから更新
-
SQLの複数のカウントについて
-
「マスタ」と「テーブル」の違...
-
accessテーブル作成クエリを実...
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT文でのデッドロックに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access VBA Me.Requery レコー...
-
ACCESSのBookmarkプロパティの...
-
Access 1レコードずつcsvで出力...
-
Access 削除クエリが重い
-
ManagementStudioからのデータ削除
-
SQLServerで同一条件レコードの...
-
非連結サブフォームのレコード...
-
Accessでレコードが更新された...
-
Accessでの排他制御
-
(ACCESS)並び替えをしないで...
-
Accessで重複したデータを一件...
-
Accessでの禁止文字チェック
-
ACCESSファイルを開こうとする...
-
ACCESS【更新クエリの中断がで...
-
Access カレントレコードがあり...
おすすめ情報