So-net無料ブログ作成

Access2007 VBA 奇数ページと偶数ページで余白をずらす [Access]

先日書いたtwipの使用例です。
レポート上のすべてのコントロールを奇数ページで右に1cmずらし
偶数ページで既定の位置に戻します。
--------------------
Option Compare Database
Option Explicit

  Dim OddEven As Boolean '奇数、偶数ページフラグ
--------------------
Private Sub Report_Open(Cancel As Integer)
  OddEven = True 'Trueで奇数ページ
EndSub
--------------------
Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
  If OddEven = True Then '奇数ページ
    Dim CTL As Control
    For Each CTL In Me.Controls
      CTL.Left = CTL.Left + 567 '1cm右にずらす(増加分をtwipで指定しています)
    Next CTL
  Else '偶数ページ(左からの位置をtwipで指定してます)
    Me.Label_A.Left = 567  '左から1cm
    Me.Label_B.Left = 2835 '左から5cm
    Me.TxtBox_A.Left = 567
    Me.TxTBox_B.Left = 2835
  End If

  OddEven = OddEven Xor True 'TrueとFalseを反転

End Sub
--------------------

Access/Excel VBA 「twip」 [Access]

twipはAccessやExcelのフォームやレポートで使用する長さの単位です。
1cm = 567twip、1inch = 1440twip です。
上記の1cm、1inchは画面上の長さではなく印刷したときの長さです。

Access2007 VBA 小数の切り捨て Int関数 Fix関数 [Access]

AccessのVBAで小数点以下を切り捨てる方法として
Int関数とFix関数が用意されています。

正の数を扱う場合は両方とも同じ結果を示しますが
負の数を扱う場合は挙動が違うので注意が必要です。

・引数が負の数の場合
Intの場合は引数を超えない最大の整数を返します。
Fixの場合は引数以上で最小の整数を返します。

わかりにくいと思うので実例
Int(2.6) = 2
Fix(2.6) = 2
Int(-2.6) = -3
Fix(-2.6) = -2


Access VBAプログラミング開発工房 入門・基礎編

Access VBAプログラミング開発工房 入門・基礎編

  • 作者: 緒方 典子
  • 出版社/メーカー: ソシム
  • 発売日: 2009/06
  • メディア: 単行本


タグ:access VBA 小数 fix Int

Windows7でAccess 2007 Runtime [Access]

久しぶりのPCネタです。
Windows7にAccess 2007 Runtimeを入れてみました。

インストールは何事もなく成功。
試してみたのはVistaで作成してVista、XPで動作確認したaccdbファイルです。
中身はVBA、ADO、一部Windows APIが使われています。
テーブル、クエリ、フォーム、レポート問題なく動いているように見えます。

Windows7のカーネルはVistaを元にしていますので
ハードでもたたかない限り大丈夫だとは思うんですが
もしかしたら運がよかっただけかもしれません。

Access 2007は正式にWindows7がサポートされているようなので
Runtimeも公式なサポートが欲しいですね。
あんまり需要ないのかな。

Access 2007 Runtimeのダウンロードはこちら
http://www.microsoft.com/downloads/details.aspx?FamilyID=D9AE78D9-9DC6-4B38-9FA6-2C745A175AED&displaylang=ja

Access2007 HyperlinkPart関数 [Access]

以前書いたようにAccessのハイパーリンク型フィールドには4つの情報が格納できます。
便利なこともありますが、ひとつひとつの情報が取り出せないと不便ですね。
セパレータが決まっているので文字列関数でごにょごにょすればできるんですが
HyperlinkPart関数を使えばもっと簡単にできます。

使い方は
HyperlinkPart(ハイパーリンク型フィールドのデータ,引数)
です。

引数
定数説明
acAddress2ハイパーリンク フィールドの address 部分。
acDisplayedValue0ハイパーリンクとして表示される下線付きテキスト。
acDisplayText1ハイパーリンク フィールドの displaytext 部分。
acFullAddress5"#" で区切られた、ハイパーリンク フィールドの address 部分と subaddress 部分。
acScreenTip4ハイパーリンク フィールドのツール ヒント部分。
acSubAddress3ハイパーリンク フィールドの subaddress 部分。

ヘルプからの引用。

クエリで使うには"引数"は省略できず、定数ではなく値で指定する必要があります。

Access2007 ハイパーリンク型フィールド [Access]

ACCESSではハイパーリンク型というURLやUNCパスを格納するためのフィールドを設定できます。

ハイパーリンク型フィールドには1つのフィールドに以下の4つの情報が入れられます。
displaytext …… 表示されるテキスト
address …… URLやUNCパス
subaddress …… ACCESSのオブジェクトやEXCELのシート、セル
screentip …… マウスオーバー時に表示されるヒントテキスト

フィールドには次のような#で区切った形式で納められています。
displaytext#address#subaddress#screentip
上の書式で直接入力することもできますし、
右クリックでハイパーリンク→ハイパーリンクの編集でも入力することができます。

Access2007 書式 小数の表示 [Access]

超久しぶりにAccessネタです。
小数の表示で少し悩んだので書き残しておきます。

桁を揃えて小数がある時には表示して、ないときには表示をしない書式です。
1,234.56
1,234
こんな感じで表示したいときです。

設定は書式を「#,##0.##」にし、小数点以下表示桁数を「自動」にします。
すると
1,234.56
1,234.
となります。
小数がない場合でも小数点はついてしまいます。
また上記の設定だと小数第2位が0の場合
1,234.5
のようになり常に第2位まで表示されるわけではありません。
タグ:access 小数 書式

Accessのレポート [Access]

今回は単なる覚え書きです。

レポート内に[Pages]があると総ページ数を得るため
一度最後までページが作られたあと、印刷用のページが作られる。
そのためフォーマットイベントなどは2回発生する。

各セクションのフォーマットイベントの回数はFormatCountで取得可。

Accessのレポートは制御が複雑ですね。
NextRecord? MoveLayout? PrintSection? なんですか、それ。
フォーマットとか改ページのタイミングとかもうサッパリですよ。
助けてドラえも~ん

Access2007 コンボボックスの背景色 [Access]

Vista + Access2007 でコンボボックスを作るとデフォルトの設定では背景色がフォームの色になってしまいます。
XP + Access2000 + Access2007 Runtime と Vista + Access2007 Runtime ではコンボボックスで指定した背景色になっていたのでVista + Access2007 特有の現象かもしれません。

Vista + Access2007でも指定した背景色を表示するにはコンボボックスがあるフォームの詳細の「代替の背景色」を「色なし」からどれでもいいので他の色を指定します。
これでコンボボックスの背景色が表示されるようになります。

フォームヘッダーやフッターでは設定をしなくても背景色が反映されるみたいです。

Access2007 ADO Like演算子のワイルドカード [Access]

以前「AccessのLike演算子でワイルドカードを使う」でワイルドカード文字を紹介しましたが、今回はADOでSQLを使う時のワイルドカードです。
なぜわざわざ書くかというと面倒なことに違うからなんです。
%   任意の数の任意の文字と一致
_   任意の一文字と一致(アンダースコア)
[]   角カッコ内の任意の一文字と一致
!   角カッコ内の文字以外と一致
-   範囲内の任意の文字と一致(角カッコ内)
「%」や「_」そのものを検索するには角カッコで囲んで指定します。
「*」→「%」、「?」→「_」って感じですね。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。