Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


804 / 9994 ←次へ | 前へ→

【12499】Re:テーブルへのレコード追加とそのデータベース本体への反映につきまして
回答  かるびの  - 14/4/14(月) 0:50 -

引用なし
パスワード
   >「テーブルA」
>レコード1
>レコード2
>レコード3
>レコード4
>レコード5
>レコード6
>
>と言う状態までレコードがテーブルAに書き込まれたあとに
>
>「テーブルA」
>レコード1
>レコード2
>レコード3
>レコード3−1  <----- レコードの挿入
>レコード4
>レコード5
>レコード6
>
>レコード3−1がレコード行の中に挿入されるといった具合です。

 別におかしなことではないですね。
 というのは、テーブルはレコードの順番という情報を持たないからです。
 テーブルには、格納順という情報すら保有されないのです。

 データベースでは、レコードの並べ替えということをしょっちゅう行います。
もしテーブルに並び順の情報を持っていると、
並べ替えのたびに並び順の情報を書き替えなければならなくなり、
並べ替えの処理を迅速に行えなくなるので、
わざと、テーブルに並び順の情報を持たないようにしているのです。

 データベースウィンドウ(2003の場合)からテーブルを開くと、
レコードは一定の順序で並んでおり、
メニューのコマンドを使えば、それを並べ替えることもできます。
 しかし、この並べ替えは、
テーブルのレコードそのものを並べ替えているのではないのです。
 データベースウィンドウからテーブルを開くと、データシートで表示されますが、
プログラム的には、このデータシートはフォームなのだそうです。
 メニューのコマンドから行う並べ替えは、
テーブルのレコードを並べ替えているのではなく、
フォームの並べ替えの機能を利用して、
並べ替えが行われているように見せているに過ぎないのです。

 テーブルを開いてみると、レコードが意図したとおりに並んでいるのに、
そのテーブルを使ったクエリを作って、そのクエリを開いてみると、
レコードの並び順がめちゃくちゃになっていることがあります。
 これも、テーブルが並び順という情報を持っていないがために起こります。

 mdbファイルへは、テーブルの情報は、メモリ番地の順に格納されます。
 テーブルへ新しいレコードを入力すると、
メモリへはメモリ番地順に情報が格納されます。
 それゆえ、テーブルへは入力順に格納されることが多いです。
 しかし、何らかの事情でメモリに空きがある場合、
新しく入力したデータは、その空いているメモリ番地に格納されてしまうことがあります。
 こうなると、入力順とメモリ番地の順とに狂いが生じてしまいます。

 こうしたことから、データベースでは、
もしレコードの並び順をきちんとしたいなら、
クエリにより並び順を指定してやらなければなりません。


 以上のような理由から、
テーブルにおけるレコードの順番がおかしいということは、
何らおかしなことではありません。
177 hits

【12495】テーブルへのレコード追加とそのデータベース本体への反映につきまして いーぐる428 14/4/13(日) 9:11 質問[未読]
【12496】Re:テーブルへのレコード追加とそのデータ... かるびの 14/4/13(日) 20:12 回答[未読]
【12497】Re:テーブルへのレコード追加とそのデータ... いーぐる428 14/4/13(日) 22:00 お礼[未読]
【12499】Re:テーブルへのレコード追加とそのデータ... かるびの 14/4/14(月) 0:50 回答[未読]
【12500】Re:テーブルへのレコード追加とそのデータ... いーぐる428 14/4/15(火) 16:29 お礼[未読]

804 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free