<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--無理やりシマシマフォームを作る
  1 2 3 4



じゃあ、そんなわけでデータベースの本質を無視した方法で、表形式のフォームをシマシマにできるもんか、やってみましょう。

前提条件です。

まず、基になるテーブルですが・・・。
なんでもいいので、「1から始まる(あるいは開始番号の判断できる)連続した番号」がついている必要があります。

今回使うテーブルは、データ型はテキスト型なんですけども、こんな感じで「社員番号」というフィールドを持たせています。テキスト型でも全部数字で構成されていれば可能だと思います。
社員番号は連番です。飛び飛びになっておらず、0001から0051まで、51人の社員に連続して番号を振っています。レコードを削除して0006の次が0008になってしまったら、これからお話する方法は使えません。っていうか、多分他の方法を考えたとしても無理なのではないかなと思います。

オートナンバー型でもなんでもいいので、とにかく連続した番号が振ってあって、このフィールドの中身を見れば偶数行か奇数行か判断できるようにしておきます。



それから、これから作るフォームは、表示専門です。新しくレコードを追加したり、データの内容を書き換えたりすることはできません

あと、処理速度の保証はしかねます。50件100件程度のレコード件数ならそんなに問題はないと思いますけど、5000件10000件になると、表示が重くなったりすると思います。件数が少なめのときだけ、用いてください。


では、参りましょう。

まず、クエリをひとつ作ります。名前は[クエリ1]にしましょうか。

[社員番号]を選びます。

選ぶだけではなくて、ここで一工夫します。こんな感じで、modという演算子を使います。

これはですね。わたしゃよく使う方法なんですけども、「社員番号を2で割った、あまり」を出す式です。
社員番号が偶数なら割り切れるから0になり、割れなければ奇数で1が出るはず。0か1かどちらかが表示される列を作るわけです。

Enterキーを押すとか、別のところにカーソルを移動させると、式1とかなりますけど、まあ、このままでもいいかな。

じゃーん。
このクエリ、開くとこうなります。

え?式1じゃわかりにくいって?
それもそうですね。

ならば、下のように、式1というところだけ書き換えます。半角のコロンは消しちゃダメですよ。

もうひとつついでに。これは、おまじないです(笑)↓

社員番号からゼロを引き算する式を作ります。これは後で使いますからね。

こうなりました。これも・・・式1じゃなくて、[番号]とか、なんかそんな列名にしときましょうかね。
で、あとは、他のフィールドを選んでおきます。

さらに!
一番左端の列の抽出条件に 1 と入れておき、奇数行(奇数の社員番号を持つ人)だけを抽出するようにします。

なりますか?