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

アクセス自体の初心者です。よろしくお願いします。

テーブル:団体名
     個人名簿
     地区名
     住所一覧  を作ってあります。
(1)団体名のサブデータシートに個人名簿をつける。
(2)地区名のサブデータシートに住所一覧をつける。
(1)、(2)まではできました。

ここからが質問です。
a)個人名簿の地区名フィールドで地区名を選択すると、住所フィールドで地区名のサブデータシートを見られるようにしたい。
 今現在の設定では、住所フィールドに住所一覧のすべてのデータが表示される状態です。
b)さらに、住所を選択すると郵便番号が自動的に入力されるようにしたい。
 住所を手打ち入力すれば郵便番号は入力されるし、郵便番号を入力すれば住所も出るのだけど、今のまま住所を選択しても郵便番号は自動入力されない。
c)団体名のサブデータシートを一枚ずつ表示して、印刷できるようにしたい。(団体名ごとに個人名簿を表示印刷したい。)

 以上、質問自体をわかっていただけるかどうか不安ながらも、ご指導よろしくお願いします。

A 回答 (3件)

再び答えさせていただきます。


さて、「パラメータの入力」と表示されるとのことですが、これは要するにクエリの抽出条件欄に記述した、[Forms]![個人名簿]![地区名]が見つかりませんということです。
このクエリが機能するためにはまず、個人名簿フォームが「開いて」いなければなりません。
ですので、「個人名簿」フォームを開いた状態で、作成した「Q_住所一覧」クエリを開いてみて下さい。
これで、「パラメータの入力」が表示されなければ、次の作業に進んでいただいて大丈夫ですので、これ以下の文は全くお読みにならなくて結構です。
状況変わらず、「パラメータの入力」が表示されるようなら、フォーム名あるいはテキストボックス名が違います。
以下のことを確認してください。
(1)フォーム名が正しいか?・・・「データベースウィンドウ」の「フォーム」タブをクリックすると、フォームの一覧が表示されますので、該当するフォームに「個人名簿」という名前が表示されているかどうか確認します。
(mk114さんが質問 "a)"でおっしゃっているフォームです)
(2)テキストボックス名が正しいか?・・・上記が正しければ、「個人名簿」フォームをデザインビューで開き、該当するテキストボックスをダブルクリックして、プロパティ内の「すべて」タブをクリック(「その他」タブでも可)、
項目の一番上にある「名前」が「地区名」になっているかどうか確認します。
(同じくmk114さんが質問 "a)"でおっしゃっているフィールドです。また、私はテキストボックスと書きましたがコンボボックスでも問題ありません。)
もし、(1)(2)で名前が違っていて、既に他とリレーションさせているから名前を変えたくない(普通そうでしょうから)という場合は、クエリの抽出条件欄の記述を変更します。
[Forms]![個人名簿]![地区名」の場合、[Forms]は固定で構いません(参照するオブジェクトの種類がフォームであるということを意味しています)。
続く[個人名簿]がフォーム名ですので(1)で確認した名前と一致させます。
最後の[地区名]がテキストボックス名です。これは(2)で確認した名前と一致させます。
例えば、(1)でのフォーム名が「F_個人名簿」、(2)でのテキストボックス名が「txt地区名」などとしていた場合は、クエリの記述は[Forms]![F_個人名簿]![txt地区名]となります。
上記は半角か全角かなども含めて、一字一句間違えていても機能しませんのでご注意ください。
なお、ミニ技として、参照の際の [ ] は省略して入力しても、自動的に記述されます。
上記をすべて確認した上で、まだうまくいかないようでしたら、さらにフォーム名やフィールド名など正確にお教えくだされば、また、お答えできると思いますので、とりあえず試してご覧になってください。
    • good
    • 0
この回答へのお礼

せっかく教えていただいたのに、仕事を長期で休んでしまい結局解決していません。
一旦自分なりにやり直してみて、また改めて質問しようと思います。
ありがとうございました。

お礼日時:2001/12/21 11:10

ご質問の(a)について答えさせていただきます。


サプデータシート作成済みということですので、住所一覧テーブルに[地区コード]のようなものが入力されているものとしてご説明いたします。
まず、下記のような選択クエリを作成します。

表示テーブルは[住所一覧テーブル]。
フィールドには[地区コード][住所]を選択。
[地区コード]フィールドの「集計」を「where条件]、
抽出条件を[forms]![個人名簿]![地区名]にします。
(※対象フォーム名が「個人名簿」、テキストボックス名が「地区名」の場合)
[住所]フィールドの方は変更ありません。
クエリー名は「Q_住所一覧」としておきます。

次に個人名簿フォームの方ですが,、サブフォーム名を「住所一覧」とさせていただいた上で説明いたします。
といっても大した手順はありません。
まず、「住所一覧」サブフォームの「ソースオブジェクト」(プロパティの「データ」タブ)に上記の「Q_住所一覧」を選択します。
あとは「地区名」テキストボックスの「更新後処理」に、[Me.住所一覧.Requery]と、コードを1行記述するだけです。
初心者の方ということですので、一応コード記述の手順を説明いたします。
・「地区名」テキストボックスをダブルクリック
・プロパティが表示されていない場合は「表示」→「プロパティ」をクリック
・「イベント」タブをクリック
・「更新後処理」の右端の「・・・」ボタンをクリック。
・「コードビルダ」を選択して「OK」ボタンをクリック
Private Sub 地区_AfterUpdate()

End Sub
・上記のようにコードが表示され、間の空白行に入力カーソルが点滅しますので、そのまま
Me.住所一覧.Requery
と入力します。
結果、最終的に記述コードは
Private Sub 地区_AfterUpdate()
Me.住所一覧.Requery
End Sub
となります。以上です。

「地区名」テキストボックスに数字を入力してEnterキーを押せば自動的にサブフォームの表示も変わるはずです。

(c)についてはフォームと同じ手順でそのままレポートで作ってみていただければ、似たようなものができるはずです。ですので、あとはグループ化、改ページなどを試行錯誤すれば、イメージどおりのものに仕上がると思います。

この回答への補足

すごくわかりやすく教えていただいて、ありがとうございました。(c)については、考えていたものに近いものを作ることができました。
でも・・・。
選択クエリで、

表示テーブルは[住所一覧テーブル]。
フィールドには[地区コード][住所]を選択。
[地区コード]フィールドの「集計」を「where条件]、
抽出条件を[forms]![個人名簿]![地区名]にします。

と、教えていただいたとおり入力すると「パラメータの入力」と表示され、ヘルプを参照しても恥ずかしながらよくわからないので、未だ滞ったままで悩んでいます。そのことについて教えていただければ非常にうれしいのですが…。

補足日時:2001/11/21 09:22
    • good
    • 0

わかる点だけ・・・


b)住所関連は、Accessの機能でやってるんですよね?あれだと、融通が利かないし、辞書自体古いので、自分は、郵政省が発行している郵便番号データをテーブルに取り込んで(40MB近くになりますが)このデータを利用しています。住所をコンボボックスにして選択しても自動的に郵便番号を入れる仕様にしています。
http://www.moug.net/のフリーソフトの所にある「郵便番号辞書変換ツール」のサンプルを参照して下さい。

参考URL:http://www.moug.net/
    • good
    • 0
この回答へのお礼

ありがとうございました。
郵便番号の件については、参考にさせて戴きました。
その他の質問に関する件についても、もしわかりましたら教えていただければ幸いです。よろしくお願いします。

お礼日時:2001/11/13 15:42

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

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