• 締切済み

Access2000のフォームで

新規レコードを入力しようとすると 「このフィールドを変更する前に、まずレコードを保存してください」 とエラーメッセージが表示され、入力を受け付けてくれません。 このフォームのもととなるクエリでは新規レコードの入力が行えます。 何が原因なのでしょうか??? 原因となりそうな入力規則やモジュールは全部はずしたつもりなのですが・・・ 説明がわかり難くてすみませんが、傾向を知っておられる方ご回答をお願いいたします。

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>チェックボックスの規定値プロパティに「0」を設定したのが原因でした。 >規定値プロパティを削除する以外に、これを回避する方法はないでしょうか? フォームのチェックボックスに0の規定値を入れずにテーブルの該当するフィールド がYes/No型になっていると思いますがテーブル側で規定値を0に設定しておけば フォーム上で回避出きるのではないでしょうか。

hhayato10
質問者

補足

返事が遅くなりすみません。 この問題は、まだ解決してないままです。 >フィールド がYes/No型になっていると思いますが データ型は数値型です。 フォーム上でのみチェックボックスを使用しています。 テーブルのデフォルトは「0」に設定してます。 いい忘れてましたが、テーブルはODBC接続のリンクテーブルです。 (データベースソフトはPostgreSQL)

回答No.1

明確に理解できていないのですが、 編集できないのは特定のコントロールですか? 以下のような場合、コントロールのデータを編集することはできません。 コントロールの Locked/編集ロック プロパティが [Yes/はい] に設定されている。 コントロールの Enabled/使用可能 プロパティが [No/いいえ] に設定されている。 コントロールの ControlSource/コントロールソース プロパティに式が設定されている。このような演算コントロールのデータを編集しようとすると、ステータス バーに以下のメッセージが表示されます。 このコントロールは \'式\' に連結しているため、編集できません。 コントロール ソースに指定しているフィールドがクエリの演算フィールドになっている。演算フィールドに連結したコントロールのデータを編集しようとすると、ステータス バーに以下のメッセージが表示されます。 フィールド \'演算フィールド名\' は式に基づいているので、編集できません。 Locked/編集ロック 、 Enabled/使用可能 、 ControlSource/コントロールソース プロパティを確認するには フォームをデザイン ビューで開きます。 コントロールをクリックします。 [表示] メニューの [プロパティ] をクリックします。 [データ] タブの Locked/編集ロック 、 Enabled/使用可能 、 ControlSource/コントロールソース プロパティを確認し、必要であれば適切な設定に変更します。 などは、参考にはなりませんか? あとは、以下のサイトで心当たりを調べていただけないでしょうか?

参考URL:
http://support.microsoft.com/intl/japan/personal/default.asp?nav=ts&GSSNB=1
hhayato10
質問者

お礼

チェックボックスの規定値プロパティに「0」を設定したのが原因でした。 規定値プロパティを削除する以外に、これを回避する方法はないでしょうか? 度重ね質問してすみませんが、よろしくお願いします。

hhayato10
質問者

補足

編集ロック プロパティ 使用可能 プロパティ は、一切触っておりません。 唯一、削除の許可プロパティを「いいえ」に設定していたため「はい」に戻しましたが変化はありません。 なお上記URLを確認しましたが、一致する項目がなく問題は解決されませんでした。 ありがとうございます、もう少し調べてみます。

関連するQ&A

  • ACCESS新規レコードが追加出来なくなりました

    ACCESS2010初心者です。クエリから入力用のフォームを作りましたが、新規レコードの保存が出来なくなりました。※マーク有効、データ入力も可能、エラーメッセージなしですが、フォームを閉じて、開きなおすと新規レコードが消えている(保存されていない)といった状況です。フォームの元クエリも新規レコード保存なしですが、クエリの元デーブルのみ新規データがどんどん追加されています。原因と対策をご教授頂きたく宜しくお願い致します。

  • アクセス2000のフォームについて

    アクセスでまたつまずいてしまいました。ちょっと教えてください。 複数のテーブルから選択クエリを作り、それを基にオートフォームでフォームを作ったのですが、フォームでデータの入力が出来ません。クエリでもデータの入力が出来ません。 「このレコードセットは更新できません」と下のほうに出ます。 フォームのプロパティのデータの更新の許可と、データ入力用のところは“はい”になっています。 私では原因がわかりません。わかりにくい質問でしょうが、どなたかご指導お願いします。

  • Microsoft Accessでどうしても上手くいきません。

    (1)テーブル作成クエリ クエリA で テーブルB を作ります。 (2)テーブルB にフィールドを一つ追加して、変更を保存 (3)テーブルB のレコードを削除 (4)クエリA を 追加クエリ に変更 で追加クエリAを実行すると、入力規則違反でレコードの追加ができません。 追加するフィールドは、オートナンバー型です。 以前は同様の作業で成功したんですけど・・・ すみません助けてください

  • アクセスのフォームでデータ元をテーブルからクエリにかえたい

    上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。

  • Access2000 Len関数 フォームで困っています

    最近Accessを始めた初心者です。 レポートで出力する際に文字が切れないように、フォームで入力文字数の制限をするため、Len関数でプロパティの入力規則に以下の設定をしました。 入力規則 Len([フィールド名])<51 エラーメッセージ 50文字以下に調整してください。 で、入力テストをしてみたところ、50文字まで入力可能、51文字からエラーメッセージが表示されるところまでは問題ないのですが、エラーの発生したテキストボックスを空にして、他のテキストボックスへ移動すると、また同じエラーメッセージが出てしまいます。 その後は何文字か入力しないと次のテキストボックスに移れなくなってしまい、入力する場所を間違えた場合にフォームを開きなおさねばならない状態です。 他には新しいレコードに移る際に、コードに以下のメッセージを設定していますが、他は何もしていません。 Private Sub Form_BeforeUpdate(Cancel As Integer) Beep If MsgBox("情報が変更されています! 変更されたデータを保存しますか?", _ vbYesNo + vbQuestion) = vbNo Then Me.Undo Cancel = True End If End Sub どなたかご教授いただけないでしょうか。

  • フォームのプロパティを設定したい(Access2000)

    Access2000 XPです。 都道府県名が1レコードに1つずつ入っているテーブルと 各都道府県名のテーブルが47コあります。 新規でフォームを作成し(フォームのレコードソースはまだ未設定) コンボボックスを1つ置いて、値集合ソースに都道府県テーブルを設定し コンボボックスで選ばれた都道府県にフォームのレコードソースを変更しようと思っています。 Me.RecordSource=コンボボックス.text 単純にこれで良いと思うのですがエラー(入力された値は、フィールド又はコントロールで定義されている入力規則に従っていません)が出て全然更新されません。 どなたか分かる方、解決法をお願いします。。。

  • Accessのフォームで

    Accessで2つほど質問いたします。 (1)テーブルにフィールドを追加したのですがフォーム上でそのフィールドが追加できません(プロパティで選択できない)、多分クエリーを経由してフォームを作成したのですが、どのクエリーだかわからなくなってしまいました、参照しているクエリーがどれなのかを調べる方法を教えてください。 (2)検索フォームを作成して入力した文字を含む検索をしたいのですが どのようにしたら良いのでしょうか、今は入力の文字列の最初と最後に「 * 」を入力して検索しています。

  • Access2010で・・・

    Access初心者です。 社内でデータベースを作ることになり、分からないながらもやっていて、いざデータの入力をしようとすると問題が起きてしまいました。 クエリやフォームでデータを入力しレコードを追加して、上書き保存し画面を閉じて、また開くとクエリやフォームにレコードが追加されていないんです。 テーブルには、ちゃんと追加されています。 この原因は何でしょうか? お教えください。

  • Access フォーム検索

    お世話になっております。 フォームに日付を入力した時に、フィールドに同じ日付があった場合、そのレコードのデータを表示するにはどのようにすればいいのでしょうか? テーブルは、[日付]を主キーにしたクエリテーブルです。 よろしくお願い致します。

  • フォームのレコードソース(Access2000)

    質問させていただきます。 フォームの「レコードソース」でテーブルとクエリーのほかに、「SELECT テーブル名、フィールド名・・・」というのがあります。これもクエリーなのでしょうか? ちなみに、レコードソースの右にある「---」をクリックすると「SQLステートメント:クエリビルダ」というものが開きます(クエリー画面と同じ?)。 また、フォームのレコードソースはテーブル、クエリー、SOLステートメントのどれにすれば良いのでしょうか?