AccessVBAでテーブルの範囲抽出をする方法について

このQ&Aのポイント
  • Access VBAのDoCmd.OpenReportを使用して、テーブルの範囲抽出をする方法について質問です。
  • フォーム上で、DoCmd.OpenReportを使用して全てのテーブルの中身をレポート表示していますが、特定のID範囲を表示する方法がわかりません。
  • 現在、cmbCode1に入力されたデータのみが抽出されてしまいますが、範囲抽出ができるように改良したいです。どのようにすればよいでしょうか?
回答を見る
  • ベストアンサー

AccessVBAについての質問

こんにちわ。 Access VBAについて質問します。 フォーム上で、DoCmd.OpenReportを使用して、 テーブルの中身全てをレポート表示しているので すが、IDの何番~何番までを表示するといった処理を するにはどのようにすればよいでしょうか? 下記は、作成途中のPGです。 Private Sub cmdPrev_Click() Dim jyoken1 As String jyoken1 = "コード=" & cmbCode1 DoCmd.OpenReport "マスタ一覧表", acViewPreview, , jyoken1 End Sub これでは、cmbcode1へ入力されたデータのみの抽出 になってしまうので、範囲抽出ができるように改良 してください。お願いします!!

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

答えをすべて書いてはためにならないので考え方を。 1.「範囲」を設定することが目的なので、範囲Fromと範囲Toを入力するTextBoxをフォームに貼る。 2.条件(jyoken1)に範囲From~範囲Toを渡す。 jyoken1 = "コード<=" & txt範囲From & " and コード>=" & txt範囲To かな。 レポートの元になるクエリを組み立てていると思うので、そこに範囲From~範囲Toを渡して試験しておくと良いでしょう。

mttk1238
質問者

お礼

お返事ありがとうございます!! 無事解決しました!!

関連するQ&A

  • ACCESSフォームフィルタで抽出したデータのみをレポートで表示する方法

    フォームフィルターでデータを抽出した後,抽出されたデータのみをレポート上に表示させるコマンドボタンをフォーム上に作っています。 下記のコードを作成しましたが,これだと抽出前の全部のデータが表示されてしまいます。 どうしたら良いでしょうか。 Private Sub ラベルプレビュー_Click() Dim stDocName As String DoCmd.Echo False, stDocName = "rpt宛名ラベル" DoCmd.OpenReport stDocName, acViewDesign DoCmd.SelectObject acReport, stDocName, False ' Reports(stDocName).RecordSource = Me.RecordSource DoCmd.OpenReport stDocName, acViewPreview End Sub

  • AccessVBAにおけるOpenArgsの使用について

    AccessVBAを最近はじめた初心者です。 ~~~フォーム1~~~ Private Sub コマンド0_Click() DoCmd.OpenForm "フォーム2", , , , , , "コマンド0" End Sub Private Sub コマンド1_Click() DoCmd.OpenForm "フォーム2", , , , , , "コマンド1" End Sub ~~~フォーム2~~~ Private Sub Form_Load() Dim strFormName As String strFormName = Forms.フォーム1.OpenArgs DoCmd.PrintOut strFormName End Sub 上のプログラムのようにフォーム1でクリックしたボタンによってフォーム2を読み込んだ時の動作を変えるプログラムを作成しようとしています。 しかし、実際に起動させると、『strFormName = Forms.フォーム1.OpenArgs』の辺りで 「Null の使い方が不正です。」 というエラーメッセージが表示されます。 Accessのヘルプを参照に組んでみたのですが、どの箇所が間違っているのでしょうか? 回答、よろしくお願いします。

  • 住所があっても印刷除外したい

    コンバンハ。MS-Access2000・Windows98SEです。 レコードの抽出をして、その中で[顧客マスタT]テーブルの [宛名印刷除外]フィールド(Yes/No型)にチェックが入った顧客はプレビューしない方法を探しています。 ちなみに抽出レコードのみをプレビューするVBAは ~~~~~~~~~~~~~~~~~~~~~~~ Private Sub cmb抽出データを横書印刷プレビュー_Click() If Me.FilterOn = True Then DoCmd.OpenReport "R葉書宛名横書印刷",_ acViewPreview, , Me.Filter End If End Sub ~~~~~~~~~~~~~~~~~~~~~~~ としています。 何かよい方法はあるのでしょうか?よろしくお願い致します。

  • アクセス 開いているレポート名を取得する。

    アクセス初心者です。 VBAにて フォーム1でレポート、レコードを選択後に レポートを開くと同時に印刷フォームも開くように組んでます。 その印刷フォームで印刷をすると、印刷フォーム自体が印刷されてしまうので ”レポート名”を認識させてから印刷しています。 その時の”レポート名”を開いたときに自動的に変数として印刷フォームに引き継ぎたいのですが やり方が分かりません。 意図としては、印刷フォームを汎用的に使いたいためです。 印刷フォームの呼び出しコードは下記にて Private Sub コマンド18_Click() Dim report_name As String Dim report_value As String If Not IsNull(コンボ50.Value) = True Then report_name = コンボ48.Value  ’レポート名です report_value = コンボ50.Value DoCmd.OpenReport report_name, acViewPreview, , "[現場名]='" & report_value & "'" DoCmd.MoveSize Width:=10000, Height:=13000 Reports(report_name).ZoomControl = 75 Else MsgBox "項目を選択してください。" End End If DoCmd.OpenForm "印刷_フォーム", acNormal End Sub Private Sub コマンド53_Click() Dim new_date As String Dim form_name As String If Not IsNull(コンボ48.Value) = True Then form_name = コンボ48.Value DoCmd.OpenForm form_name, acNormal, , , acFormAdd DoCmd.MoveSize Width:=12000, Height:=13000 Else MsgBox "[取引先名]を入力してください。" End If End Sub 下記は印刷フォームにて、印刷設定をする場合のコードです Private Sub コマンド0_Click() Dim report_name As String report_name = "レポート名" On Error Resume Next DoCmd.SelectObject acReport, report_name, True DoCmd.RunCommand acCmdPrint End Sub

  • アクセスについてです(レポート)

    フォームからレポートを開く時に、 VBAでコントロールにコントロールソースを指定したいのですが どうやらエラーになってしまうようです。 フォームからではなく手動でレポートを開く場合は エラーにはなりません。 レポートのレコードソースは、T_testを指定していて、 その上にあるコントロールは非連結で指定したコントロールソースをvbaで入れたいです。 なので、レポートのLoadイベントで Private Sub Report_Load() Me.テキスト0.ControlSource = "8月" End Sub として、手動でレポートを開く分には問題ないのですが このコードのまま、フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewPreview End Sub とすると、Me.テキスト0.ControlSource = "8月"で、 実行時エラー2191 印刷プレビュー時または印刷を開始した後は コントロールソースプロパティを設定できません。 のエラーが発生します。 フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewDesign End Sub とすると、レポートのLoadイベントが発生しませんでした。 ご回答よろしくお願いします。

  • Accessでの抽出で完全一致。

    あいまい抽出で下記のような記述を、 完全一致に変更する場合どのように書き換えればいいでしょうか? 以前覚えたのですが、本を手放してしまい忘れてしまいました。 ご指導お願いします。 Private Sub 技術コードで抽出_Click() Dim ipt As String ipt = [技術コード] DoCmd.ApplyFilter , "[担当者コード] Like '*" & ipt & "*'" End Sub

  • VBAのlistboxについて

    今日は なんでVBAにリストボックスのクリックエベントは動かないのですか。 Private Sub 科目マスタリスト_Click() Dim aa As String aa = 科目マスタリスト.List(1) End Sub debugのとき、eventは反応できない。

  • Accessを使ってレポートを印刷する際に。。。

    No.2353071の続きなのですが、 Private Sub コマンド0_Click()   DoCmd.OpenReport "レポート1", acViewDesign   Reports("レポート1").Controls("ラベル0").Caption = "AAA"   DoCmd.Close acReport, "レポート1", acSaveYes End Sub このようにすると「DoCmd.OpenReport "レポート1", acViewDesign」を実行する際に、デザインビューで開く画面が表示されるのですが、この画面を消すことはできないのでしょうか。

  • ACCESSのVBAでプリンタを指定したい

    ACCESSでレポートを2つ作成し、フォームのボタンでレポートの印刷を行っています。 押されたボタンで、印刷するレポートが違うのですが、その時に、プリンタを指定したいのです。 Private Sub レポート印刷_Click() Dim stDocName As String stDocName = "レポート印刷" DoCmd.OpenReport stDocName, acNormal End Sub 上記のような感じで作っているのですが、それぞれのレポートで印刷するプリンタが違います。 どのようにしたらいいでしょうか?

  • 【AccessVBA】ダイアログで複数選択しCSVインポートする

    お世話になります 現在1ファイルごとでインポートさせていますが 複数選択でインポートさせたいのですがわかる方ご教授お願いします。 ■現在のVBA '実行ボタンのイベント Private Sub 参照_Click() Dim strFileName As String 'ファイルを開くダイアログを表示 strFileName = GetFile("") If Len(strFileName) > 0 Then Me.テキスト1 = strFileName Else MsgBox "ファイルは選択されていません! End If End Sub Private Sub 実行_Click() TextConv Me.テキスト1, "定義名", "テーブル名" End Sub 'テキストコンバートルーチン Sub TextConv(strFle As String, strInp As String, strTbl As String) If MsgBox("インポートしますか?", 4, "実行確認") = vbYes Then DoCmd.TransferText acImportDelim, strInp, strTbl, strFle, False MsgBox "テーブルデータを更新しました" End If End Sub 上記の内容を変更だけでよいのか まったく書き直しかどうかもわかっていません わかる方ご教授よろしくお願いします。

専門家に質問してみよう