So-net無料ブログ作成
検索選択

ACCESS2010 複数ウィンドウの表示のされかた [ACCESS]

 ACCESS2003まではACCESSのウィンドウの中に、小さなウィンドウが複数重なるように開いていました。
 ACCESS2007からだと思いますが、複数のウィンドウ(ドキュメント)を開いたとき、タブブラウザのように、画面には1つのドキュメントの内容しか表示されず、上部のタブで切り替えるようになりました。

 従来のような、複数のウィンドウを重ねて表示させるには、オプションの設定を変更します。

続きを読む


リストボックス 複数選択リストボックスを2つ使った選択画面 [リストボックス]

 複数リストボックスを使って、必要な項目を複数選択してもらう画面の応用です。
 選択する項目の数が多い場合、表示される項目がグループ単位で絞り込ができて、必要な項目だけが表示されるようになっていると、作業がしやすいと思います。

 例えば、こんなふうに都道府県を選択する画面を考えてみます。

続きを読む


クエリ 日別(年月日)のデータを、年月ごとで集計する。 [クエリ]

 日付関連のクエリ例です。例えば、こういったデータを、年月の単位で集計した結果を求めるとします。

 日付が2011/01/01なら、年月は2011/01となります。
 データの日付をこのように変換した上で、金額を合計集計します。

続きを読む


システム設計の話 その6・売上実績表の詳細 [システム設計の話]

 さて、最後の帳票「売上実績表」の内容確認です。
 今回のシチュエーションでは、「1ヶ月間の売上実績をまとめたもの」としか表現していませんので、具体的にどんなものか決めたいと思います。

 営業さんの実績表って言ったら、やっぱり売上金額の多い人からのランキング的なものを作ってるんじゃないだろうか、と言う発想で、まず1つはそう言う帳票にしてみます。
 営業担当者別に、1ヶ月間の売上金額を集計して、金額が多い順に一覧を出力します。
 名前が、「売上実績表」だと、ちょっとわかりにくいので、「営業成績表」とします。

 「営業成績表」は、売上実績を見る、というよりは、ああ今月は誰々が頑張ったんだね、という、営業努力を激励するようなタイプの帳票です。これだと売上状況を把握するのには不向きです。
 もう一つ、売上実績の分析作業向けの帳票を考えてみます。

 「営業成績表」は、担当者別でしたが、分析メインなので、顧客別の金額集計で、数字を出してみようと思います。
 また、先月と、前年同月との比較も見られる帳票にします。

 ざっくりですが、現時点ではこんな感じにしておきます。詳細は、帳票設計でするとします。

 蛇足ですが、実績表の別の見方として、例えば商品別の集計とか、過去半年分の実績を並べるとか、売上が連続で減少している顧客を出力するとか、まあきりがありません。
 ですので、今回はシンプルにこの2帳票にしておきます。


雑記 TwipをPixcelに変換する [その他]

 Twipに関する記事を書こうと思って調べていたら、VBの.net以降はTwipが扱えないらしいです。
 ACCESS2010はまだTwipでの指定です。

 TwipをPixcelに変換する方法が、マイクロソフトのサイトにありました。
http://support.microsoft.com/kb/210590/ja
 自動翻訳のようで、日本語が変ですが、プログラムはちゃんと動きました。

 ほぼ転載になりますが、説明等追加してますので、参考までに。

Option Compare Database
Option Explicit

'ディスプレイデバイスコンテキストのハンドルを取得する
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

'デバイスコンテキストを解放する
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

'デバイス固有の情報を取得する
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

Const WU_LOGPIXELSX = 88 '論理インチ当たりの画面の水平方向のピクセル
Const WU_LOGPIXELSY = 90 '論理インチ当たりの画面の垂直方向のピクセル数

Public Function ConvertTwipsToPixels(lngTwips As Long, lngDirection As Long) As Long
'TwipからPixcelへの変換
'引数
'lngTwips・変換するTwips値
'lngDirection・0:横方向、0以外:縦方向

    'Handle to device
    Dim lngDC As Long
    Dim lngPixelsPerInch As Long

    '1インチ=1440Twips
    Const nTwipsPerInch = 1440

    lngDC = GetDC(0)
    If (lngDirection = 0) Then
    '水平方向
        lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX)
    Else
    '垂直方向
        lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY)
    End If
    lngDC = ReleaseDC(0, lngDC)

    'ピクセル数を計算
    ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch

End Function


Public Sub subTEST()
    Dim lngOldTwips As Long

    lngOldTwips = 2377
    Debug.Print ConvertTwipsToPixels(lngOldTwips, 0)

End Sub

 と、試してはみたものの、これを活用する機会があるかどうかは分かりません。