エクセルで設定したのをアクセスだと・・・

このQ&Aのポイント
  • Windows2000/ACCESS2000を使用してます。保有車両のフォームを作ってます。計算2に、もしも現在の年が計算1と同じか大きい場合、もしも車検到来区分が2の場合は現在の年。もしも車検区分が4の場合現在の年、違う場合は計算1に現在の年から計算1に1を足して数値を2で割り基準値で抽出した数値の倍数のうち数値で最も近い値を2倍した数値、違う場合は計算1 をエクセルの関数では次のように組んでるのですが、アクセスで組む場合だとどうしたらいいでしょうか?
  • エクセルで設定した計算式をアクセスで使用する方法について教えてください。現在、Windows2000/ACCESS2000を使用してます。保有車両のフォームを作成しているのですが、次のような計算式を各フィールドに設定し、自動計算したいです。もしも現在の年が計算1と同じか大きい場合、車検到来区分が2の場合は現在の年、車検区分が4の場合も現在の年を表示させたいです。それ以外の場合は計算1に現在の年から計算1に1を足した値を2で割り、基準値で抽出した数値の倍数のうち、最も近い値を2倍した数値を表示させたいです。エクセルの関数では次のように組んでいますが、アクセスで組む場合はどうしたらいいでしょうか?
  • エクセルで設定した計算式をアクセスで使用する方法について教えてください。現在、Windows2000/ACCESS2000で保有車両のフォームを作成しているのですが、次の計算式を各フィールドに設定し、自動計算させたいです。もしも現在の年が計算1と同じか大きい場合、車検到来区分が2の場合は現在の年、車検区分が4の場合も現在の年を表示させたいです。それ以外の場合は計算1に現在の年から計算1に1を足した値を2で割り、基準値で抽出した数値の倍数のうち、最も近い値を2倍した数値を表示させたいです。エクセルの関数では次のように組んでいますが、アクセスで組む場合はどのようにすればいいでしょうか?
回答を見る
  • ベストアンサー

エクセルで設定したのをアクセスだと・・・

Windows2000/ACCESS2000を使用してます。 いつもお世話になってます。 保有車両のフォームを作ってます。 で、次のよう計算式をそれぞれのフィールドで設定して、自動計算されるようにしたいのですが・・・ 計算2に、もしも現在の年が計算1と同じか大きい場合、もしも車検到来区分が2の場合は現在の年。もしも車検区分が4の場合現在の年、違う場合は計算1に現在の年から計算1に1を足して数値を2で割り基準値で抽出した数値の倍数のうち数値で最も近い値を2倍した数値、違う場合は計算1 をエクセルの関数では次のように組んでるのですが、アクセスで組む場合だとどうしたらいいでしょうか? If(year(current"date")>=計算1,If(車検到来区分=2,year(Current"date"), 計算1+floor((year(current"date")-計算1+1)/2)*2)),計算1) お手数かけますが宜しくお願いします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

現在の年はFormat$(Date(),"ee")で取得できます。(この関数で14が帰ってきます。) IfはAccessではIIfになり質問にある式に代入させれば良いと思うのですが >計算1に現在の年から計算1に1を足して数値を2で割り基準値で抽出した数値 >の倍数のうち数値・・・ の意味がイマイチわからないのですが・・・。 IIf(Format$(Date(),"ee")>=計算1,IIf(車検到来区分=2,Format$(Date(),"ee"), 計算1+(floor(Format$(Date(),"ee")-計算1+1)/2)*2)),計算1) となりますがfloorは「数値を挟む基準値の倍数のうち、0 に近い方の値を返す」関数ですがAccessでは何をつかえば良いのか・・・?

renault
質問者

お礼

O_cyanさん、いつもお世話になってます。 違う方法で、無事設定できました。 アドバイス有難うございました。

renault
質問者

補足

おはようございます。 説明が分かりにくくてすいませんでした。 実際にしたいことを書きます。 フォームには、初年度登録年、初年度登録月、登録年・登録月・登録日・検査基準年・検査基準月・検査基準日があります。 車検到来区分のフィールドに、乗用車は1、商用車は2、特装2年検査は3、新基準商用車は4を入力するようになってます。 乗用車は、初回車検は3年で2回目以降は2年。 商用車は、初回も2回目以降も1年。特装2年は、初回も2回目以降も2年。 新基準は初回は2年で2回以降は1年。 新車の登録時は、初年度年・初年度月と登録年・登録月・登録日に入力して、中古車とか検査がずれてる場合は、初年度年・月と登録年・月・日が変わってくるので、検査基準年・月・日に入力して新車も中古車もそれぞれ車検到来区分によって車検到来年月日が自動計算で自動更新されるようにしたいのですが・・・。 (新車の場合、初年度年・初年度月は登録年・月と同じです。) 計算式がうまく出来ないので、アドバイスを頂けたらと思います。 宜しくお願いします。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

現在の年はどこかのテーブルもしくはフィールド上に持っているのでしょうか?

renault
質問者

補足

こんにちは、O_cyanさん。 いつもアドバイス有難うございます。 両方ともないです・・・ 前回のエクセルは違う人がアクセスではなく違うデーターベースソフトで設定したので・・・現在の年のテーブル&フィールドがない状態では組めないですよね?

関連するQ&A

  • 解決してなかった・・・・

    Windows2000/ACCESS2000を使用してます。 いつもお世話になってます。 車検到来年を出す方法で、登録年が空の場合と基準年が空の場合の計算方法は教えて頂いたおかげで上手く出来たのですが、年が変わるごとに自動計算されるようにしたいのですが、そのような設定は出来るのでしょうか? ちなみに、車検到来年は次のように設定しました。 車検到来年=車検到来年+2000 If IsNull(登録年) Then   If 車検到来区分 = 1 Then     車検到来年 = 基準年 + 3   End If ElseIf IsNull(基準年) Then   If 車検到来区分 = 1 Then     車検到来年 = 登録年 + 3   End If End If 実際は区分が4区分あってここでは省略して記述してますが、毎年この計算式の内容を自動更新で計算されるようにしたいのですが、どのようにしたら良いのかアドバイスお願いします。 よろしくお願いします。

  • 如何したら良いのか分かりません。

    Access2000/Windows2000を使用してます。 車検到来年を自動計算させようとしてます。 現在よりも小さい場合は、車検到来区分によって現在の日付以上になるように計算させるようにしたいのですが・・・ 以下の組み方ではうまく出来ません。如何したら良いのかアドバイス宜しくお願い致します。 Private Sub コマンド233_Click() Dim MyDB As DAO.Database Dim MyRS As DAO.Recordset Dim strDate As String Dim strSyakenDate As String '現在の年月日を退避しておく strDate = Format(Date, "yyyymmdd") Set MyDB = CurrentDb() Set MyRS = MyDB.OpenRecordset("基保有") Do Until strSyakenDate > strDate Select Case MyRS.Fields("車検到来区分") Case 1 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 2 Case 2 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 1 Case 3 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 2 Case 4 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 1 End Select '車検日を再算出 strSyakenDate = Format(MyRS.Fields("車検到来年"), "0000") & Format(MyRS.Fields("車月"), "00") & Format(MyRS.Fields("検日"), "00") Loop MyRS.Update MyRS.MoveNext MyRS.Close End Sub

  • accessクエリの抽出条件

    access初心者です。 フィールド:「年」 数値型 フィールド:「月」 数値型 があり クエリの抽出条件に 年:2001 月:11 でクエリが実行できます。 これを当月分をクエリ実行できるように 年:year(date()) 月:month(date()) のように入れて当月のレコードを抽出したいのですが 「式に未定義関数dateがあります」というメッセージが出ます。どこが間違っているか助言をいただけると助かります。

  • Excelの数式について教えてください

    Excelの数式について教えてください カテ違いでしたらすみません Excelの数式にすいて質問です 福祉サービスの利用にかかわる仕事をしています 受給者証の支給開始日や、サービスの利用期間の管理をするため、表にまとめています セルB…サービス種別(機能訓練、生活訓練) セルG…利用開始日 セルM…経過月数 サービス利用期間 機能訓練…18ヶ月まで 生活訓練…24ヶ月まで 注)利用開始が4月1日からの場合、4月を1ヶ月目とする。利用開始が4月2日の場合、翌月5月を1ヶ月目とする これらを踏まえて、回答をいただきたいです Excelにて経過月数を表示させ、現在何ヶ月経過しているか・また、機能訓練18ヶ月、生活訓練24ヶ月を超えた場合、「終了」と表示させるため、セルMにこの様な数式を入力しています =IF(OR(IF(B2="機能訓練",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M"))>18),IF(B2="生活訓練",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M"))>24)),"終了",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M"))) しかしこの状態では、セルGに利用開始日が入っていない時、セルMには「1328」と表示されてしまいます そのため、 =IF(G2="","",IF(OR(IF(B2="機能訓練",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M"))>18),IF(B2="生活訓練",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M"))>24)),"終了",IF(DAY(G2)=1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")+1,DATEDIF(DATE(YEAR(G2),MONTH(G2),1),DATE(YEAR(NOW()),MONTH(NOW()),1),"M")))) というような式を入れましたが、エラーになります 出来たら新規で入力する列には、値が出ないようにしたいので、空欄にしておきたいのです どこが間違っているのでしょうか? アドバイスいただけるとうれしいです。宜しくお願いします

  • ACCESSのテーブル設定について

    私はアクセス2000を使っていますが、わからない事があるのでお願いします。 ACCESSのテーブルに、[誕生日]をフィールドに設定して、[年齢]を後から追加しました。クエリの演算フィールドで、例えば、 年齢:Year(date())-Year([誕生日]) とすると、年齢が求まるように、 テーブルにおいても、年齢フィールドにそのような計算の結果としての年齢を求めたいのです。 クエリでは演算フィールドに、クエリビルダーから計算式を使って年齢をもとめられるのですが、テーブルで年齢を求める場合のやり方がわかりません。 お分かりの方教えて下さい。 宜しくお願いします。

  • フラグから区分値に置換するにはどうすればいいですか

    フラグから区分値に置換するにはどうすればいいですか。 以下はその例文です。 フラグでは、基本的に立てたり、倒したりするもので、 yesかnoの2通りしか分岐をさせることができません。 つまり、else ifが使えないということです。 一方区分値は複数の分岐をさせることができます。 なので、これにはelse ifが使えます。 それはいかに記述があります。 https://www.gixo.jp/blog/382/ そこで、以下の部分を区分値に置換するにはどのようにすればいいですか。 フラグから区分値に置換した事例を紹介してくれているサイトは皆無です。 以下は、そのコードです。 function dayJudge(year, month, date, day) { //alert(year +" "+ month +" "+ date +" "+ day) var weekdayFlag = true; if(day >= 1 && day <= 5) weekdayFlag = true; else weekdayFlag = false; if(year == 2013 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2013 && month == 10 && date == 14) weekdayFlag = false; return weekdayFlag; }

  • ACCESS 日付データ

    ACCESSの初心者です。よろしくお願いします。 フォーム上のテキストボックスに今日の日付から年月を取り出して6桁の数値を作りたいと思います。 例えば本日ですと「200602」の数値です。 「年」というテキストボックスにYear(Date())を、「月」というテキストボックスにMonth(Date())を取り出しました。[年] & [月]とすると「20062」となってしまいます。 「200602」とするにはどうすれば良いでしょうか。

  • エクセルの日付の設定

    現在、発行日(H1)の翌日末支払の場合、以下のような関数を入れています。 =DATE(YEAR(H1),MONTH(H1)+2,0) 末日が土日である場合、前日になるように設定はできるのでしょうか?

  • エクセルの計算

    みなさん教えてください。 今エクセルで、数値計算をしていて悩んでいます。 <悩み> 下記のような数値(約1500個)がA列にあり、下記条件に合致すれば 指定する計算式で計算し、B列に答えを出したいと思っていますが、う まくいきません。 IF関数を使いましたが0以上の場合しか指定できませんでした。 =IF(A:A>=0,(F:F*0.01)) みなさん教えてください。 よろしくお願いします。 <条件>計算式 A列にある数値が0以上の場合 : A列の数値*0.01 A列にある数値が0以下の場合 : A列の数値*0.5 <数値> A列 ------- 1 1 2 -1 -2 -5 1 5 3 ・ ・ ・

  • ACCESSで画像を参照する設定がうまくゆきません

    あまり詳しくはないですが、ACCESSを使って仕事をしています。 ひとつのデータにひとつの画像をつけたデータを扱うのですが、画像を直接テーブルに貼り付けているので非常に容量を食ってしまいます。(JPG形式です) そこでネットで色々調べて、現在データを保管しているテーブルに、パス用のテキストボックスを追加し、既存のフォームにイメージを配置して表示させる方法を試していますが、うまくゆかず、「プロシージャの呼び出しまたは引数が不正です」というエラーが出てしまいます。 プロシージャというもの自体をはじめて知ったので、ネットで引っ張ってきたコードをそのまま貼り付けて使っている状態です(テキストボックスの名前やイメージの名前は変えています) 現状は以下の通りです。 ファイル形式:ACCESS2000 使用ソフト :ACCESS2003 テキストボックス名:パス イメージ名     :参照 フォームの「レコード移動時」の「イベントプロシージャ」に貼り付けたコード Option Compare Database Private Sub パス_BeforeUpdate(Cancel As Integer) End Sub Private Sub Form_Current() '指定された画像に入れ替える処理 '2006/04/15 pPoy On Error GoTo Err_Form_Current Dim myPath As String myPath = CurrentProject.Path If Not IsNull(Me!パス) Then Me!参照.Picture = myPath & "\" & Me!パス Else '新規レコードに移動した際はデザイン時の画像を表示 Me!参照.Picture = myPath & "花.JPG" End If Exit_Form_Current: Exit Sub Err_Form_Current: MsgBox Err.Description Resume Exit_Form_Current End Sub ちなみに、この「イベントプロシージャ」も突然消えてしまったりします。 非常に困っていますので、よろしくお願いいたしますm()m