Access 便利なD関数12個

MSACCESS_eyecatch
SBMJOB

AccessにはD関数という集計したり検索したりと12個の関数があります。便利なので是非使ってみましょう。SQL投げたりするよりも簡潔に記述できるのでいいですよ。注意点はレコード順の不確定さです。

目次

スポンサーリンク

注意点

  • 戻り値が一つしかない!
    (関数の使用目的の関係上上記の様になります。)
  • レコード順は無視!
    (基本はレコードの到着順らしいのですが最適化によってそれは不確実になります)
  • 条件に合わない場合はNullが返される
    (例外処理を準備しておきましょう、Nz関数等)

D関数一覧

D関数機能
Dlookupテーブルの値を取得
Davg平均
Dcountレコード数
Dfirst最初の値
Dlast最後の値
Dmax最大値
Dmin最小値
Dsum合計
DstDev合計
DStDevp標準偏差
Dvar標準偏差
Dvarp分散

記述方法

D~関数(式、定義域、条件)

D関数説明用テーブル

上記の様な簡単な在庫テーブルをD関数の説明に使用します。

使用例 (非統計関数)

DLookup

Private Sub cmdDLookup_Click()
 Dim itemName As String
 itemName = DLookup("商品名", "商品マスター", "カテゴリ='ペン' AND 単価 > 90")
 Me.txtDcount = itemName
End Sub

商品マスターのカテゴリー=”ペン”かつ単価>90の商品名を検索してかえしてくれますが、
注意点1 ペンという文字列の条件はシングルコーテーションで囲むこと
注意点2 返り値が一つなので商品マスターには二つ条件に合うレコードがあるがボールペンと万年筆どちらが表示されるかは不確定どちらかが表示される

基本的に後から追加されたレコードが表示されるんだけど、DBMSそれぞれの仕様によって生のレコード登録アドレスって色々違うからここはなーんの保証もないよ!って思っててよさそう。アドレス空いた部分に差し込んできたりするからね。

DAvg

Private Sub cmdavg_Click()
 Dim avg As Long 
 avg = DAvg("単価", "商品マスター", "カテゴリ='その他'") 
 Me.txtDcount = avg 
End Sub

DCount

Private Sub cmdDCount_Click()
 Dim count As Long
 count = DCount("商品番号", "商品マスター", "カテゴリ='器具'")
 Me.txtDcount = count
End Sub

商品マスターのカテゴリー=”器具”の商品番号カラムのレコード数をカウントする
注意点は条件の文字列はシングルコーテーションで囲むってとこ。

DFirst

Private Sub cmdFirst_Click()
 Dim itemName As String 
 itemName = DFirst("商品名", "商品マスター", "カテゴリ='器具'")
 Me.txtDcount = itemName
End Sub

DLast

Private Sub cmdLast_Click()
 Dim itemName As String
 itemName = DLast("商品名", "商品マスター", "カテゴリ='ペン'")
 Me.txtDcount = itemName 
End Sub

DMax

Private Sub cmdMax_Click()
 Dim itemMax As Long
 itemMax = DMax("個数", "商品マスター", "カテゴリ='紙類'")
 Me.txtDcount = itemMax
End Sub

DMin

Private Sub cmdMin_Click()
 Dim itemMin As Long
 itemMin = DMin("個数", "商品マスター", "カテゴリ='紙類'")
 Me.txtDcount = itemMin 
End Sub

DSum

Private Sub cmdSum_Click()
 Dim itemSum As Long
 itemSum = DSum("個数", "商品マスター", "カテゴリ='紙類'")
 Me.txtDcount = itemSum
End Sub

使用例 (統計関数)

加筆中

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発SE・アプリ開発・デバッガー等々なんでもやる猫の下僕です。現在は凶暴猫にカタカタ動く手を狙われながらキーボードを打っています。かなりゆるい性格なのでコメントやメッセージお気軽に〜お仕事のご依頼もお気軽にぃ〜

スポンサーリンク

コメント

コメントする

CAPTCHA


目次