• ベストアンサー

アクセスでのデータ入力時に可能でしょうか?

Access2000でアンケート入力&集計システムを構築しなくては ならないのですが(Accessは素人です。無謀だと思われるでしょうが 委託する費用が工面できず已む無く自前でやることとなりました)、 このようなことができるのか教えてください。 よくあることですが、例えば設問1で1を選択した場合のみ設問2 に答えなさいというような場合、設問1で1以外を選択したら 設問2には回答不要を表す値(例えば9)を表示させ、そのフィー ルドにはフォーカスがいかないようにしたいのですが可能でしょうか? また、アクセスのテーブルを定義するさい、アクセスは可変長データ なのでフィールドサイズを細かく気にする必要はないとどこかで聞いたの ですが、一方では領域を抑えるためにも細かく指定すべきだとも聞きました。 どちらが正しいのでしょうか? あわせてよろしくお願いします。

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

  • ベストアンサー
noname#2835
noname#2835
回答No.2

アクセスのテーブル定義の件ですが、 >どちらが正しいのでしょうか? どちらも正しいです。 テキスト型の場合は可変長で初期値が50になっているはずです。 普通は初期値のまま使用して、文字数が足らない場合のみ フィールドサイズを大きくすれば良いと思います。 「領域を抑えるため」というのは、大規模なデータベースでデータ件数が 非常に多い(数万件とか数十万件)場合には、どのデータ型を使用するか、 無駄な使い方をしているかどうかで、データベースの応答性やファイルサイズに影響してきます。 究極の設定を追及する場合には考慮しますが、通常はそれほど 気にする必要はないと思います。

enako
質問者

お礼

ありがとうございます。 ホストコンピュータでデータベースを構築 したことがあるため、どうもデータ定義に は気を使いすぎるところがあるのかもしれ ません。 参考になりました。 どうもありがとうございました。

その他の回答 (1)

回答No.1

最初の問題については VBAを利用することによって実現できます。 例えば、 設問1のオブジェクト名_click() If 設問1のオブジェクト名.value then 設問2のオブジェクト名.enabled = false else 設問2のオブジェクト名.enabled = true End If End Sub といったコードをモジュールに書けばOKです。 もう少し詳しいコードがお知りになりたければ、各オブジェクト名や配置がどうなっているかを教えてください。 2番目の問題ですが、アクセスで領域の指定をしたことがないのでそのことに関してはあまりよく解りませんが、ツールバー→ツール→データベースユーティリティ→最適化/修復を行えばファイルサイズは常に最小化されます。

enako
質問者

お礼

早速の回答ありがとうございます。 がんばって記入してみます。 ありがとうございました。

関連するQ&A