コンボボックスの印刷ボタンについて

このQ&Aのポイント
  • フォームで見ている画面だけを印刷するためのコンボボックスを作成しましたが、すべてのデータが印刷されてしまいます。どこを変更すれば1枚だけ印刷ができるのでしょうか?
  • コンボボックスウィザードを使用して印刷ボタンを作成しましたが、印刷されるデータが全てで困っています。どの部分を修正すれば1枚だけ印刷できるようになるでしょうか?
  • フォームの特定の画面のみを印刷するためにコンボボックスを作成しましたが、すべてのデータが印刷されてしまいます。どの箇所を変更すれば1枚だけ印刷できるようになるでしょうか?
回答を見る
  • ベストアンサー

コンボボックス 印刷ボタンについて

アクセス勉強中です。 フォームで見ている画面だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにて印刷ボタンを作成したのですが、 すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャは下記です。 どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

フォームで見ている画面だけを印刷するには画面をコピーして Excel等に貼り付け、余分な部分をトリムして印刷します。 画面をコピーするにはキーボード最上段右側にある[PRTSC] DoCmd.SelectObject acForm, stDocName, True この文はには印刷対象とする条件がありませんね 従ってフォームの対象になっているレコード全てですね この命令文には抽出条件を定義することができないようです。 フォームを開くときにレコードを絞り込みます。 コーディングに拘らないなら 次の2つの方法があります。 1.フォームを開いて印刷 [ファイル]→[印刷]→[印刷] この方法も対象を絞り込む設定はできません ※ ボックス単位で[画面のみ、印刷のみ、画面/印刷]の設定が セルのプロパティの書式タグの下の方に表示対象で設定します。 (既定値は印刷/画面) 2、マクロで [コンポボックスをフォームに配置]→[フォームの操作]→[カレントフォームの印刷] [次へ]→[ボタン表示の選択]→[ボタンの名称入力]→[完了] 蛇足 Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) Me.年_____齢 = Int(DateDiff("Y", [生年月日] - 1, Date)) Private Sub XXXX()とEnd Subの間が空白のコードは削除しておきましょう。

tsuka228
質問者

お礼

お礼が遅くなりました。ありがとうございました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

ウィザードが作成するコードは ボタンが存在するフォームと 印刷されるフォームが異なる場合のものです。 同じフォームの場合に カレントレコードを印刷する場合は 次のような簡単なものとなります。 実質的には、1行のみですね。 Private Sub cmd印刷_Click() On Error GoTo Err_cmd印刷_Click DoCmd.PrintOut acSelection Exit_cmd印刷_Click: Exit Sub Err_cmd印刷_Click: MsgBox Err.Description Resume Exit_cmd印刷_Click End Sub

tsuka228
質問者

お礼

お礼が遅くなりました。ありがとうございました。

tsuka228
質問者

補足

上記を消して 下記に書き換えましたが、つぎはボタンは押せるのですが 印刷されません。 どうしてでしょうか

関連するQ&A

  • アクセス コンボボックスについて

    コンボボックス 印刷ボタンについて アクセス勉強中です。 フォームで作成した画面 だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにてフォーム印刷ボタンを作成したのですが、 1000人くらいの、すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャという部分は下記です。 またプロジャー以外に何かしなければならないのでしょうか?? どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

  • access 検索用フォームにてコンボボックスで何も選ばなかったときに全件表示させる方法

    access2003において、 検索用のフォームを作成し、コンボボックスにて検索内容を選択し、 決定ボタンにて他のフォーム画面へ検索結果を表示するようにしています。 この際、検索用フォームには複数のコンボボックスを用いてますが、 そのうちいくつかのコンボボックスを選択せずに決定ボタンを押した際に選択していないコンボボックスの内容については全件表示させたいと考えております。 例)コンボA=会社 コンボB=支店 コンボC=社員 コンボAのみ特定の会社を選択し、コンボB、コンボCは未選択だった場合、コンボAで選択した会社の支店・社員を全件表示したいのです。 お知恵をお貸し下さい。 以下VBAのソースです Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F_検索" stLinkCriteria = "[会社CD]=" & Me![会社] & "And [支店CD]=" & Me![支店] & "And [社員CD]=" & Me![社員] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

  • Access VBAでのフィルタ処理

    アクセス2003を使用しています。 今VBAを使用して、フォームのテキストボックスに記入された文字列を検索条件に、 クエリからデータ抽出したいのですが、 うまくいきません。 解決したい事は、 「abc*」といったように、前方が一致している文字列データを すべて抽出するといった処理です。 今は下記のようなプログラムを組んでいます。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "クエリ1" DoCmd.OpenQuery stDocName, acNormal, acEdit If IsNull(テキストボックス) Then Else stLinkCriteria = "[クエリデータ]=" & "'" & Me![テキストボックス] & "'" End If DoCmd.ApplyFilter stDocName, stLinkCriteria Exit_コマンド1_Click: Exit Sub Err_コマンド1_Click: MsgBox Err.Description Resume Exit_コマンド1_Click End Sub これだと完全に一致しなければ抽出してくれません。 どの様に変更すればよいでしょうか? よろしくお願いします。

  • テキストボックスかコンボボックスを条件としたい

    フォーム上のコントロールを取得する時に、 「テキストボックスかコンボボックスなら」としたいのですが、VBAコードがわかりません。 ************************************************************ Sub Sample() Dim myCtrl As Control Dim myForm As String myForm = "フォーム1" For Each myCtrl In Forms(myForm).Controls If myCtrlのタイプがテキストボックス Or コンボボックス Then Debug.Print myCtrl.Name End If Next End Sub ************************************************************ に修正していただけますか? ControlType プロパティを使うと思うのですが、使い方がわかりません。 ご回答よろしくお願いします。

  • コンボボックスとスピンボタン

    いつも勉強させていただいています。 ユーザーフォームにコンボボックスとスピンボタンを組み 日付の取得をしました。欲しいのは年と月だけです。(2001/11) どうしても日付を外すことが出来ません。宜しくお願いします。 Private Sub spnDate_SpinDown() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = DateAdd("m", -1, dtDate) End Sub Private Sub spnDate_SpinUp() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = DateAdd("m", 1, dtDate) End Sub Private Sub UserForm_Initialize() UserForm1.txtDate.Value = Date End Sub

  • ACCESSを用いたデータベースでのコンボボックスの連動について

    おせわになっております。 VBでデータベースを作っているのですが、 コンボボックスでの検索での絞込みがうまくいきません。 例えば、コンボボックス1で選ばれたファールドにより 絞込みが行われ、コンボボックス2で表示するレコードは コンボボックス1で選択されたレコードに該当するものしか表示しないようにするというとです。 どこかおかしい個所はありますでしょうか?? よろしくお願い致します。 Private Sub dbc1_Click(Area As Integer) '1つめのコンボボックス Dim criteria As String ' 検索条件 If dbc1.Text = "" Then Exit Sub End If criteria = "県名 = '" & dbc1.SelText & "'" rs.MoveFirst rs.Find criteria, , adSearchForward dbc2.SetFocus `dbc2にフォーカスを移す End Sub Private Sub dbc2_Click(Area As Integer) ’2つ目のコンボボックス Dim mySQL As String mySQL = "SELECT 市名 FROM 地名" _ & "where 県名 = '" & dbc1.SelText & "'" ’コンボボックス1で選択されたものを抽出条件とする。 Set rs = New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set Dbc2.DataSource = rs End Sub

  • アクセスのレポートの印刷について。

    アクセスで報告書を作成し、印刷する時に、ウィザードを使って作ったコマンドボタン「報告書の印刷」を使用したいのですが、全てのレコードが印刷されます。以下の記述でどこを変更すればよいか教えてください。 また、基本的な質問なのですが、レポートのプレビュー上にコマンドボタンを配置することは可能でしょうか?(やはり、無理でしょうか?) よろしくお願いいたします。 Private Sub 報告書の印刷_Click() On Error GoTo Err_報告書の印刷_Click Dim stDocName As String stDocName = ChrW(22577) & ChrW(21578) & ChrW(26360) DoCmd.OpenReport stDocName, acNormal Exit_報告書の印刷_Click: Exit Sub Err_報告書の印刷_Click: MsgBox Err.Description Resume Exit_報告書の印刷_Click End Sub

  • accessで、フォームの検索をしたいのです。

    今ACCESSで、データ管理をしているのですが、どうしてもうまくいかなくて、困っています。 毎日の出来事を記述するテーブル用のフォームを作って、記述していて、そのデータがたまってきています。 他のフォームに、検索用のテキストボックスとコマンドボックスを作って検索したいのです。 コントロールウィザードを使うと、完全一致のデータしかでてこないのですが、部分一致のレコードを表示させるにはどうすればいいのですか? 教えていただけるとうれしいです。 コントロールウィザードを使うと以下のようになります。多分少しどこかを変えるといいのではないかと思うのです。どうか、よろしくお願いします。 Private Sub コマンド144_Click() On Error GoTo Err_コマンド144_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(21839) & ChrW(12356) & ChrW(21512) & ChrW(12431) & ChrW(12379) & ChrW(12513) & ChrW(12514) stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド144_Click: Exit Sub Err_コマンド144_Click: MsgBox Err.Description Resume Exit_コマンド144_Click End Sub もしかして。。と思い、以下の部分、 stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" を次のように変えてみたけれど、やっぱりうまくいきませんでした。 stLinkCriteria = "[内容]=" & "'" & "*" & Me![テキスト105] & "*" & "'" よろしくお願いします。

  • アクセスのイベント記述について。

    あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定したのですが、患者IDのみ一致したフォームが開くようにはなったのですが、これプラス、依頼日も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • Access2002:コマンドボタンがうまく設定できません

    使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。

専門家に質問してみよう