Page 122 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼分からないよぉ kei 02/12/3(火) 15:03 ┗Re:データの抽出 yu-ji 02/12/4(水) 10:22 ┗Re:データの抽出 kei 02/12/4(水) 12:21 ┗Re:データの抽出 kei 02/12/4(水) 14:21 ┗Re:データの抽出 yu-ji 02/12/4(水) 14:31 ┗Re:データの抽出 kei 02/12/4(水) 15:00 ┗Re:データの抽出 yu-ji 02/12/4(水) 15:53 ┗Re:データの抽出 kei 02/12/4(水) 16:00 ┗Re:データの抽出 kei 02/12/4(水) 18:47 ─────────────────────────────────────── ■題名 : 分からないよぉ ■名前 : kei ■日付 : 02/12/3(火) 15:03 -------------------------------------------------------------------------
テーブル「都道府県」とテーブル「市町村」があります。 「都道府県」には・・[ID],[名称] 「市町村」には・・・[名称],[郵便番号][住所]・・・ete フォームを作り、ComboBox1,TextBox1と2,DataGrid1,Command1 のコントロールを設置しました。 流れとしては・・・ 1.ComboBox1から「都道府県」の[ID]を選択する 2.Command1のボタンをクリックすると、 3.テーブル「都道府県」から抽出された Text1に[ID],Text2に[名称]を表示 4.DataGrid1(このコントロールでなくてもいいです。表示してレポートに出力を出来れば、なんでも構いません)に、抽出された[名称]から、テーブル「市町村」の[名称]と同じものだけを一覧表示させます。 初めてなもので全然分かりません(泣) どうすればよいですか? ComboBoxに[ID]を選べるようにすることは出来たのですが あとは、サッパリです。分かる方助けてください。 お願いします。 |
#ただいま、ADOの勉強中 こんにちは。 ▼kei さん: >テーブル「都道府県」とテーブル「市町村」があります。 >「都道府県」には・・[ID],[名称] >「市町村」には・・・[名称],[郵便番号][住所]・・・ete >フォームを作り、ComboBox1,TextBox1と2,DataGrid1,Command1 >のコントロールを設置しました。 >流れとしては・・・ >1.ComboBox1から「都道府県」の[ID]を選択する >2.Command1のボタンをクリックすると、 >3.テーブル「都道府県」から抽出されたText1に[ID],Text2に[名称]を表示 >4.DataGrid1(このコントロールでなくてもいいです。表示してレポートに出力を >出来れば、なんでも構いません)に、抽出された[名称]から、テーブル「市町村」 >の[名称]と同じものだけを一覧表示させます。 まず、わざわざコマンドボタンを押してから表示させたほうがいいんですか? ComboBox1で選択した後に、一連の動きをさせた方がスマートじゃないですか? #下の内容は、一連の動きにさせますね。Command1が必要なのであれば、 #コードの記述場所をCommand1のクリックイベントに置き換えてください。 あと、「市町村」の”名称”って、都道府県の”名称”と同じデータが入っている んですか?東京都、鹿児島県とか? #それなら、「市町村」は”名称”より都道府県の”ID”の方を使った #方がええんではないかなーと思いつつ。 で、DataGridって何?(^^; ・・・・・・と、調べてみました。 VBのコントロールなんですね。うちのPCにはVB入ってないので、DataGridの 使い方がよく分かりません(^^; ので、他の方法を。 フォームのコントロールソースを市町村テーブルから作ったクエリーにして。 そのクエリーの市町村テーブルの名称フィールドの条件に、このフォームの TEXT2を指定してください。 そして【詳細】部分に、フォームに表示させたい市町村のフィールドを 置いてください。(ちなみに、DataGrid風にしたいなら、サブフォームを置いて そこでデータシート表示させると、それっぽいらしいです。サブフォームを使い たいけど、やり方が分からないということであれば、また伝えてください。) 次に、ComboBox1の更新後イベントに、以下のようなコードを書きます。 #ちなみに、ADOで書きますが、DAOの方がいいですか? #あと、IDはテキスト型だと想像して書いてます。 #数値型なら、rds_rd.openの文のMe!ComboBox1の周りの'をはずしてください。 ***************** Dim dbs_ado As ADODB.Connection Dim rds_rd As New ADODB.Recordset If Nz(Me!ComboBox1) <> "" Then Set dbs_ado = CurrentProject.Connection rds_rd.Open "Select * From 都道府県 Where ID ='" & Me!ComboBox1 & "'", dbs_ado, adOpenDynamic, adLockReadOnly Me!Text1= Me!ComboBox1 Me!Text2= rds_rd!名称 rds_rd.Close Set dbs_ado = Nothing Me.Requery Else Me!Text1= Null Me!Text2= Null End If ***************** と、これで、書かれてる内容の処理は実現できると思います。 #コード確認はしてないです。自分が使ってるやつの流用なので、 #多分大丈夫だと思うのですが。 P.S 題名は、どういうことを知りたいのかってことを書かれた方が、 回答者にも閲覧者にも親切だと思いますよー。 分からないということは、分かってるんで(笑)。 別に、強制でもルールでもないですが。(^^ |
すみません。 「都道府県」の「名称」は・・東京とかです。 「市町村」の「名称」も・・・東京とかなのです。 テーブルが2つありますので、テーブル「都道府県」の「ID」は使わないで 「ID」から「名称」を出して、テーブル「市町村」の「名称」と同じ レコードを抽出して、検索結果が何件も出ますので、サブフォームに表示して単票形式風にしてレポートに出力したいのです。 yu-jiさんの言われた通りにしてみました。 Text1に「ID」、Text2「名称」はComboboxから抽出が出来たのですけど それからまた抽出した「名称」からテーブル「市町村」と同じ「名称」の レコードをサブフォームで良いのですが、表示して・・・ レポートに出力するにはどうすればよいのですか? 説明不足かもしれませんが、宜しくお願いします。 |
エラーが起きます。 Me.Requery のところで・・・ エラーメッセージ "Before Update/更新前処理"プロパティまたはこのフィールドの"validationRule/ 入力規則"プロパティに設定したマクロまたは関数のために、このフィールドのデータを保存できません とでます。 原因はなんでしょうか? サブフォームの作成までいきまして、「市町村」の「名称」結果を表示する ところまでは出来たのですけど、上記のところがエラーな為に最新の検索結果が 表示出来ず・・・フォームを閉じて起動しないと検索結果が表示しないようになっています。 この問題が終われば、あとはレポートに出力だけになります。 このエラー問題とサブフォームに出力した「市町村」の「名称」検索結果を レポートに出力の方法を教えてください。お願い致します。 |
▼kei さん: >エラーが起きます。 >Me.Requery >のところで・・・ >"Before Update/更新前処理"プロパティまたはこのフィールドの"validationRule/ >入力規則"プロパティに設定したマクロまたは関数のために、このフィールドの >データを保存できません >とでます。 >原因はなんでしょうか? ありゃ? と、あぁ、更新前処理イベントじゃダメですよ。 更新後処理イベントにして試してみてください。 >この問題が終われば、あとはレポートに出力だけになります。 >このエラー問題とサブフォームに出力した「市町村」の「名称」検索結果を >レポートに出力の方法を教えてください。お願い致します。 レポートのソースコントロールにも同じクエリーを指定して、検索結果を 表示させるフィールドをレポートに作っといて。 上記フォームに、レポート表示ってボタンを付けて開けばどうですか? |
検索など出来ました! レポートに出力する際に、検索したデータが 数件もあるときは、どのように出力すれば よいのですか? 一つしか出力しないです。 |
▼kei さん: >レポートに出力する際に、検索したデータが >数件もあるときは、どのように出力すれば >よいのですか? >一つしか出力しないです。 レポートに1件しか表示されないとのことですが、普通、そのままで対象件数が 全て出てくるはずなのですが(^^; 明らかに複数存在するはずの名称を指定しても、やっぱり1件のみですか? とりあえず、レポートのレコードソース(SQLか、クエリー)を提示して もらえますか?(クエリーの場合はどんなクエリーか) |
=Forms!フォーム1!サブフォーム.Form!名称 となります。 10件あるのですが、一件のみです。 サブフォームの方でレコードを変えると そのレコードが表示せれます。 どうやら、最初のレコードしか出力していない 模様です。 |
苦労の末出来ました。 yu-jiさんありがとうございました。 |