Ms-access-built-in-functions

提供:Dev Guides
移動先:案内検索

MS Access-組み込み関数

この章では、組み込み関数を使用します。 Accessには100に近い組み込み関数があり、それらのすべてをカバーすることはほとんど不可能です。 この章では、基本的な構造、構文について説明し、いくつかの人気のある関数の使用と落とし穴を取り上げて、他の関数のいくつかを自分で探求できるようにします。

関数

関数は、タスクまたは計算を実行し、結果を返すVBAプロシージャです。 通常、関数はクエリで使用できますが、関数を使用できる場所は他にもあります。

  • テーブルプロパティで関数を使用できます。たとえば、日付/時刻フィールドのデフォルト値を指定する場合、日付または Now 関数を使用してシステムから現在の日付/時刻情報を呼び出すことができます。その値を自動的に入力します。
  • 計算フィールドを作成するときに式で関数を使用したり、フォームまたはレポートコントロール内で関数を使用したりすることもできます。 マクロ引数でも関数を使用できます。
  • 関数は非常に単純で、他の情報を呼び出す必要がないか、単にテーブルまたはクエリから1つのフィールドを参照するだけです。
  • 一方、複数の引数、フィールド参照、さらには別の関数内にネストされた他の関数でさえ、非常に複雑になる可能性があります。

組み込み関数の使用例をいくつか見てみましょう。

日付と時刻の関数

日付と時刻の機能を理解しましょう-

  • Date()関数は、現在のシステム日付を返すように設計されています。 この関数は、関数の引数や追加情報を必要としません。 あなたがしなければならないのは、関数の名前とそれらの開き括弧と閉じ括弧を書くことだけです。
  • よく似た2つの組み込み関数Time()とNow()があります。
  • Time()関数は現在のシステム時刻のみを返し、Now()関数は現在のシステム日付と時刻の両方を返します。
  • 追跡、保存、またはクエリするデータに応じて、そのタスクを支援する3つの組み込みの使いやすい関数があります。

データベースを開き、クエリデザインを使用して新しいクエリを作成し、tblProjectsとtblTask​​sを追加しましょう。

テーブルの追加

tblProjectsからProjectNameを追加し、tblTask​​sからTaskTitle、StartDateおよびDueDateを追加して、クエリを実行します。

再接続中

これで、すべてのプロジェクトのさまざまなタスクをすべて表示できます。 今日の日付のように進行中のプロジェクトタスクを表示する場合は、* Date()*関数を使用して基準を指定し、今日の日付以降に開始するプロジェクトを確認する必要があります。

StartDateの下に基準を指定してみましょう。

日付関数

基準は、記号より大きい*演算子で始まり、*記号と等しい、*日付関数*が続きます。

このクエリを実行すると、次のスクリーンショットのように、すべてのタスクが今日の日付または将来のいずれかに発生します。

今日の日付

これは、Date()関数をクエリ条件として使用する方法の例です。

  • ここで、今週から開始する日付に関して、このクエリがより柔軟である必要があるとしましょう。
  • 今週から始まったいくつかの異なるタスクがありますが、それらは基準のためにこの現在のリストには表示されていません。 今日以上の開始日を確認しています。

今週開始したタスク、まだ完了していないタスク、または今日完了すべきタスクを表示する場合は、デザインビューに戻りましょう。

ここでは、これらの基準にいくつかの追加情報を追加します。 実際、今日の日付から7日を引いた値以上にする必要があります。

より大きい日付

マイナス7と入力してクエリを実行すると、今週開始されたタスクも確認できます。

開始済みタスク

DateDiff()関数

DateDiff()関数は、別の非常に一般的な日付/時刻関数です。 DateDiff関数は、指定された2つの日付間の時間間隔の数を指定するVariant(long)を返します。 つまり、2つの日付の差を計算し、関数がその差を計算する間隔を選択します。

著者の年齢を計算したいとします。 そのためには、まず新しいクエリを作成し、authorsテーブルを追加してから、FirstName、LastName、およびBirthDayフィールドを追加する必要があります。

Datediff

生年月日または誕生日と今日の日付との差を計算することにより、人々の年齢を計算できます。

新しいフィールドでDateDiff関数を使用してみましょう。

Add Datediff

Ageの後にコロンを付けて、DateDiff関数を記述します。

  • DateDiff関数の最初の関数引数は間隔なので、「yyyy」と入力します。
  • 次の関数引数は、計算する最初の日付であり、この場合は誕生日フィールドになります。
  • 3番目の関数の引数は、今日の日付が何であってもです。

ここで、クエリを実行すると、各著者の年齢を示す新しいフィールドが表示されます。

各著者の年齢

Format()関数

Format()関数は、フォーマット式に含まれる指示に従ってフォーマットされた式を含む文字列を返します。 以下は、Format()function.ssで使用できるユーザー定義形式のリストです。

Setting Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week
h Hour
n Minute
s Second

クエリに戻って、Format()関数を使用して同じフィールドにフィールドを追加します。

フォーマット関数

フォーマット関数を入力します。 最初の関数引数は式であり、ほとんど何でもかまいません。 最初に誕生日フィールドを作成し、次はフォーマットを作成します。 この場合、月、月、日、日が必要です。 「mmdd」を引用符で囲んでから、クエリを実行します。

引数式

現在、誕生日フィールドから日付を取得しています。4は月、17は日です。

次のスクリーンショットのように、次のフィールドに「mmdd」ではなく「mmm」と「mmmm」を追加しましょう。

月を追加

クエリを実行すると、次のスクリーンショットのように結果が表示されます。

月名

次のフィールドでは、その誕生日の月の名前の最初の3文字が返され、最後のフィールドでは完全な月名が取得されます。

誕生日から年が続く月を表示するには、次のスクリーンショットに示すように「yyyy」を追加します。

もう一度クエリを実行してみましょう。

月年

月、コンマ、年の順に表示されます。

IIf()関数

IIf()関数は「Immediate If」の略語であり、この関数は式をtrueまたはfalseとして評価し、それぞれの値を返します。 最大3つの関数引数があり、それらはすべて必須です。

  • 最初の引数は、評価する任意の式です。
  • 次の引数は真の部分を表します。これは、値または最初の式が真の場合に返される式です。
  • 最後の引数は、式が偽の場合に返されるものです。

簡単な例を見てみましょう。 クエリデザインを使用して新しいクエリを作成し、tblAuthorsテーブルを追加してから、次のフィールドを追加します。

Immediate If

FirstName、MiddleInitial、LastNameの3つのフィールドがあり、次にこの連結フィールドがあり、3つのフィールドすべてをまとめていることがわかります。 クエリを実行して、このクエリの結果を確認しましょう。

連結フィールド

これで、クエリの結果を確認できますが、一部のレコードにはミドルネームのイニシャルがないことにも気付くでしょう。 たとえば、Joyce Dyerレコードにはミドルネームのイニシャルはありませんが、FullNameフィールドには、実際に存在する必要のない期間が表示されます。 そのため、デザインビューに戻ります。 ここでは、IIf関数を使用して別の方法で名前を連結します。

異なる方法

別のフィールドに名前を書き込んでFullName1を呼び出し、IIf関数を入力します。

  • Immediate If関数の最初の関数引数が式になります。 式では、中央の初期フィールドが空白かヌルかがわかります。
  • 次の引数は本当の部分です。 したがって、ミドルネームのイニシャルがnullの場合、FirstNameとLastNameを表示する必要があります。
  • ここで、誤った部分について、MiddleInitialがnullでない場合、FirstName、MiddleInitial、およびLastNameを表示する必要があります。

クエリを実行すると、次のスクリーンショットのように結果が表示されます。

結果の表示