• ベストアンサー

アクセスのクエリで抽出されたデータの変更ができません。。

仕事で、前任者が作成したファイルを利用して、全く新しいものを作っているのですが、うまくいきません。。 フォームがつくってあり、そのフォームのもととなるクエリもあるのですが、読み取り専用みたいに、データの変更ができなくなっています。 どうしたら、入力、変更可能になるでしょうか? 教えて下さい。

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

  • ベストアンサー
  • wakudo
  • ベストアンサー率32% (18/56)
回答No.5

#3のものです。 *「誤ったテーブル」というのが例えばどういうことなのでしょう ということですが確認するにはまず フォームの元になるクエリをデザインビューで開いて フィールドリストに表示されているテーブルの  1.テーブル名  2.各フィールド名 それから  3.デザイングリッド(下の条件セル)フィールド名 などの情報よければ教えてください。

hanapopo
質問者

お礼

すみません。お礼が大変遅くなりました。 なんどもアドバイスいただきましてありがとうございました。 やっぱりアクセスはわたしには難しかったです。。 結局、(まだ完成してないのですが)別に新しくつくりました。 どうもありがとうございました。

その他の回答 (4)

  • wakudo
  • ベストアンサー率32% (18/56)
回答No.4

すみません。使用した用語について補足しておきます。 #3のなかでフォームの「コントロール」と明記していますがそれはデータが表示される四角い枠を示します。#2さんは「コントロール」のことを「フィールド」と 書かれていますがフォームの中での枠はフィールドの値を表示する枠なので厳密には違うものです。 さらに補足するのであればレコードの値を表示しているコントロールは[テキストボックス]という名前があります。 選んで右クリックで[プロパティ]を表示するとコントロールの名前をタイトルバーにて確認することが出来ます。 私もですが、自分で調べようとする時にはそれぞれの部品の名前を正確に知っておく必要があるかもと思い書かせていただきました。 なまいきなことを書いてしまいましてすみません(>_<)

  • wakudo
  • ベストアンサー率32% (18/56)
回答No.3

こんにちは。 #1のものです。たしかに#2さんが指摘されている 部分の可能性も十分にあります。 利用したいフォームが上手く「データが入力できない」のであればそのフォームは何のために作られたものなのかをよく考えてみたらいかがですか? フォームやその元になクエリのファイル名などとかから。 もともと「フォーム」オブジェクトというのはアクセスなんてものは知らない人でも誰でも入力・確認ができるために用意している道具ですから。 きっとどこかにヒントがあると思いますよ。 ちなみにクエリをデータシートビューで開いてデータの入力・編集は可能かどうか。 1、可能であればフォームに対して編集ロックかな? ...ってかんじかも。 2、不可能であればデザインビューに切り替え考える。   1、であれば[フォーム]オブジェクトをデザインビューで開き全体・それぞれのコントロールのプロパティなどを開き#2さんのいわれているように確認されてみてください。   2、なら[クエリ]オブジェクトのデザイングリッドの中の条件にグループ化などのどんな条件が設定されているのか。 それからフィールドの参照を誤っているかも。 関連テーブルと主テーブルには基本的に同じフィールド名が存在していますので初歩的ミスとして誤ったテーブルからの選択を行っている場合はクエリの結果を表示することはできても入力は出来なくなります。(私個人としてはここかな?となんとなく思いました。作った本人も分からないまま放置していたファイルかもなんてですね。ありえないかなぁ...?) いっその事テーブルをもとにクエリ・フォームつくられてはいかがですか? なんて言ってしまうとチャンチャン...って答えにならないですよね。ごめんなさい。 とにかくもう一度再確認してみてください。

hanapopo
質問者

お礼

またまたご回答ありがとうございます! 私自身よくわからなすぎて、投げ出しそうでした。。 もういちど考えてみようと思いました! >>クエリをデータシートビューで開いてデータの入力・編集は可能かどうか。 これができないんですー。なので、2番のかんじっぽいですね。 >>関連テーブルと主テーブルには基本的に同じフィールド名が存在していますので これ、みてみます。 「誤ったテーブル」というのが例えばどういうことなのでしょう・・?ちょっとよくわからないのですが・・。すみません。。 たしかに、いっそのこと新しくクエリを作ってもいいんですが・・。。

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

>そのフォームのもととなるクエリもあるのですが・・データの変更ができなくなっています データの変更が出来ない理由として考えられるのは・・ フォーム上で変更が出来ないとしてフォームの各フィールドのプロパティが編集ロックがかかっている。フォーム自体のプロパティが追加・編集・削除の許可が[いいえ]になっている。 フォームはこの辺を確認してください。 またはフォームのレコードソースに使っているクエリがグループ化されている。またはグループ化されたクエリのフィールドをクエリにネストしている。 クエリをデザインで開き確認してください。グループ化されたフィールドがあるクエリのレコードは変更できません。

hanapopo
質問者

お礼

ありがとうございます。 >>フォーム上で変更が出来ないとしてフォームの各フィールドのプロパティが編集ロックがかかっている。フォーム自体のプロパティが追加・編集・削除の許可が[いいえ]になっている。 →これは確認したら「いいえ」ではなかったです。 クエリのグループ化というものかもしれないですが、 よく分かりません。 ネスト?はちょっとよくわかりません・・。(初心者すぎてすみません(@_@)。。) でもそんなかんじかもしれません。。 もうすこしよくみてみます。 ありがとうございました。

  • wakudo
  • ベストアンサー率32% (18/56)
回答No.1

こんにちは。 内容をもう少し具体的に書かれた方が他の方も お答えしやすいのではないかと思います。 まず、 >前任者が作成したファイルを利用して、全く新しいものを作っている ということですが、ファイルの中のどの部分をどういう風に利用されているのですか? それから、 >データの変更ができなくなっています ということですが、 それはクエリ/テーブルの[デザイン]ビューは見れるがデータの入力・編集・削除がテーブル[データシート]に反映されないという事なのでしょうか? それから『パスワード』など聞いてくるもしくは パラメータなどのメッセージボックスなどが表示されたり という事はないのでしょうか? とくにパスワードが設定されていなければ とりあえず[ツール]メニュー→[セキュリティー]→ [ユーザー/グループの権限]を開いて 設定の確認をされてみてはいかがでしょうか? 複数のユーザー設定がされている場合はパスワードの認証にて変更削除などの制限がかかっている可能性があります。 なんの設定も無い場合はもしかするとクエリ・リレーションなどが上手く設定されていない可能性もあります。 新しいものを作っているということですが、前任のファイルをコピーしているのか新規作成しているのかでも大分状況判断は変わってくるのではないかと思います。

hanapopo
質問者

お礼

ありがとうございます。 内容がわかりにくくてすいません。。 全く新しく作っているのではなく、前任者が作ったデータべースに変更を加えているところでした。 いくつかのテーブルのデータを必要なフィールドをクエリで呼んで、そこでデータを変更したりすることは通常できるはずですが、 あるクエリは、データの変更を受け付けてくれないのです。。 保護されているみたいで、カーソル自体セルにおけません。 こんなかんじです。パスワードとかはないです。 もしなにかありましたら教えて下さい。

関連するQ&A

  • Access2007 クエリが読み取り専用になってしまう

    Access初心者です。 3つのテーブルのデータ(全て)をクエリに抽出して、そのクエリからフォームを作成し、フォーム上からデータ入力をしていきたいと考えております。 しかし、上記方法で作成したフォームは入力ができなく、ヘルプで調べたらフォームが読み取り専用になっているようでした。 いろいろ検索したのですが、どうやら更新可能なクエリにする必要があるみたいなのですが、その方法が分かりません。 宜しくお願いします。

  • Access2007のフォームとクエリについて

    Access2007、OSはwindows7での開発です。 フォームのレコードソースに自分で作ったクエリを張り付けているのですが、 コードの中でクエリを変更し、その変更した内容がフォームに反映のされ方がおかしくて困っています。 前の画面で年月を入力し、ボタンをクリックすることで次の画面へ移行し、前の画面の年月でクエリを書き換えています。クエリは書き変わっていますし、クエリを書き換えた後にフォームをリクエリしています。しかし、フォームに反映されているデータは直前に入力した年月ではなく、その1つ前の年月のデータが出てきます。 流れとしましては、 年月入力画面で年月入力⇒作成ボタン押下で時間テーブルを見て、データが無ければ新しく作る。あればそのデータを表示というながれです。 説明下手なので理解しにくいかもございませんが、ご協力よろしくお願いします。

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • Accessのクエリでデータの入力ができません

    Access2000を使っている超初心者です。 参考書に基づいて、2つのテーブルをリレーションシップして、選択クエリを作成したのですが、このクエリから既存データの修正をしようとすると入力できません。また、最終行に*マークの新規データ入力欄がなく、データの追加もできません。 フォームの方もこのデータソースをテーブルのひとつににすると*マーク行が出て入力できるのですが、このクエリにすると*マーク行が出てこないです。 参考書のとおりやってるつもりなのですが、何が原因でしょうか? よろしくお願いします。

  • クエリ抽出条件を動的に変更したい

    Win XP Access2003 顧客情報を入力するメインフォーム1に商品明細を入力するサブフォーム(帳票)のある 伝票作成用のフォームを作っています。 (サブフォームは選択クエリが元になっています) 入力用にはフォーム1を使い、その後確定した伝票はメインフォーム2で扱いたいのです。 商品明細(帳票サブフォーム)の内容は同じなので、クエリの伝票番号(フィールド)の 抽出条件を フォーム1で開いた時に[forms]![フォーム1]![txt伝票番号] フォーム2で開いた時は[forms]![フォーム2]![txt伝票番号] の様に動的に変更したいのですが,よい方法がありましたら宜しくお願い致します。

  • アクセスで内容を変更していきたい。

    初心者です。あるリストで、テーブルを作成してみました。その整理番号を入力したら、内容が変更できるようにしたいのですが、どうすればいいのですか?。フォームを作成する?クエリを作成する?今まではクエリを使って集計、検索しかしたことなくて。フォームを作ってみたのですが、主キーに指定した整理番号を入力しても、データが一番始めのデータから動きません。勉強不足ですみません。よろしくお願いします。

  • Accessの再クエリについて

    Win2000、Access2000を使用しています。 1.すでに入力してあるデータ(Aフォーム、単票形式)の内容を変更して   「登録ボタン」をクリックすると再クエリを行う 2.「Bを開くボタン」をクリックすると、Bフォーム(単票形式)が開く 3.BフォームにはAフォームの変更が反映されている。 という流れにするため、Aフォームの登録ボタンをクリックしたら、再クエリをするようにVBを組みました。 AとBは、ID(オートナンバー型)でリレーションを組んでいます。 Aフォームは閉じないでそのまま表示させておき、Bフォームを開くボタンを作成しました。 ところが、再クエリをすると、1件目のデータを表示させてしまいます。 変更したフォームが2件目とか3件目であっても1件目を表示させてしまうので、変更したフォームを表示させたいんですが、どなたかおわかりになる方がいましたら、お教えください。 再クエリのVBは以下のとおりです。 Private Sub btn_登録_Click() Dim touroku As Integer touroku = MsgBox("このデータを登録しますか?", vbYesNo + vbQuestion, "登録") If touroku = vbYes Then DoCmd.Requery End If End Sub 説明がわかりずらくって申し訳ありませんが、よろしくお願いします。

  • ACCESS2000クエリーの変更

     すいません。一応前記事検索かけたのですが、よくわからなくて。  二つのテーブルにリレーションを張ってクエリーを作成した場合、クエリー上でデータを変更できるクエリーと、テーブル上でしか変更できないのがあるのは何故ですか?  初心者で、何が問題なのかもよくわかりません。  ウィンドウズ98です。よろしくお願いします。  

  • アクセスのクエリ抽出ができない。

    アクセスのクエリで、フォーム上のチェックのオンオフで抽出データの抽出条件を変更しようと思っています。 条件は、データの作成日付(yyyy/mm/dd形式)で、抽出の条件式は IIf([Forms]![F_送付状]![チェック40]=False,>=DateAdd("m",-1,Date()),>"0") です。チェック40がフォーム上のチェック(コントロールソースなし)で、オフの場合は、1ヶ月前までのデータを抽出、オンの場合は全件を抽出したいと思っています。 上記の式でうまく抽出できない(データが抽出できない)のですが、アドバイスをお願いします。

  • クエリの抽出条件

    クエリの抽出条件に [担当者を選んでください] クエリを開いた際に、担当者をドロップダウン一覧から選べるようにしたいのですが [Forms]![フォーム名]![コンボ名]は分かるのですが・・・ フォーム名とは、何を入力すれば良いのでしょうか? コンボ名はコンボボックスを作成した担当者名だと思いますが・・・? 基本的に1つのテーブルに全部の項目を入力し、クエリーを作成しています フォームは作成していました。 しかし、フォーム名を入力しても、コンボボックス名を入力しても[担当者を選んでください] の場所の名前が変わるだけなんです?? ご回答の程、よろしくお願い致します。

専門家に質問してみよう