No.2ベストアンサー
- 回答日時:
ん~VBAってそんなに難しいかな?
とりあえずマクロのやり方書くけど・・・前のカット&ペーストしてみてね!
マクロを選択してツールのマクロの「マクロをVisual Basicに変換」して
必要な部分だけ切り取っただけだし・・・。前回記述したことを忠実に実行
するだけで、カッコいい感じで使えますよ。
説教ではありません。不愉快だったらごめんなさい!
>[Aテーブル]![id]=[Forms]![Aフォーム]![id]
で出来ます。
解説すると連番が必要だって前に説明しましたよね。
1~200件位だっけ?※無い場合はムリ!がんばって付けてね。
厳密には方法が無いわけじゃないけど、説明が長くなるからムリ!
その番号を仮にIDとします。
元になる(200件入っている)テーブルをAテーブルとします。
そのテーブルを元に作ったフォームをAフォームとします。
難しく考えないで「Aフォームに表示されている数字(ID)=Aテーブルにある
レコードを印刷してください!」となる。
もっと簡単にいうと画面に見える物と同じレコードを印刷しなさい!となる。
私も始めて「マクロ」って作りましたが、動きました。
※ちょっと質問
1.フォームって使ってるよね?
2.コンボボタンとかも使ってるよね?
出来なかったら・・・追記してね。
回答ありがとうございます。できました!!
構文は[Aテーブル]![id]=[Forms]![Aフォーム]![id] だったんですね。
私は[Aレポート]![id]=[Forms]![Aフォーム]![id] とやってしまって上手くいかなかったんです。
(マクロを実行すると)全件がいきなり印刷されたり、パラメーターの入力を求められたりと、もーワケわからん状態だったので、スッキリしました。
心の余裕ができたので、VBAの方もやってみます。
No.1
- 回答日時:
マクロはあまり使わないので間違っていたら御免なさい!
「印刷」を行うときには、「レポートを開く」を選択しますよね?
その際にWhere条件ってのが存在すると思うんですけど、そこにSQL文を
書くことになると思います。
※印刷の際カレントレコードのみ出力するにはIDのような「キー」が必要に
なります。まあ重複しない数字ですよね。
↑があると仮定します。単純に「=ID」のような記述ではないのでしょうか?
詳細がわからないとこれ以上はムリですね!
AccessVBAで書くとしたら↓
適当なフォームにボタン(コマンドボタン)を付ける所までは一緒です。
プロパティ→イベント→クリック時にマクロの設定してますよね?
そこを
プロパティ→イベント→クリック時に右側の「...」三点リーダーみたいな
のをクリックして「コードビルダ」を選択して下さい。
Private Sub コマンド0()
End sub
↑って画面が出てくると思うんですけど、そこに↓をカット&ペーストして
下さい。※ちゃんとPri~の後にスペースを空けてEnd~の間に入れてね!
'----------------------更新・印刷作業-----------------------
Dim lngID As Long '変数宣言ってやつです。
Dim kosyin As Integer
'Dimはお約束→Kosyin適当な名前→asもお約束→Integer(数字)型が入ります。
'保存
kosyin = MsgBox("更新しますか?", vbYesNo)
If kosyin = vbNo Then
'Noだったら
Exit Sub
'閉じる
End If
DoCmd.RunCommand acCmdSaveRecord 'レコードの保存
'印刷
lngID = MsgBox("印刷を行いますか?", vbYesNo)
If lngID = vbNo Then
Exit Sub
End If
'上は同じ事してる。
'ここからが印刷ね!
lngID = Me.txt1.Value
'さっき変数宣言した適当な名前の中にIDを入れます。
'IDはさっき開いていたフォームのテキストボックスに表示されていることが条件
'IDのテキストボックスの名前を[txt1]の所に入れてみて!
DoCmd.OpenReport "印刷", acViewPreview, , "lngID=" & lngID
'acViewPreview を選択するとプレビュー acViewNormalは印刷
'ここは印刷を行う所です。「印刷」の所に自分のレポート名を入れてみてね。
'以上で更新作業から印刷までの流れです。
'マクロ使うより軽く出来るし、何よりカッコいいでしょ?(笑)
'質問があれば、追記してください。(暇な時に返事します。)
大変親切なご回答ありがとうございます。VBAの方は私のスキルではついて行けませんので、マクロの式をご教授頂けると助かるのですが……
前提条件はご推察の通りです。マクロの「レポートを開く」をフォーム上のボタンに貼り付けてます。そこでWhere条件にどういう構文を入力すれば良いのかでつまづいてます。今、仮に200件あるデータのうち5番目のデータがフォームとして画面上に表示されていたとします。この5番目のデータだけをレポートとして印刷させたいのですが、上手くいかないのです。1番目から全件のデータのレポートが出力されてしまいます。
時間が出来ましたら、教えてくださいませ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- Visual Basic(VBA) 印刷をVBAでしたい とあるフォルダに1〜5までの名前がついたbookが保存されてます このbook 2 2022/03/28 09:30
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
アクセスのレポート合成(複数...
-
ACCESS フォームをそのまま印刷...
-
ACCESSのレポートで、指定した...
-
ACCESSの複数レポートの印刷に...
-
アクセス オプションボタン
-
アクセスで希望のレポートを1枚...
-
アクセスで特定のレコードのみ...
-
Access2013 レポートを印刷する...
-
【Access】フォームのプロパテ...
-
ACCESSのマクロで特定のレポー...
-
Accessにて
-
MS Access 印刷時に、印刷レコ...
-
Accessのフォームで、画面表示...
-
Access レポート印刷時のイベン...
-
レコードを保存するコード ア...
-
データベースのINT型項目にNULL...
-
「フォームを作成できませんで...
-
アクセスで数値型のフィールド...
-
passwordが入れられません・・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
ACCESS フォームをそのまま印刷...
-
アクセスのレポート合成(複数...
-
Accessのフォームで、画面表示...
-
アクセスで特定のレコードのみ...
-
ACCESSのレポートで、指定した...
-
アクセスのフォーム画面の印刷...
-
MS Access 印刷時に、印刷レコ...
-
ACCESSの複数レポートの印刷に...
-
Access2013 レポートを印刷する...
-
ACCESS チェックしたも...
-
アクセスで希望のレポートを1枚...
-
ACCESSのマクロで特定のレポー...
-
【Access】フォームのプロパテ...
-
ボタン1つで1度に複数枚印刷す...
-
サブフォームの印刷方法を教え...
-
Access 宛名ラベル レポートの...
-
Accessフォームからパラメータ...
-
access2010のレポート印刷につ...
-
アクセス2000レポートで、印刷...
おすすめ情報