アクセス2000でテーブル1(データ入力済み)、テーブル2(データ未入力)、 テーブル3(データ未入力)、テーブル4(データ入力済み)の4つのテーブルを作成しました。クエリーを上記のテーブルから作成しました。テーブル1とテーブル4はデータが入力されているので、クエリーに反映されています。その後、テーブル2に入力した後、そのクエリーに反映されないのは、どうしてでしょうか。
初歩的なことだと思いますが、教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

No1.さんのおっしゃるとうりですが…



予測して考えると
テーブル1~4すべて使用しているクエリの場合だとすると

1.連結式の関係でテーブル3のデータがない限りデータ表示できない
2.ただ単純に連結式のフィールド内のデータが不一致である。

どちらかじゃないでしょうか?
    • good
    • 0
この回答へのお礼

何とか解決しました。ありがとうございました。

お礼日時:2001/11/27 13:44

どんなクエリーを書きましたか?


クエリの編集画面で、[表示]-[SQL]ビューとして、出てきた文字列(SELECT… となってると思います。)を補足欄にコピー、貼り付けしてください。
    • good
    • 0
この回答へのお礼

解決しました。助言ありがとうございました。

お礼日時:2001/11/27 13:45

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

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

Q選択クエリーで 2つのテーブルの項目が Null どうしのデータを抽出するには?

初心者です、教えてください。

テーブルが、2つあって
テーブル名: T1 T2
フィールド1: A1 B1
フィールド2: A2 B2
フィールド3: A3 B3
とあった時、選択クエリーで T1 と T2 のフィールドの A1-B1、A2-B2、A3-B3 が、
一致したものを表示するクエリーを作成します。
でも、A2、A3、B2、B3のデータ中には、それぞれ Null値が入っていて、
A2-B2、または、A3-B3 が、Nullどうしなら、一致とみなして、表示するには、
どうしたらいいのでしょうか?

Nullのみどうしのデータで、Nullのフィールドを
除いた選択クエリーをつくって、あとで合わせてもいいのですが、
実際のテーブルは、そういうフィールドが、いっぱいあって、大変なんです。

簡単に表示する方法は、あるでしょうか?

初心者なのでむずかしいことは、
やったことがなくて、すいませんが、わかる方がいらっしゃたら、お願いします。

Aベストアンサー

MS|ACCESSは持ってないので正確ではないかもしれませんが
。あっ、その前に表示させるときリストボックスで表示させるのかフォームで表示させたいのか書かれたほうがアドバイスが増えるかもしれません。

取り敢えず、書式タブの規定値を'0'にすればいいかも。
詳しいことは以下を参考にしてください。

参考URL:http://ac.accessclub.jp/beginer/cd/part_07.htm

Q2つのテーブルからクエリー作成

まず現状のご説明をさせていただきます。

「一覧テーブル」と「支払先一覧テーブル」があります。
「支払先一覧テーブル」には、
・No
・支払先名
・カナ
・銀行名
・支店
というフィールドがあります。
「一覧テーブル」には
・日付_年
・日付_月
・支払先No
・支払先
・入居者
・家賃
・駐車料
・総支払額
というフィールドがあります。

この2つのテーブルは、「支払先テーブル」の「No」と「一覧テーブル」の「支払先No」が
リレーションされています。

この2つのテーブルからクエリーをつくり、各支払先ごとに合計を取りたいと思い、以下のようなクエリーを作成しました。


デザインビューでクエリーを作成し、「支払先テーブル」と「一覧テーブル」をそれぞれ選択。
その中から、
・日付_年(一覧テーブル)
・日付_月(一覧テーブル)
・カナ(支払先一覧テーブル)
・銀行名(支払先一覧テーブル)
・支店(支払先一覧テーブル)
・総支払額(一覧テーブル)
をもってきました。
そのクエリを集計し、総支払額だけ「合計」にし、あとは「グループ化」にしました。

これで、支払先ごとの合計は出るかと思ったのですが、空欄になってしまいました。
どこが間違っているのか全然わかりません。
どうか教えてください。
よろしくお願いします。

Access2000を使用しています。

まず現状のご説明をさせていただきます。

「一覧テーブル」と「支払先一覧テーブル」があります。
「支払先一覧テーブル」には、
・No
・支払先名
・カナ
・銀行名
・支店
というフィールドがあります。
「一覧テーブル」には
・日付_年
・日付_月
・支払先No
・支払先
・入居者
・家賃
・駐車料
・総支払額
というフィールドがあります。

この2つのテーブルは、「支払先テーブル」の「No」と「一覧テーブル」の「支払先No」が
リレーションされています。

この2つのテーブルからク...続きを読む

Aベストアンサー

テキスト型でもできるのですが、実際に見ないとなぜ
「支払先NO」でデータを引っ張ってこれないのか
分からないので、今あるシステムを丸ごとコピーして、
「支払先テーブル」の「No」と「一覧テーブル」の「支払先No」を
数値型にして試してみてはいかがでしょうか。

今あるシステムが壊れない様にコピーしてから作業してみてください。

QACCESS2000 クエリーを開いてテーブルのデータを更新したい

ウィンドウズ98,ACCESS2000です。

二つのテーブルがあって、リレーションがあります。

これを元にクエリーを作成して、クエリーを表示させたフォームでデータの更新や削除を行いたいと思っております。

が、実際やろうとするとこのレコードセットは更新できませんとでます。

何か考えられる理由はありますか? よろしくお願いします。

Aベストアンサー

一対多のリレーションなのでしょうか?一対多のリレーションで通常は連鎖更新できますが多側のリンクしているインデックがクエリーに含まれていないと更新出来ない事があります。
リレーションが多対一になっていても更新出来ないと思います。
クエリーに演算するフィールドがあると読み取りしか出来ないはずです。孫入れしてあるクエリーがあるとしてその中に演算フィールドがあっても出来ません。

QACCESS2000、テーブル作成追加クエリー

SQL文を見ていると、
SELECT ・・・・・・・・INTO SURVEY IN 'DEPOSIT.mdb'
となりますよね。で、このIN以下は、ACCESSのツール→オプション→全般で指定した「規定のデータベースフォルダー」にあるものになりますよね。
これを、たとえばネットワーク上の他のコンピューターのフォルダーに保存させることは出来ますか? 「規定のデータベースフォルダー」をネットワーク上にする方法よりも出来ればSQL上で書いてしまいたいのですが。

Aベストアンサー

はじめまして
>SELECT ・・・・・・・・INTO SURVEY IN 'DEPOSIT.mdb'

SELECT ・・・・・・・・INTO IN '\\コンピュータ名\共有フォルダ名\DEPOSIT.mdb'
でできませんか?
Access2000では使ったことがないのでわかりませんが
Access97の時はたしかできました。

Qクエリーから入力フォームの作成

access2000を使って簡単な注文用のフォームを作っています。VBAは初心しゃです。
テーブルとしては、納品伝票(伝票番号、顧客コード)、顧客管理(顧客コード)を作り( )ないのものでリレーション組んでます。
クエリーでリレーションを組み、それを元にフォームを作りました。
希望としては(1)伝票番号の重複がないようにする。
(2)顧客コードから住所を表示させる、顧客コードが登録されていないときにはメッセージを出し、正しい顧客コード(顧客コードのみ)を入力させる。
(1)はクエリーでテキストのデータを条件にし、フォームのVBAで
Private Sub 伝票番号_AfterUpdate()
If DCount("伝票番号", "Q_納品伝票") >= 1 Then
MsgBox "すでに登録されています"
Me.Undo
DoCmd.GoToControl "顧客名"
DoCmd.GoToControl "伝票番号"
End If
End Sub
で上手くできましたが、同じクエリーで(2)も(1)と同様なVBAを組んだところ(顧客デーブルの顧客コードに重複があるときをチェックさせる)、(1)の重複をチェックしなくなってしましまいました。
うまく説明できたが心配ですが、根本的に何か違っていますでしょうか?

access2000を使って簡単な注文用のフォームを作っています。VBAは初心しゃです。
テーブルとしては、納品伝票(伝票番号、顧客コード)、顧客管理(顧客コード)を作り( )ないのものでリレーション組んでます。
クエリーでリレーションを組み、それを元にフォームを作りました。
希望としては(1)伝票番号の重複がないようにする。
(2)顧客コードから住所を表示させる、顧客コードが登録されていないときにはメッセージを出し、正しい顧客コード(顧客コードのみ)を入力させる。
(1)はクエリーでテキストのデ...続きを読む

Aベストアンサー

>同じクエリーで(2)も(1)と同様なVBAを組んだところ・・
クエリにではなくテーブルを参照するようにすれば良いと思います。
DCount("*", "納品伝票テーブル", "[伝票番号]=Forms![注文フォーム]![伝票番号]")>=1
のようにでも変更してテーブルを見にいくようにすれば両方ともいけると思いますが。

#1の方がテーブルにまかせ・・「重複を許さないインデックス」を付けましょう。
と回答がありますが通常はテーブルに主キーを設定しておくのですが、設定していないのでしょうか?顧客コードと伝票番号は主キーの設定をして重複しないようにしておいてください。テーブル側でも重複されないようチェックされます。
2000ならテーブルの主キーの設定をすれば伝票番号のコントロールで入力し重複があれば伝票番号のコントロールから移動する際(Enterキー押下等)メッセージが出ると思いますが。
顧客コードはコンボボックスにして顧客管理テーブルを参照するようにすれば顧客管理テーブルにあるレコードしか表示されません。そのコンボボックスから顧客コードを選び住所等を顧客管理テーブルから持ってくるようにすれば簡単だと思います。

>同じクエリーで(2)も(1)と同様なVBAを組んだところ・・
クエリにではなくテーブルを参照するようにすれば良いと思います。
DCount("*", "納品伝票テーブル", "[伝票番号]=Forms![注文フォーム]![伝票番号]")>=1
のようにでも変更してテーブルを見にいくようにすれば両方ともいけると思いますが。

#1の方がテーブルにまかせ・・「重複を許さないインデックス」を付けましょう。
と回答がありますが通常はテーブルに主キーを設定しておくのですが、設定していないのでしょうか?顧客コードと伝票番号は主キ...続きを読む


人気Q&Aランキング

おすすめ情報