2017年5月 8日 (月曜日)

DMax関数:最大のデータを抽出

書式: DMax(フィールド名, 対象のオブジェクト名, 条件)

例: テーブル「注文履歴」から、金額が30万円以上のレコードで、最大の「受注伝票番号」を表示する

DMax("受注伝票番号", "注文履歴", "金額 >=300000")

注意:条件に合うデータがない場合の戻り値はNullとなります。

2017年5月 7日 (日曜日)

アクティブなフォーム名を取得する

文字列型変数 strFrmName に現在のアクティブなフォーム名を代入します。

Dim strFrmName As String
strFrmName = Screen.ActiveForm.Name

2017年5月 6日 (土曜日)

OutPutTo:レポートをPDF形式で出力する

OutPutToメソッドを使うと、レポートをPDF形式で出力できます。

例:レポート「rpt_活動報告書」を「活動報告書.pdf」という名前のPDFファイルで出力する。
(保存先はCドライブ)

Docmd.OutPutTo acOutPutReport, "rpt_活動報告書", acFormatPDF, "C:\活動報告書.pdf", True

最後を「True」とすると実行後、出力されたPDFファイルを自動的に開き、表示することができます。

※PDF形式の出力はAccess2007 SP2以降で動作可能です。

2017年5月 5日 (金曜日)

文字列化したプロシージャを呼び出す その2

CallByName関数を使って動いていたのですが、ちょこっといじったところ、動かなくなりました。
書き方の問題だけでCallByName関数じたいは使えるはずです。

そこで色々調べなおしたら、次の書き方でOKでした。

Dim strProName As String

strProName = "プロシージャ名"
Application.Run strProName

※「セミナー季節風/スリービットコム」
こちらのページで勉強しました。ありがとうございました。
http://3bitcom.sblo.jp/article/59696062.html

2017年5月 4日 (木曜日)

Parent:サブフォームからメインフォームのコントロールを参照する

「Me.Parent」+コントロール名

これでOK d(^_^)

メインフォームとサブフォームの関係はややこしいです。
なかなか覚えられません。

2017年5月 3日 (水曜日)

フォーム名を変数に代入して使用する

フォーム名を変数に代入して使用するには・・・

(1)変数(データ型:String)にフォーム名を代入
(2)(1)を変数(データ型:Form)に代入

例:

Dim strFrmName As String
Dim frmName As Form

strFrmName = "フォーム名"
Set frmName = Forms(strFrmName).Form

Forms![strFrmName]ではNGでした。

※こちらのページが詳しいです。ありがとうございました。
「Accessでお仕事」
http://makoto-watanabe.main.jp/access/acobjForm.htm

2017年5月 2日 (火曜日)

CallByName関数:文字列化したプロシージャを呼び出す

CallByName関数は、変数に代入したプロシージャを実行する場合に使うと便利です。

書式: CallByName (実行する場所), (プロシージャ名), (※実行する処理を表す定数)

※実行する処理を表す定数

VbMethod (1) プロシージャの実行はコレ
VbGet (2) 値をゲット=取得する
VbLet(4) 値をレット=設定する
VbSet(8) 値をセット=代入する

コマンド_0_Click から 呼び出すプロシージャを実行します。

20170502_01

実行すると、ボタンをクリックすると、「呼び出すプロシージャ」が呼び出されて、メッセージボックスが表示されます。

20170502_02

これを使えば、プロシージャを配列変数に代入し、繰り返し処理をさせることができます。
意外に便利。

2017年5月 1日 (月曜日)

MsgBoxで「はい」「いいえ」を表示するときは「+」を使うこと

intRes = MsgBox("今日の夕飯はラーメンでよい?", vbYesNo & vbQuestion, "どちらか選んでね")

とすると、「はい」「いいえ」が表示されません。

20170501_01

「vbOkOnly」と同じになります。

「vbYesNo vbQuestion」にすると「はい」「いいえ」が表示されます。

20170501_02