• ベストアンサー

Accessの関数の「$」について

Accessの関数で、dateとdate$、FormatとFormat$、ErrorとError$等「$」記号がついたものとついていないものがありますが、この違いがわかりません。 おわかりになる方、教えてくださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
noname#4564
noname#4564
回答No.3

> 日付型の変数Aに今日の日付を設定したい場合は、 > A = Date() > A = Date$() > どっちを使えばいいのでしょうか? 日付型の変数に代入する場合、当然、Date()関数を使用すべきです。 ?TypeName(Date$()) → String ですので、 文字列 → 日付型 の型変換が余分に行われる分、性能が下がります。

uckey7
質問者

お礼

文字列型の変数に設定したい時のみDate$を使用すればいいのですね。 おかげさまでよく理解できました。ありがとうございました。

その他の回答 (2)

noname#4564
noname#4564
回答No.2

$は文字列型を表す型指定子で、$が付く関数名だと、必ず文字列が返ります。 $がない場合は、Variant型が返ります。 文字列を扱う場合は原則として$付きの関数が推奨されています。

uckey7
質問者

補足

回答ありがとうございます。 さらに質問してよいですか? >文字列を扱う場合は原則として$付きの関数が推奨… と書かれていますが 日付型の変数Aに今日の日付を設定したい場合は、 A = Date() A = Date$() どっちを使えばいいのでしょうか?

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

$がついたものは、文字列型で値を返すものです。 つけないと バリアント型で値を返します。 使用方法は、両方とも同じです。

uckey7
質問者

お礼

なるほど・・・バリアント型か文字列型の違いですか~! Accessのヘルプで、関数のリファレンスを見ても、全く同じ説明がでてきたので、違いがわからなかったのです。 結構長い間悩んでいました。ありがとうございました。

関連するQ&A

  • Access97の更新クエリーのformat$関数をAccess2000タイプに直したいのですが

    Access97の更新クエリーのformat$関数で format$([印刷]![区分],"@@") 上記の構文で数値を二桁の文字に直している更新しているのですが Access2000では関数を認識してくれません、 format関数でも同じでした Access2000で同じ事が出来る方法を教えてください

  • AccessのFormat関数について

    Access2002を利用しています。 ある問題集を解いているのですが、売上データのT-売上マスターの売上日のフィールドをyyyy年mm月という書式で表示するという問題なのですが、解答をみると、 Format$(フィールド名,書式)となっているんです。 Format(フィールド名,書式)というのは分かるのですが、 Format関数の後に$マークがついている意味合いが分かりません。 Format関数の引数の前に$マークがついているのはなぜでしょうか?

  • Accessの関数

    Access97で作成したデータベースをAccess2000で開いたら フォームで数箇所、正しく表示できないところがありました。 フォームのデザインを見てみたら、Formatという関数を 使用しているところが正しく表示できないようです。 Format関数はAccess2000では、使用できないのでしょうか? あるいは、Formatにかわる別の関数ができたのでしょうか?

  • Accessの年齢関数について教えてください

    初心者です。 Accessのクエリーで、生年月日から年齢を算出したいです。 Year(Date())-Year([生年月日])-Abs(Format(DateAdd('d',-((Year([生年月日]) Mod 4=0 And Year([生年月日]) Mod 100<>0) Or (Year([生年月日]) Mod 100=0)),[生年月日]),'mmdd')>Format(Date(),'mmdd')) これをいれると、生年月日が空白のとき#Errorになります。 空白のときエラーが表示されないようにしたいです。 IIf(IsNull([生年月日])),"",Nz(Year(Date())-Year([生年月日])-Abs(Format(DateAdd('d',-((Year([生年月日]) Mod 4=0 And Year([生年月日]) Mod 100<>0) Or (Year([生年月日]) Mod 100=0)),[生年月日]),'mmdd')>Format(Date(),'mmdd'))) これでは、おかしいとAccessがいいます。 お願いします。

  • AccessのFormat関数について

    AccessのFormat関数に関しまして質問致します。 和暦を西暦へ更新クエリを使用してコンバートしているのですが入力されているデータの中に「平成15年2月31日」等の不可思議なデータが入力されており変換に困っています。 Format関数でエラーになった場合、Nullを返すように出来ませんでしょうか? <現在> =Format([年月日],"yyyy/mm/dd") 更新時にエラーが表示されNullが入力される事は重々承知しておりますが、何か不安ですので^^;

  • ACCESSでDate関数のエラーのついて

    私はACCESSでDate関数を使って現在の日付を表示したいと思いますがエラーメッセージで#Name?が出てきます。なぜでしょうか教えてください

  • AccessのクエリーでDate関数の使用について

    こんにちは、今非常に困っています。 Access2000でクエリー式にDate関数を使用していますが、実行時に「クエリー式にDate関数は使用できません」というエラーが発生します。 デバッグにてイミディエイトウィンドウで確認したところ日付は取れているようなのですが。 どういった事象でこのエラーがでるのかわかりません。 どなたか解決策を教えてください。 Date関数を使える環境と使えない環境などがあるのでしたらそれも教えてください。 OS Windows2000 AP Access2000(Office2000ではありません)

  • Accessの関数

    Accessツールを改造後、midやdateなどの関数が動かなくなってしまいました。 一体なにが原因なのでしょうか?どなたか教えてください。

  • Accessでの関数

    Access2002を利用しています。 Accessのクエリの中で、関数を利用し、例○○(条件)ならばAと表示し、そうでなければBとしなさいみたいな条件判断するような問題がありました。 私はIIF関数で求めたのですが、答えを見るとSwitch関数というのが使われていました。Switch関数というのがわからずに、Accessのヘルプで探そうとしたんですがん、表示してくれません。 この2つの関数 Switch関数とIIF関数の違いがわかりません。 出来れば、わかりやすく噛み砕いた表現で教えていただけませんでしょうか?

  • アクセスのFormat関数について。

    アクセスのFormat関数で下記の入力では「演算子がないときにオペランドを指定しています」と出ます。どこが間違っているのか教えてください。すみません。 集計月:Format([依頼日]"yyyy/mm")

専門家に質問してみよう