- ベストアンサー
[Access2003]メイン・サブフォームの演算テキストボックス:『DateSerial関数』
メイン・サブフォームの演算テキストボックス:『DateSerial関数』にについてパソコン教室で勉強しています。(家庭の事情によりAccess2003のソフトは、家にはないです。)『DateSerial関数』についてよく分からないです。 参考書(下記の『DateSerial関数』の日付は、著作権の関係もあり、日付を変えてあります。 質問1:2005年10月末日の(DateSerial(2005,10+1,1)-1→2005/10/31の数式が理解できませんでした。 (DateSerial(2005,10+1,1)-1の2005,10は、2005年10月だと理解できました。 「(+1,1)-1」は、31日かなと思いましたが、どうして「(+1,1)-1」が31日を表しているのですか? 質問2: 2005年10月の翌月の月末の(DateSerial(2005,10+2,1)-1→2005/10/31の数式が理解できませんでした。 (DateSerial(2005,10+2,1)-1の2005は、2005年だと理解できました。「(10+2,1)-1」は、12月31日かなと理解できましたが、どうして「(10+2,1)-1」が12月31日を表しているのですか? *Access初心者なので簡潔に教えてくださったら助かります。
- sakura3465
- お礼率91% (255/280)
- その他(データベース)
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問1 翌月の初日の前日って何ですか?当月の末日ですよね。 10月の翌月は何月ですか?11月ですね。じゃあ(2005,11,1)となって いたら2005年11月1日だと分かりますか?これは分かりますね。 11月を10+1月と書くと、もう分かりませんか? そうです。(2005,11,1)と(2005,10 + 1,1)は同じ意味なんです。 DateSerial(2005,10+1,1)=DateSerial(2005,11,1)=2005年11月初日 ここから1を引く=前日を求める=2005年10月末日を求める です。 だから、2005年10月末日 = 2005年11月初日 - 1 という式になります。 質問2 もう分かるでしょう。翌月の末日=翌々月の初日-1です。 翌々月というのは当月+2ですよね。 だから、(DateSerial(2005,10+2,1)-1→2005/10/31 は間違い。 (DateSerial(2005,10+2,1)-1→2005/11/30 です。 何でこういうことをするかと言うと、2月の末日を得る方法が、コレ なんです。「西暦年を4で割って余りがでたら・・・」なんてやるより、 3月1日の前日を求める方が遥かに簡単ですからね。
その他の回答 (3)
- gatt_mk
- ベストアンサー率29% (356/1220)
DateSerial関数は単にyyyy(年)、mm(月)、dd(日)の数字を使って日付データを作成する関数です。 DateSerial(yyyy,mm,dd)とするとyyyy/mm/ddの日付データができます。 http://msdn.microsoft.com/ja-jp/library/cc410236.aspx DateSerial(2005,12,1)は2005/12/1です。 DateSerial(2005,12,1)-1は2005/11/30です。
お礼
アドバイス有難うございます。大変参考になりました。
- n-jun
- ベストアンサー率33% (959/2873)
#1です。 ちょっと見落とし。 >(DateSerial(2005,10+2,1)-1→2005/10/31 2005/12/01の1日前ですから、2005/11/30ではないの?
お礼
アドバイス有難うございます。大変参考になりました。
補足
入力ミスを指摘してくださって有難うございます。2番目の質問についてですが、正しくは、(DateSerial(2005,10+2,1)-1→2005/11/30です。
- n-jun
- ベストアンサー率33% (959/2873)
>DateSerial(2005,10+1,1) 2005年・(10+1)月・1日⇒2005年11月1日 ですから、その1日前(-1)です。 質問2も同じ考えです。
関連するQ&A
- [Access2003]メイン・サブフォームの演算テキストボックス:『識別子』
メイン・サブフォームの演算テキストボックス:『識別子』についてよく分からないです。 「!」(識別子)の意味は、『ユーザー定義のオブジェクトやフィールドに付ける』とパソコン教室で教えてもらいました。 『オブジェクト』の言葉の意味が分からなかったので、マイクロソフトのホームページで調べてみました。『オブジェクト』の意味は多範囲でよく分からなかったです。 「!」(識別子)で使用する『オブジェクト』の言葉の意味を教えてもらえないでしょうか?Access初心者なので簡潔に教えてくださったら助かります。
- ベストアンサー
- その他(データベース)
- ACCESS クエリ 「先々月末日」 を求める関数
ACCESSのクエリ上にて 作業をする日が属する月の「先々月末日」を返す関数を教えて頂きたく存じます。 先々月初は 「 DateSerial(Year(Date()),Month(Date())-2,1)」 で求める事が出来ましたが、先々月末日がうまくいきません。 何卒よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- AccessのDateSerial関数
テーブルの「登録日」というフィールドに記入してある日付から、3年後の日付を表示させるためにフォームでDateSerial関数を使っています。 しかしこの関数を使ってみると、テーブルの「3年後日付」フィールドにはDateSerial関数で計算させた日付が入ってきません。 また、同じ事をクエリでもDateSerial関数を使って行ってみましたが、やはりテーブルには反映されませんでした。 どうすればテーブルに3年後の日付が反映されるようになりますか? かなりAccessの初心者なので変な事を聞いてしまっているかもしれませんが、どうぞアドバイスをよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- アクセスの関数で
DATEADD関数(日付に数字を足したり、引いたりなどして何日か前、何日か後、何ヶ月か前などの日付を求める関数)などを使って、つねに月末をかえす関数はありますか? 他の関数でも結構です。 よろしくお願い致します。
- ベストアンサー
- Windows XP
- ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
日付/品番/出庫数のフィールドで構成された「明細テーブル」があります。 「日付」フィールドからなるメインフォーム、「品番/出庫数」からなるサブフォームをつくり、メインフォームのサブフォームコントロールのレコードソースを「サブフォーム」に指定しました。 日付を入れるとその日の出庫明細がサブフォーム上に表示されるのですが、このレコード件数をメインフォーム上のコントロールで表示したいのです。 サブフォームのヘッダにテキストボックスコントロールを作り「=Count([品番])」としてやれば、「サブフォーム上での」件数表示は出来るのですが、同じ式をメインフォーム上のコントロールに記述すると、「全レコードの件数」が表示されてしまいます(当たり前ですが) そこで、「=Count([埋め込み].Form![品番])」とやってみました。ここで「埋め込み」とはメインフォーム上のサブフォームコントロールの名前です。 結果は「#Error」となってしまいます。Count関数だけでなくSum関数などでも同様の結果となります。 はっきりいって「サブフォームのヘッダに表示させればいいじゃないか」というところなのですが、「式ビルダ」ではサブフォームのコントロール名も容易に参照できるようになっており、なにか方法があるのではないか、初歩的なところでつまずいていないか、と思案している次第です。 なにかアドバイスいただけたら幸いです。
- ベストアンサー
- オフィス系ソフト
- Access97で月末と照合して入力できますか?
使用ソフトはAccess97です。 例えばアクセスのテーブルに フィールド1に今月の末日を入力します。(年と月を入れれば自動で末日が記されれば、なお有り難いです) フィールド2にある日の日付を入力します。 フィールド3にある日の日付が月末になってなければ数値1を、月末を越えて来月になっていれば0が自動入力される フィールド3のこのような関数はありますか?エクセルではIF関数を用いればできることなのですが、アクセスではわからないのです。 どなたかお詳しい方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access 関数日付について
「年:Year([日付])]」のような関数を使えばクエリで年の数だけ取り出せます。 しかし、和暦表示したいので年:Format([日付],"gggee")のような表記にしました。 しかし、去年などを出す場合-1年しなければなりません。 その方法がわからないのですが、知識を深めるためAccess関数に関する説明をしているサイトがあればお願いします。
- ベストアンサー
- オフィス系ソフト
- Access 連結サブフォームの特定レコードに移動
Access 連結サブフォームの特定レコードに移動 お世話になっております。 開発環境 OS:Windows10 Access:2013 親フォームに2つの連結サブフォームがあります。 2つの連結サブフォームには、TODAYより年月を抽出し、その月のカレンダーをデータとして表示しております。 スペースの関係で、毎月1日から14日位までが見えていて後半部分は縦にスクロールしないと見えません。 そこで、親フォームを開いた時、その日の日付まで縦にスクロールすることか可能でしょうか。 例えば、今日が2/20であれば、サブフォーム内の一番上に2/20が表示されるようにスクロールするといった感じです。(2/19以前は見えない) もしくは、一番上でなくても開いた時に見える位置まで移動することは可能でしょうか。 何卒宜しくお願い申し上げます。
- ベストアンサー
- その他(データベース)
- Access サブフォームからデータ抽出
・メインフォーム:[F営業管理] -フィールド:[見積提出日]、[見積金額] ・サブフォーム:[F見積サブ] -フィールド:[提出日]、[金額] ※見積は何度か提出されるので、ここには数件レコードがあります。 ここで、サブフォームの[提出日]が最新日付の[提出日]及び[金額]を、 メインフォームの[見積提出日]・[見積金額]に表示(値入力)させたい のですが、どうやって抽出したら良いかわかりません。 関数・構文などが思いつきません。 どうぞよろしくお願いします。
- 締切済み
- その他(ビジネス・キャリア)
お礼
アドバイス有難うございます。大変参考になりました。