入力時のエラーメッセージとは?

このQ&Aのポイント
  • Accessでメインフォームとサブフォームを作成しました。
  • メインの注文書Noとサブフォームの連番の入力をするときに、エラーメッセージが必ず出ます。
  • データベースの構築が原因かどうか迷っています。
回答を見る
  • ベストアンサー

入力時のエラーメッセージ

入力時のエラーメッセージ Accessでメインフォームとサブフォームを作成しました。 その中でメインの注文書Noとサブフォームの連番の入力をするときに、エラーメッセージが必ず出ます。 OKで消すことで入力自体は出来るのですが、毎回出るので面倒です。 メッセージは[Link Master Fieids/リンク親フィールドプロパティの設定でエラー 名前が適切でありません clickが発生しました]です。 データベースの構築自体がまずいのでしょうか? やっていることは、一つしかない注文書Noと数種類の項目をメインフォームとして、サブフォームは連番(1~最大4まで)とそれぞれの連番の注文内容としています。 一つの注文書が、4品名まで記載出来るようになっており、注文者などの重複する項目をメインとして、重複しない品名などの項目をサブにしています。 データベースの作り方もよく判らないで本を読みながら作ったので、困っています。 宜しくお願いします。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

各フォームのレコードソースは、 メインフォーム:注文書No、その他項目(日付、顧客IDなど) サブフォーム:注文書No、その他項目(商品名、個数、単価など) というのが一般的ですが、このような設定だと仮定します。 そこで、メインフォームとサブフォームを関連付けるときに、 デザインビューでメインフォームにサブフォームを表示する コントロールのところで右クリックして、プロパティシート を表示し、リンク子フィールドとリンク親フィールドの 設定がどのようになっているか確認してください。質問の 状況だと注文書Noがそれぞれに設定されていれば、特に 問題なくリンクされるはずですが。それ以外の設定を されたりしていますか。 以上は、一般的なメイン、サブの関係ですが、質問の状況から、 メインフォームとサブフォームのレコードソースをもう少し くわしく説明してもらえれば具体的なアドバイスが出来るのですが。 (1) >その中でメインの注文書Noとサブフォームの連番の入力 (2) >やっていることは、一つしかない注文書Noと数種類の項目を >メインフォームとして、サブフォームは連番(1~最大4まで) >とそれぞれの連番の注文内容としています。 >一つの注文書が、4品名まで記載出来るようになっており、 >注文者などの重複する項目をメインとして、重複しない >品名などの項目をサブにしています。 フォームで処理している上記二つの内容がつかみ辛いので、 少し具体的であれば、テーブル設計、フォームでの処理に ついて提案できることがあるかもしれません。 たとえば、各フォームのレコードソースは直接テーブルを 指定しているのか、あるいはSQLを設定しているのか。 その内容は、など。

関連するQ&A

  • Accessのデータベースの構築の仕方について

    Accessのデータベースの構築の仕方について Access初心者です。 1注文書にmax3品目まで記入できる注文書データベースの構築について教えて下さい。 メインテーブルと、サブデータを作っており、 メインテーブルには、注文書Noと注文者名、日付の1注文書内の重複するフィールドを サブテーブルには、連番(max3)、品名(max3)、金額(max3)の重複しないデータとしています。 以下の様な感じです。 メイン→注文書No  1   2   2   3   3   3 サブ →連番      1   1   2   1   2   3 本当は、注文書Noを主キーにして、同じ注文書Noを入力出来ない様にしたいのですが、インデックス、主キー、リレーションシップで値が重複しているのでテーブルを変更できないというエラーメッセージが出ます。 仕方が無いので、現在は諦めて、以下の様に注文書Noでリレーションシップを組んでいます。なので注文書Noの2度打ちの可能性はあります。 メインIDもサブIDも意味が無いと思っていますが。 メイン                    サブ(主キー設定無し) メインID(オートNo)主キー      サブID(オートNo) 注文書No-----------注文書No 注文者名                   連番 日付                      品名                          金額 私のやりたいことは、一つの注文書Noに対し、max3つまで連番で紐づけて、同じ注文書Noを入力出来ないようにしたいことなのですが。 この様な場合、どの様にデータベースとして、リレーションシップはどの様にして、主キーもどの様にするのが正しいやり方なのでしょうか? リレーションシップも良く理解出来ていない状態ですが、宜しくお願いいたします。

  • Access フォームで重複データのコピー入力について

    Accessで注文台帳を独学で作っているものです。 マクロは少々、VBAは全く判らないレベルです。 実は、1枚の注文書で2つの発注まで記載できる書式になっているため、注文書No 00001に対し、連番で01と02に分けて入力しています。 以下の様に、フォームで連番01の内容を入力してレコード1、次に連番02の内容を入力してレコード2という感じです。        注文書No 連番 発注者 品名 部署 金額  レコード1  00001 01 Aさん タコ B課 100円 レコード2  00001 02 Aさん コマ B課 200円 この時に一つの注文書なので当然、発注者と部署は連番01も02も同じになるのですが、全て入力しなければなりません。 重複フィールドは発注者、部署以外にも多くあるので、手間が掛かります。 そこで相談なのですが、重複フィールドを自働でコピーする方法はあるでしょうか? 連番02と入力した場合に、同じ注文書No00001の連番01のレコードデータから、自働で連番02の重複フィールドにコピー入力したいです。 現在は、自分だけが入力しているので我慢しているのですが、将来的に他の人も入力する可能性があり、その時、クレームが出ると思うので今の内に解決しておきたいと思っています。 もしVBA、マクロが必須であれば、全く判らないレベルですので記述も教えて頂ければ助かります。 大変申し訳ありませんが、お願いいたします。

  • access2000で存在しないデータを入力した時メッセージを表示させたい

    はじめてaccess2000でファイルを作成する初心者です。 名前(ID)を入力すると、 その方の情報(メインフォーム)と、 情報の変更履歴(サブフォーム)が表示される、 フォームを作成しています。 最初、別のフォームにテキストボックスを作成し、 そこにIDを入力後、ボタンをクリックすると、 クエリ(テーブル)に存在するIDは表示されますが、 存在しない場合は、「存在するIDはありません」 というメッセージを表示し、 メイン・サブフォームの画面には移動しないように したいのです。 ※現在は空のメイン・サブフォームが表示されます。 ちなみに、IDに重複はありませんので、 情報(メインフォーム)は1件しか表示しませんが、 変更履歴(サブフォーム)はIDによって 複数のレコードが存在する場合があります。 説明がわかりにくくて申し訳ありませんが、 回答をお願いいたします。 accessに関する知識がほとんどありませんので、 簡単にできる方法を教えていただけるとうれしいです。

  • Accessにてフォームを開く時にエラー

    Accessにて、メイン・サブ形式のフォームを作成しています。 サブフォームには、取引の一覧を表形式で入力していきます。 フォームを開く時に、新規のレコードから入力できるようにマクロで設定しましたが、 オブジェクト”サブフォーム名”が開いていません というメッセージが表示されうまくいきません。 ◆マクロ◆ フォームを開く ・・・ メインフォーム名 レコードの移動 ・・・ サブフォーム名            新しいレコード 上記のように設定しています。 マクロでは、不可能なのでしょうか? よろしくご教授願います。

  • ACCESS入力での重複キーチェック

    ACCESSを初めて使う初心者です。 ACCESSで携帯電話の管理を行うデータベースを作ろうと考えています。 電話番号をキーにして携帯電話台帳にデータを入力するフォームを作りました。 当然、電話番号は重複なしのインデックス項目にしています。 しかしフォームを作って入力を行うと、最初に電話番号を入力した時には、 まだ重複のチェックは行われず、使用者等のすべての項目を入力し終わって、 次のデータの入力を行おうとした時に初めて、「重複キーがある」というような メッセージが出てきます。(一般使用者には分かりにくいメッセージだと思います) これを最初に電話番号を入力した時点で直ちに重複チェックを行って、 重複がある場合にはエラーにして、以下の項目の入力はさせないようにする。 そして適切な指示を表示するには、どうしたらいいでしょうか? マニュアルに書いてある通りにやってみて、一応できたという程度の全くの初心者 です。ピントの外れた質問かもしれませんがどうかよろしくお願いいたします。

  • ACCESS メインFに入力後でなければサブFに入力出来ないようにするには?

     メインフォームに必要事項を入力後でなければ、詳細を入力するサブフォームに入力ができないようにしたいのですが、どうしたら良いでしょうか?  できれば、サブフォームのコントロールに触れると「必要事項を入力して下さい」とメッセージが出るような形にしたいのですが・・。 良い方法がありましたら教えて下さい。

  • アクセスで、OLEサーバーもしくは・・というエラーがでます。

    マイクロソフトアクセス2000でデータベースを作成していますが、フォームにサブフォームを組み込んでいます。今まで順調に入力できていたのですが、突然「OLEサーバーもしくはActiveXと通信しているときにエラーが発生しました OLEサーバーを終了し単独でアプリケーションを起動してから、同じ操作をしてください」とでて、入力を続行すると、リンクフィールドに値が入力されません。 ちなみに、同じパソコンで、他のサブフォームを使っているフォームを使用すると、問題なく動きますが、このファイルを他のパソコンにコピーしても、同じエラーがでます。

  • Access2000でメインフォーム・サブフォームを作成しようとするとエラーが表示されてしまいます。

    フォームウィザードを使ってメインフォーム・サブフォームを作成しようとした ところ、最後に「不正なデータベースです」というエラーメッセージが表示され、 Access自体がハングアップしてしまい、作成することができません。 そこでフォームウィザードの中にスタイルを設定する画面があるのですが、そこを ”標準”にして再チャレンジしてみたのですが、やはり6台のパソコン中、3台の パソコンで「不正なデータベースです」と表示され作成することができませんでした。 すべて同じスペックのパソコンです。 FDの中に保管してあるデータベースを使用しているのですが、 処理上で何か問題があるのでしょうか? 教えてください。

  • 非連結テキストボックスの数字入力について

    どうしても分からないので質問します 今、アクセス97にてフォームを作成しています 構成はメインフォーム + サブフォーム ×2です コードを入力するテキストボックスをメインフォームに作成したのですが実際入力してみると桁溢れの場合、 「実行時エラー’3163’:フィールドが小さすぎるため、追加しようとするデータの量を受け入れることができません。データの量を少なくして、挿入または貼り付けを行なってください。」とエラーメッセージが表示されてしまいます エラーを出ないようにするにはどうすればいいのでしょうか? 宜しくお願いします

  • 入力時エラーメッセージの出し方

    http://oshiete1.goo.ne.jp/qa3745129.htmlを参考に 下記の構文を作りましたが、エラーメッセージが出せなく困っています。 フォームで入力を行う際に、該当ボックスで車番一覧にデータの無いものに関してエラーメッセージを出したいと考えています。 修正箇所に関してご指摘いただければと思います。 よろしくお願いします。 Private Sub CommandButton1_Click() Dim check As Long '重複の有無(=0:重複せず,>0:重複) With Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox3.Text .Offset(0, 4).Value = TextBox4.Text On Error Resume Next check = 0 check = WorksheetFunction.Match(CInt(TextBox2.Text), Range("車番一覧", Columns(1))) On Error GoTo 0 If check = 0 Then MsgBox "その車番は登録されていません!", vbExclamation, "入力エラー" TextBox2.SetFocus Exit Sub End If Exit Sub End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" If TextBox1.Text = "" Then TextBox1.SetFocus End If Range("A1").Sort Key1:=Range("A1"), order1:=xlAscending, Key2:=Range("A1"), order2:=xlAscending, Header:=xlGuess End Sub

専門家に質問してみよう