Accessでフォームの検索結果をレポートで表示

このQ&Aのポイント
  • 前回の質問に続いて製品分析表を作成しています。
  • 情報の検索は、F_検索フォームから複数の条件から絞込みを行い、それをボタンから指定したフォームで開いて再編集する操作は上手くいっています。
  • ただこれをレポートに置き換えると「変数」がないとエラーが表示されてしまいます。
回答を見る
  • ベストアンサー

Accessでフォームの検索結果をレポートで表示

いつもお世話になっています。 前回の質問に続いて製品分析表を作成しています。 ベースは出来て、最後は必要な情報を印刷するのみとなりました。 情報の検索は、F_検索フォームから複数の条件から絞込みを行い、 それをボタンから指定したフォームで開いて再編集する操作は上手くいっています。 Private Sub 編集_Update() If Me.編集 Then DoCmd.OpenForm "F_製品分析" Set Forms!F_製品分析.Recordset = Me.Recordset Else DoCmd.Close acForm, "F_検索" End If End Sub ただこれをレポートに置き換えると「変数」がないとエラーが表示されてしまいます。 どうか解決策をご指示ください。 よろしくお願いいたします。

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.4

>同じ製品IDはありますが、複数ではありません。 >DoCmd.OpenReport "R_製品分析", acViewPreview, , "製品ID = " & Me!製品ID この命令文は特定の製品(Me!製品ID)を対象としていますね 当然1件のみの表示になります。 DoCmd.OpenReport "R_製品分析", acViewPreview としたらどうでしょう ところでフォームあるいはレポート内に組み込むことが出来るのはご存知ですか [デザイン]→[データタグ]と入ってレコードソース行の右端の…をクリックします 自分はクエリー単独で作成すると、レーポート及びフォームの数を必要になりますので 専ら組み込みのクエリーにしています。

suzupen
質問者

お礼

何度も丁寧に回答していただきありがとうございます。 やっとやっとすっきりしました。 DoCmd.OpenReport "R_製品分析", acViewPreview では、全件表示されてしまったのですが、 DoCmd.OpenReport "R_製品分析", acViewPreview, , Me.Filter としたところ、あっさりできました。 できなくて落ち込むでいたところだったので、いろいろな方法を提示していただき 本当に励みになりました。 また機会がありましたら、どうぞよろしくお願いいたします。

その他の回答 (3)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

>DoCmd.OpenReport "R_製品分析", acViewPreview, , "製品ID = " & Me!製品ID T_製品内では主キーで製品IDはユニークですよね R_製品分析 の元ののテーブルorクエリーには同じ製品IDが複数入っていますか

suzupen
質問者

補足

今回も早々にお返事ありがとうございます。 同じ製品IDはありますが、複数ではありません。 自分なりにもまだいろいろやっていますが、まだ上手くいきません。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

ANo.1です。 画像が添付されなかったので再送です。 ご迷惑すみません レポートに必要なデータの絞り込みは次のいずれかでします 1.絞り込んだデータテーブルからのレポート 2.レポート内のクエリで絞り込む(添付図 図の抽出条件欄で 同一行ではand条件、別行はor条件 ∴ 図はor条件 この条件欄には 2-1.実数 図 2-2.変数 []に変数名 レポートを実行するとまず変数の入力を促すウィンドウが表示 記入例 日付フィールド条件 >=[開始日] and <=[終了日] 2-3.開いているフォーム上のボックスの値 自分はこれがほとんどです、最初にメニューと付けたフォームを開きここから他のフォームまたは レポートを呼び出します 記入例 >=[forms]![メニュー]![月初] And <=[forms]![メニュー]![月末]

suzupen
質問者

お礼

早々に回答いただきありがとうございます。またわかりやすく図も添付していただきありがとうございます。 クエリのデザイングリッドに条件を入れると変数の入力を促すウィンドウが表示が次々表示される操作を回避するために、フォームから絞り込み検索し、フォーム、レポートに詳細表示したいと考えています。 検索と検索結果を表示するフォームは動作しています。 しかしレポートの下記の記述ではなぜかはじめの一件しかプレビューされません。 何かお気づきの点がありましたらご指示ください。 DoCmd.OpenReport "R_製品分析", acViewPreview, , "製品ID = " & Me!製品ID

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.1

レポートに必要なデータの絞り込みは次のいずれかでします 1.絞り込んだデータテーブルからのレポート 2.レポート内のクエリで絞り込む(添付図 図の抽出条件欄で 同一行ではand条件、別行はor条件 ∴ 図はor条件 この条件欄には 2-1.実数 図 2-2.変数 []に変数名 レポートを実行するとまず変数の入力を促すウィンドウが表示 記入例 日付フィールド条件 >=[開始日] and <=[終了日] 2-3.開いているフォーム上のボックスの値 自分はこれがほとんどです、最初にメニューと付けたフォームを開きここから他のフォームまたは レポートを呼び出します 記入例 >=[forms]![メニュー]![月初] And <=[forms]![メニュー]![月末]

関連するQ&A

  • チェックボックスを利用してフォームを開く

    帳票フォームでデータを出している画面の一番左にチェックボックスを配置しました。 第一にチェックボックスを1つづつ選択できるように下記を記載しました。 Private Sub 選択_Click() If Me!選択 Then CurrentDb.Execute "UPDATE テーブル名 SET 選択 = False;" Me.Refresh End If End Sub チェックボックスにチェックを入れると一連のデータが新しいフォームに移る様に 下記のように記載しましたが、全く受け付けません。 Private Sub 編集_Click() If 選択 = False Then DoCmd.OpenForm "編集F" DoCmd.Close acForm, "メインフォーム名" End If 何が問題なのかわかりません。 ご助言いただきたく、宜しくお願い致します。

  • Access フォームで検索した結果をフォームで表示するときにあいまい検索をしたい

    Access2003を使用して、検索フォームをつくり、検索結果を別フォームへ表示させるプログラムを組みました。 その際に、かな検索をするとかなが完全一致でないと検索されません。 あいまい検索にてかな検索をする方法はありませんでしょうか? ソースは以下の通りです。 Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) stLinkCriteria = "[カナ氏名]=" & "'" & Me![カナ氏名] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

  • クリックイベントなのに、2回クリックしないとフォー

    クリックイベントなのに、2回クリックしないとフォームが閉じないです。 フォームに閉じると言うコマンドボタンがあり、クリックイベントで Private Sub cmd_閉じる_Click() DoCmd.Close acForm, Me.Name End Sub としてるのですが、なぜか1回ボタンを押しただけではフォームが閉じません。 2回目押した時にフォームがとじます。 ダブルクリックでも閉じます。 Private Sub cmd_閉じる_Click() 'DoCmd.Close acForm, Form_Fフォーム.Name End Sub のように、フォーム名を指定すると1回のクリックで閉じます。 しかしMe.Nameだと2回目じゃないと閉じない理由がわかりません。 Fフォームは他フォームから DoCmd.OpenForm Form_Fフォーム.Name, acNormal で開いたから2回クリックしないと閉じないのでしょうか?

  • access フォームについて

    access2003にて登録フォームを作成しています。 このフォーム内に入力したデータを登録ボタンを押し、「登録しますか」のメッセージに 「いいえ」とすれば保存せずにこのフォームを閉じる。 「キャンセル」とすれば保存せずにフォームに戻る。 「はい」とすれば保存して閉じたいです。 しかし、以下の式を実行すると 「いいえ」はバッチリ希望通りに動くのですが、 「キャンセル」をすると保存されてフォームに戻り、 「はい」とすると保存されずにフォームが閉じられてしまいます。 何がまずいのでしょうか・・・。 ----- Private Sub Form_BeforeUpdate(Cancel As Integer) Dim Ret As Integer Ret = MsgBox("登録しますか?" & vbCrLf & " " & vbCrLf & "「いいえ」を選択すると保存せず閉じます", vbYesNoCancel) '「いいえ」を選択したら、保存せずに閉じる If Ret = vbNo Then DoCmd.Close acForm, "振返りデータ", acSaveNo '「キャンセル」を選択したら、保存せずにフォームに戻る Else If Ret = vbCancel Then Else DoCmd.Close acForm, "振返りデータ", acSaveYes End If End If End Sub

  • Access検索フォームで範囲を指定しての検索

    クエリーで計算して出した結果をもとにフォームを使って検索をしたいのですが、うまくできません。 クエリーの計算式は誕生日から年齢を出すものが入っています。 フォームのボタンにVBAで '年齢 If Me!年齢開始.Value <> "" Then Age1 = "(Q_メイン.年齢 >= " & "0" & " and =< " & Me!年齢終了.Value & ")" WhereCond = WhereCond & tempOper & Age1 End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond となっています。 tempOperは、検索方法がORとANDが選べるようになっていて、それの結果が入っています。

  • ACCESSでフォームのUnloadでデータベースを閉じる様にしたら・・・

    ACCESS97でフォームのUnloadを使ってフォームを閉じた後、データベースも閉じるプログラムを作って実行させました。思った通りに動いたのですが、フォームをデザインビューにしようとすると、おそらく上記のプログラムが実行される為、データベースが閉じてしまうので編集できなくなってしまいました。 Pribate Sub cmdClose_Click() DoCmd.Close acForm,Me.Name End Sub -------------------------------- Private Sub Form_Unload(Cancel As Integer) Application.CloseCurrentDatabase End Sub 多分この様なプログラムでした。 解決方法を教えてください。 宜しくお願いします。

  • Accessの検索で「~以外」

    VBAで検索フォームを作成しています。 普通は「○○にあてはまるもの」という検索ですが、 「○○以外のものを検索」というようにしたい場合はどのようにすればいいのでしょうか? 通常の検索はこんな感じです。 If Me!検索値.Value <> "" Then condKey = "(T_マスタ.フィールド like '*" & Me!検索値.Value & "*')" WhereCond = WhereCond & tempOper & condKey End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond access2000です。

  • アクセスのマクロ

    友人がアクセスで作ったマクロです。3行目で止まってしまいます。どこが悪いのでしょうか。(私は全くの素人でわかりません) Private Sub 記載事項入力ボタン_Click() DoCmd.Close acForm, "初期画面", acSaveYes DoCmd.OpenForm "入力フォーム", acNormal ←ここ End Sub

  • 「DoCmd.OpenForm」が実行できない(vbaでフォームを開きたい)

    「フォーム1を開く」vbaで行ないたいのですが エラーになってしまいます。 Sub test1() DoCmd.OpenForm , acNormal, フォーム1 End Sub は「変数が定義されていません」と表示され (「変数の宣言を強制する」にチェックを入れています) Sub test2() DoCmd.OpenForm , acNormal, "フォーム1" End Sub は「引数は省略できません」となります。 Sub test1() DoCmd.OpenForm , フォーム1, acNormal End Sub Sub test2() DoCmd.OpenForm , "フォーム1", acNormal End Sub これにしても同じでした。 「OpenForm」をヘルプで調べてみたところ 「expression 」と「FormName」が「 必ず指定します。」でした。 「expression 」がないからだめなのでしょうか? すいません、助けてください。 よろしくお願いします。

  • チェックボックス選択後、フォームに移して編集したい

    チェックボックスの選択では Private Sub 選択_Click() If Me!選択 Then CurrentDb.Execute "UPDATE 申請履歴Q SET 選択 = False;" Me.Refresh End If End Sub でチェックボックスを1つづつ選択可能にしたのですが、 フォームに移動しようとすると最初の(001)のデータがフォームに 出てきてしまいます。 Private Sub 編集_Click() Dim mode As Variant mode = Me.選択.Value DoCmd.OpenForm FormName:="編集F", DataMode:=acFormEdit うまく選択できていないのは分かるのですが、本を何冊も広げてみても 良い回答に行きつきません。 何卒、ご指導の程宜しくお願い致します。

専門家に質問してみよう