DLookUp関数を使ったACCESSの令和表示

このQ&Aのポイント
  • ACCESS2007で和暦を令和表示させる方法について、DLookUp関数を使用して和暦を取得する手順を紹介します。
  • テーブル内のフィールドの設定やフォーム上のテキストボックスの設定によって、日付を入力すると自動で和暦表示されるようになります。
  • 和暦対応マスタを作成し、DLookUp関数を使用して指定した日付に対応する和暦を取得することで、ACCESS2007で令和表示を実現します。
回答を見る
  • ベストアンサー

DLookUp関数を使ったACCESSの令和表示

[やりたい事と背景] ACCESS2007で和暦を令和表示させたい。 現在、新元号の対処方法「ACCESS2007の為」としてテキストボックスのプロパティー(書式)に「”令和○年”」と記載し、データタブのレコードソースに「=Date()」としてしています。年に一回とは言え自動で対処できないものかと考えて居りました。昨日ですがWEBにて対処方法が記載されたサイト「ページ」を見つけました。早速、試してみましたところ「指定した式に不適切な日付の値が含まれています。」とのアラートが出て設定完了に至りませんでした。私には問題が「式」なのか「式」ならどこに問題があるのかすら分かりません。アドバイスをお願いできますでしょうか。 [令和対応紹介 ウェブサイト] 新元号は「令和」|マイクロソフトのパッチに頼らずにAccessで新元号を表示する方法 https://www.ait-labo.com/excel_access/2805/ [ウェブでの紹介と対応方法] 1,テーブル内のフィールドは次の3つとシンプルです。「IDは必要ないのでしょうか?(私はID無しで作りました)」 ・開始年月日(日付/時刻型) ・終了年月日(日付/時刻型) ・和暦(短いテキスト) 自身の対応:西暦・和暦対応マスタを作る。名前:履歴マスタ「私は T_履歴マスタとしました。(修正時に探しやすい為)」 2,和暦への変換はDLookupで取得 フォームには、日付を表示するテキストボックス(txt日付)と和暦日付を表示させるテキストボックス(txt和暦日付)を用意します。 「和暦日付付用のフィールドのコントロールソースには次のような設定を行います(コピペして終了させ様とするとエラーアラートがでる)」 =DLookUp(“和暦”,”和暦マスタ(T_履歴マスタに変更)”,”開始年月日 <= #” & txt日付 & “# and 終了年月日 >= #” & txt日付 & “#”) & Format(txt日付,”mm\年dd\日”) 以上ですが、宜しくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

>「令和02年」だけ表示させるには「式」をどの様にすれば宜しいでしょうか。 DLookUpでヒットしたレコードの和暦データに、テキストボックス(txt日付)の日付をFormatで月(mm)と日(dd)のデータに加工して最後に連結しているという式になりますので、最後の & Format(txt日付,"mm\年dd\日") を削除してください。式の中の「年」は「月」の間違いだと思います。

eokwave
質問者

お礼

ありがとうございました。これで平成表示「平成02年」が全て「令和02年」に変更できます。ありがとうございました。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.3

この問題とは関係なく話は過去にさかのぼるのですが 先日のメッセージボックスの件、2007のマクロがどのようになっているのか不明でしたので、プロシージャでの方法にしたのですが、その後以下のサイトを偶然見つけました。 http://www.mahoutsukaino.com/ac/ac2000/ac2000/m_msgbox/msg01.htm 2002の画面なのですが、こちらのような感じで条件を入れてメッセージボックスを表示するという指定ができるのでしたら、こちらの方法を取得したほうが後々他で流用できると思います。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

サイトに表示されている式をそのままコピペすると半角でなければいけない"が全角の“”になったままなのでエラーになります。 メモ帳など置換ができるソフトに貼り付けて「“」と「”」を「"」に置換してください。フォントを大きくすると違いが分かりやすいです。

eokwave
質問者

補足

ありがとうございます。早速、設定してみましたところ「令和02年01年24日」に表示できました。実は、申し上げにくいですが、「令和02年」だけ表示させるには「式」をどの様にすれば宜しいでしょうか。宜しくお願いします。

関連するQ&A

  • DLookUp関数を使ったACCESSの令和表示2

    [やりたいこと] 同じテキストボックスで「西暦」と「曜日」をマウスのクリック動作で変更表示させ、、「和暦(令和02年)」は別テキストボックスで関数を使って表示させたい。 「=DLookUp("和暦","T_和暦マスタ","開始年月日<= #"&txt日付&"#and 終了年月日>=#"&txt日付&"#")」使って表示させたい。 [やってみたこと] ・既存テキストボックスの名前変更:名前「txt日付」 ・テキストボックスの追加:名前「txt和暦日付」 ・データタブ:コントロールソース  「=DLookUp("和暦","T_和暦マスタ","開始年月日<= #"&txt日付&"#and 終了年月日>=#"&txt日付&"#")」※参照先はテーブル「T_和暦マスタ」 「結果」追加のテキストボックスに令和表示「令和02年」はされますが、既存テキストボックスが「西暦」に固定されクリックしても曜日の表示もできません。 [現在の設定] ・テキストボックス:(名前:年月日曜日)コントロールソース「=Date()」 ・イベントのクリック時に「以下の記述」を設定 Private Sub テキスト11_Click() With Me.ActiveControl Select Case .Tag Case 1 .Tag = 2 .Format = "gggee\年mm\月dd\日" Case 2 .Tag = 3 .Format = "aaaa" Case Else .Tag = 1 .Format = "yyyy/mm/dd" End Select End With End Sub [補足情報] [令和対応紹介 ウェブサイト] 新元号は「令和」|マイクロソフトのパッチに頼らずにAccessで新元号を表示する方法 https://www.ait-labo.com/excel_access/2805/ 以上ですが、宜しくお願いします。

  • AccessのDlookup関数のエラー

    【Access2003】 dlookup関数について教えてください。 やろうとしていることは、ある商品について任意の日付の時点での数量を表示したく、 練習として、 DLookup("[数量]", "t_商品情報", "[品番] = '"& "1001" & "' and [日付] = #" & "2007/12/17" & "#") と記述したときには正常な値が表示されました。 その後、「品番」と「日付」をフォーム上のテキストボックスで任意の値を入力したいと思い、下記のように書き直しました。 DLookup("[数量]", "t_商品情報", "[品番] = '"& "[Forms]![フォーム1]![txt品番]" & "' and [日付] = #" & "[Forms]![フォーム1]![txt日付]" & "#") フォームのテキストボックスにそれぞれ値を入力したところ、「日付の構文エラー」となってしまいました。 勉強不足なのでしょうか、原因がわからず困っております。 お詳しい方のアドバイスをお待ちしております。宜しくお願い致します。

  • Access DLookup関数で複数条件の記述

    とても困っているので、どなたか教えて下さい! 今AccessでDLookup関数を使ってフィールドの値を取り出そうとしているのですが、 色んなエラーメッセージが出て先に進めません。 ★値を取り出そうとしているテーブル★ ■顧客台帳  ・顧客ID(オートナンバ)  ・顧客氏名(テキスト型)  ・生年月日(日付・時刻型)      以下略 ここから DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = " & Chr(34) & Me.Txt顧客氏名 & Chr(34) And "生年月日 = " & Me.Txt生年月日) 補足:Me.Txt顧客氏名(書式なし)    Me.Txt生年月日(日付(S)定型入力9999/99/99)    は、事前に入力されているものとします。 という式を使って、入力した顧客氏名と生年月日に一致する顧客IDを取り出したいのですが、 「型が違います」というエラーが出てしまいます。 条件式に[ ]等をつけてみても、「指定した式で参照されている'|'フィールドが見つかりません」 という様なエラーが出てしまいます。 条件の部分が間違っていると思うのですが、この式、またはやり方の問題点がお分かりになる方がおられましたら、ご指摘の方よろしくお願いいたします。

  • dlookup関数が使えない

    ただいま、フォーム上のあるテキストボックスのコントロールソースに以下のような式を入れています。 「=DLookUp("[M00マスター]![個人名]","[M00マスター]","[M00マスター]![個人ID]=[K00オーナーテーブル]![個人ID]")」 このフォームは、K00オーナーテーブルがコントロールソースとなっています。 しかし、このテキストボックスには、エラーと出て、しかも、ずっと点滅し続けています。 この原因がお分かりになるかた、いませんでしょうか。 よろしくお願いします。

  • アクセス Dlookup関数の表示が更新されない

    access2000です。 データ入力用のフォームでDlookupを使い、あるテキストボックスに商品番号を入力すると、隣のテキストボックスに、商品番号からテーブルを検索して該当する商品名を表示するようにしました。 商品番号を入力するテキストボックスには更新後処理でリクエリするマクロを設定しています。 ところが、番号を入力してenterを押し次のテキストボックスにカーソルが移動しても商品名が出るはずのテキストボックスに何も表示されません。 しかし、クリックして商品名のテキストボックスをカーソルを移動した瞬間にちゃんと表示されるのです。 今までに何度かこの方法でうまくいっているので、原因がつかめません。超初心者の質問ですがよろしくお願いいたします。

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • 「令和1年」を「令和元年」と表示したい

    当方はWindows10 ver.1809になっており、サポート技術情報 4495667によって新元号「令和」に対応しています。 しかしExcel2016では「2019年5月1日」を日本の元号にすると「令和1年5月1日」にというようになります。 「令和元年5月1日」と表示するにはどのようにすればいいのでしょうか?

  • DLOOKUP関数について

    お世話になっております。 現在ACCESS2000を使用しております。 テキストボックスのコントロールソースにDLOOKUP関数を使用しております。 DLOOKUPで抽出して値(数値)を変数(Integer)に代入しております。 そこで何故か代入出来る値と出来ない値があり困っております。 デバックで確認するとDLOOKUPでは値を持ってこれておりますが 変数に代入する際に失敗しているようです。 何故そのような事象が起こるのか調べてもわからず質問させていただきます。 恐れ入りますが、心当たりあるかた、どうか教えて頂けませんでしょうか。 以上、よろしくお願い致します。

  • 日付を使った計算式を教えてください

    [環境紹介] WINDOWS10、ACCESS2007(令和表示はテンプレートを使用して表示中) 「令和表示の式です」 =DLookUp("和暦","T_和暦マスタ","開始年月日<= #" & [txt日付] & "#and 終了年月日>=#" & [txt日付] & "#") [やりたいこと] 過去や未来の対象日や日数を下記のやり方で実施しています。「曜日」と「和暦」の表示方法(式)が分からずアドバイスをお願いできませんでしょうか。今の知識レベルで質問内容に対する可能可否の判断ができませんので、無理難題の質問内容でしたらご理解とご了承を賜りたいと思います。 [やっていること] 事前に設計しないでテーマを増やしたこともあり、テキストボックスの名前に整合性がありません。将来新たなデータベースを作る時(自分で納得できる知識が習得・・・)の課題と認識しております。 ■起点日→幾日後の月日(起点日から後日の西暦日を表示) テキストボックス名:西暦2「カレンダー入力」 テキストボックス名:日数2 手打ち テキストボックス名:対象2 コントロールソース「 =[西暦]+[日数] 」 ■起点日→対象日迄の日数(起点日から後日の日数を表示) テキストボックス名:開始「カレンダー入力」 テキストボックス名:終了 手打ち テキストボックス名:日数 コントロールソース「 =[着地日]-[開始日] 」 ■起点日→幾日前の月日(起点日から前日の日数を表示) テキストボックス名:西暦55「カレンダー入力」 テキストボックス名:日数55 手打ち テキストボックス名:対象55 コントロールソース「 =[西暦1]+[日数1] 」 [やってみたこと] ■起点日→幾日前の月日(起点日から前日の日数を表示)を例にとりあえず曜日でのチャレンジです。 テキストボックス名:西暦1「カレンダー入力」 テキストボックス名:日数1 手打ち テキストボックス名:対象1 コントロールソース「=[西暦1]+[日数1] テキストボックス名:曜日1 コントロールソース「 =WeekdayName(Weekday(対象1)) 」 結果はエラーでした。 以上ですが、宜しくお願いします。

  • Dlookupで結果が表示されたりされなかったりする

    いつもお世話になっております Access2007を最近使い始め、以下のようなことをしようとしております。 フォームを作成して、IDという名前のついたリストボックス内にテーブルのデータが2列分表示されるようにしました。 <テーブル> ID 名前 詳細 1 山田 東京都 2 佐藤 神奈川県 3 田中 千葉県 その後、同じフォーム上にテキストボックスを作成して リストボックスで選択したデータの詳細部分が表示されるように テキストボックス内に以下の式を入れました。 =DLookUp("[詳細] ","テーブル","[ID]= " & [Forms]![フォーム]![ID]) すると、テキストボックス内に結果が表示される行とされない行があります。 式のどこかが悪いと思うのですが、どこが悪いのか分かりません。 お手数ですが、ご教示願えればと思っております。 足りない情報がありましたら提示いたしますのでお申し付けください。 よろしくお願いいたします。

専門家に質問してみよう