Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

フォーム上につくるマクロボタン

39 views
Skip to first unread message

kenko

unread,
Apr 6, 2010, 9:23:01 PM4/6/10
to
アクセス初心者です。

「カウンセリングカルテ」を
テーブルを基に
・表形式と・単票形式のフォームと
・単票形式のレポートを
作成しました。

レコードが一覧できる表形式のフォーム上に
それぞれの’ID番号’に連動した
「単票形式」のフォームとレポートに飛ばす
マクロボタンをつくりたいのですが、
単表形式の一ページ目に飛ぶ操作ボタンしかまだつくれません。

どなたか、コマンドボタンの設定方法を
教えて頂ければ嬉しいです。
初心レベルですみません。。


海星

unread,
Apr 7, 2010, 1:24:01 PM4/7/10
to
 目標の単票フォームと単票レポートのプロパティ中のフィルタの[ID番号]をマクロボタンを設置した表フォームのカレントID番号に等しいものを選ぶように書き換えてから、開き直します。

 ボタンのマクロコードに次のようなコードを書き込むとできます。

Private Sub コマンド1_Click()
DoCmd.OpenForm "カルテ単票フォーム", , , "[ID番号]=" & Me![ID番号]
DoCmd.OpenReport "カルテ単票レポート", acViewReport, , "[ID番号]=" & Me![ID番号]
End Sub

 なお、それぞれのフォーム名やレポート名、およびフィールド名は、ふさわしいものを当てはめてみて下さい。
--
海星

海星

unread,
Apr 9, 2010, 7:52:01 AM4/9/10
to
 いや、カレントID番号という言葉が不正確で済みませんでした。
言い直せば、表フォームでカレント(指定している)レコードのID番号の値を、目標の単票フォームと単票レポートのフィルタに与えて、オープンし直すということです。
 したがって、表フォームのボタンに埋め込むように助言したコードによって、自動的に表フォームの指定しているID番号(Me![ID番号])がフィルタに与えられるのです。目標の単票フォームが吐き出された後で、デザインモード表示に切り替えてフィルタプロパティを見てみて下さい。指定したこともないフィルタ条件(例 [ID番号]=50 など)が指定されているはずです。これは保存しなければ、後で開いても影響を残しません。
 また参考までに、表フォームのレコード移動時イベントに目標単票フォーム等のフィルタを書き換える代入式を与えれば、表フォームで指定するレコードを変える度に自動的に単票フォーム等も切り替わります。サンプルコードまで確かめる余裕がないので余力があれば勉強してみて下さい。
--
海星

kenko

unread,
Apr 12, 2010, 4:07:01 AM4/12/10
to
海星さま。

ど素人相手にご丁寧なご指示、ありがとうございます!

> 言い直せば、表フォームでカレント(指定している)レコードのID番号の値を、
目標の単票フォームと単票レポートのフィルタに与えて、オープンし直すということです。

できました。わかりました!

>  したがって、表フォームのボタンに埋め込むように助言したコードによって、
自動的に表フォームの指定しているID番号(Me![ID番号])がフィルタに与えられるのです。
目標の単票フォームが吐き出された後で、デザインモード表示に切り替えてフィルタプロパティを見てみて下さい。
指定したこともないフィルタ条件(例 [ID番号]=50 など)が指定されているはずです。
これは保存しなければ、後で開いても影響を残しません。

はい!フィルタプロパティ欄の右のボックス内に見覚えのない、
(((SAMPLE_相談案件一覧.ID=4))) AND ((SAMPLE_相談案件一覧.ID=4)
こんなのが入ってました!ありがとうございます。
=4のところは、それぞれ1~4までIDに準じてその都度入力しました。ただ上書きされただけのような気もしましたが、、
(もしかしたら、このアクションは間違っているかも…!?)

まだ作成したばかりの「相談案件一覧表」で、
サンプルで4件しかレコードをつくっていないのですが(これから追加していく)、
マクロボタンを設置してある表形式の表フォームに戻って、
4件それぞれのIDに準じた単表形式のデザインフォームのフィルタプロパティを
みると、
4件とも…(((SAMPLE_相談案件一覧.ID=4))) AND ((SAMPLE_相談案件一覧.ID=4)
になっています。。

最初にご指示頂いたマクロコードをボタンのマクロコードに書き込んだのですが…
やはり、4件ともIDが一番最初の単票に飛んでしまいます。。

何か、行程の中で、誤りがあるのでしょうね。。

すみません、お手すきの時に
ご指示頂ければ幸いです。

色々とありがとうございます。感謝いたします。

>kenko


海星

unread,
Apr 18, 2010, 6:37:01 AM4/18/10
to
kenkoさん、もう一息ですよ。
とりあえず、正確なテーブル名およびフィールド名、単体フォーム名、単票レポート名を教えて下さい。また、kenkoさんが打ち込んだVBAのプログラムも示して下さい。

 残念ながら、& を AND
と勘違いなさって条件式を当てはめていらっしゃるようなので、データベース処理プログラムに欠かせない固定文字列とフィールド内容とを結合した文字列を作るテクニックを理解する必要があります。 そこまで、使いこなせるようになれば、とてもフレキシブルなデータベース処理が可能になります。
 まずはデータベースの正しい実体を元にマクロを記述してみますので、どうぞ情報を揚げてみて下さい。

--
海星

kenko

unread,
Apr 22, 2010, 1:42:01 AM4/22/10
to
海星さま、本当に有難うございます。感謝いたします。

それでは、以下に素人の作成状況を記させて頂きますので、
お時間のある時にお目通し頂ければ幸いです。

ボタンをクリックしても一番最初のレコードにしか飛ばない原因が
以下の中にあるような気がします。。


ファイル名【相談案件一覧.mdb】

<オブジェクト>  

・テーブル名/SAMPLE_相談案件一覧 (元データ)

・表形式フォーム名/SAMPLE_相談案件一覧1 
※詳細行内に2つのボタン(ボタン名:個人カルテ・PRINT)を設置。
→それぞれ詳細行内と同じ単票フォームと単票レポートに
飛ぶように作成したい。

・ 単票フォーム名/SAMPLE_相談案件一覧  

・単票レポート名/SAMPLE_相談案件一覧  

・マクロ名/単票フォームを開く と 相談記録を印刷する  

※ちなみに‘単票フォームを開く’のデザインは、
アクション/フォームを開く(プルダウンの中から選択)
下段のボックス内
フォーム名/SAMPLE_相談案件一覧
ビュー/フォームビュー
ウインドウモード/標準

<フィールド名>
相談番号(18個ほどある中の基準にしたいフィールド名)。
 ※オートナンバー型で主キーに設定。
(つい先日まで‘ID’というフィールド名のオートナンバー型のものと
数値型で設定した‘相談番号’という2種類のフィールドを
カルテ番号が入るものとして作成していましたが、
まぎらわしく順番が変な事になってしまったので、
‘相談番号’という名のフィールドを主キーに設定したもののみにしました。)

<VBA>
・表形式フォーム名/SAMPLE_相談案件一覧1 の詳細行内に設置した、
まずは一つのボタン(ボタン名:個人カルテ)のマクロコード(デザインモード時〔カレントデータ{▲マーク}は相談番号を1にした状態〕の
画面上段のアクセスメニューバーのコードのアイコンをクリックした時の画面)に

Private Sub コマンド1_Click()
DoCmd.OpenForm "SAMPLE_相談案件一覧", , , "[相談番号]=" & Me![相談番号]
End Sub

を書き込みました。
同じくデザインモード時の
個人カルテボタンを右クリック→イベントのビルドには、

Private Sub コマンド1_Click()
DoCmd.OpenForm "SAMPLE_相談案件一覧", , , "[相談番号]=" & Me![相談番号]
End Sub

Private Sub コマンド45_Click()

End Sub

というのが入っています。(自然に)

同じくデザインモード時の
個人カルテボタンを右クリック→プロパティ→イベントの
フォーカス取得時/単票フォームを開く(イベントプロシージャを選択すると個人カルテボタンをクリックしても何も開かない)
クリック時/イベントプロシージャを選択
それには↓こんなコードが入っています。

Private Sub コマンド1_Click()
DoCmd.OpenForm "SAMPLE_相談案件一覧", , , "[相談番号]=" & Me![相談番号]
End Sub

Private Sub コマンド45_Click()

End Sub

Private Sub コマンド45_Enter()

End Sub


・単票フォーム名/SAMPLE_相談案件一覧の
デザインモード時のフォームプロパティのデータの欄の
フィルタのボックス内に自然に入っていたものは、
((SAMPLE_相談案件一覧.相談番号=7))
※少しさわっていたら、変わっていました。。

長々とすみません。
よろしくおねがい致します。

>Kenko

0 new messages