プロが教えるわが家の防犯対策術!

こんにちは。
アクセス初心者です。
練習のため給与管理をAccessで作っています。
単純なクエリを基に入力フォームを作りましたが
(1)新規データを入力すると
「インデックスまたは主キーにはnull値を使用できません」
というエラーが出ます。
すべてのフィールドにデータは入っているのですが・・。
確認すべき場所があれば教えてください。

(2)またフォームに、1列目が会社リスト、2列目が会社名というコンボボックスを作りました。
コンボボックスで選択後、フォームで表示されるのは会社名、
テーブルに入力されるのは会社リストという設定はできますか?

どうぞ宜しくお願いします。

A 回答 (3件)

> 単純なクエリを基に入力フォームを作りましたが


> フォームを非連結とはどのようにするのでしょうか?
「単純なクエリ」と言っておられますが、複数のテーブルをジョインしたクエリですか?

フォームを非連結にするのは、レコードソースプロパティにあるクエリ名をクリアします。
これでフォームとクエリ(あるいはテーブル)とのリンクが切れます。
レコードの追加はVBAで行います。

> コンボボックスで選択後、フォームで表示されるのは会社名、
> テーブルに入力されるのは会社リストという設定はできますか?
コンボボックスの
「連結列」プロパティを「1」
「列数」は「2」
「列幅」は「0cm;1.5cm」(1.5cmは会社名が入る幅に調整してください)
ただしこれだと、プルダウンされたときも会社名しか表示されないので
「列幅」を「1cm;1.5cm」、「幅」を列幅の合計以上にしてください。
普通は、最初の方法を採ると思います。会社のコードなど覚える必要はないと思いますので。
    • good
    • 1

フォームを非連結にしては?


テーブルに連結してしまっているから、新規レコードを追加すると
インデックスあるいは主キーに設定されているフィールドにNULL値が
入ってしまい、エラーが出るのです。

この回答への補足

ありがとうございます。
フォームを非連結とはどのようにするのでしょうか?
プロパティで探してみましたが見当たりません。。

補足日時:2007/09/18 13:36
    • good
    • 0

(1)利用しているテーブルのデザインで、インデックスが はい になっている項目をチェックしてください


また主キーになっている項目も 特にこの項目では値がNULLは許されていません。 主キーでない場合は、空文字列の許可が なし になっていないかどうか なっていれば あり にする。
インデックス項目は、基本的にNULLを使わない方がよいと思います。

多分yukipongさんはインデックス項目に値を設定されていないのだと思います。 調べてみてください

(2)コンボボックスは、基本として参照になると思います。
フォームデザインの指定のコンボボックスのプロパティで列幅をしていすれば表示できます。
1列目からカンマ区切りで幅を指定します(通常cm)
この例では 0,5
1列目は表示されない 2列目はリスト幅で最初表示されます。
コンボボックスのプルダウン時は5cmで一覧が表示されます。
また、データの処理では通常見えていない1列目が使われます
(連結列 通常1)

試してください

この回答への補足

ありがとうございます。
(1)に関してですが、主キーですが、オートナンバーになっているので
NULL値になることはないと思います。
他にはインデックスはついていないのですが…

補足日時:2007/09/18 13:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A