マンガでよめる痔のこと・薬のこと

Accessでテーブルを作っているのですが、年だけを表示したい箇所があります。
データ型を日付/時刻型にし、書式を「yyyy\年」と設定しました。
しかし、実際年を入力してみると「入力した値が不正です」とエラーになってしまいます。
月まで入れると表示はされるんです。
月の表示はしたくないのですが、他にどこか設定漏れがあるんでしょうか?
おねがいします。

A 回答 (2件)

データ型を数値型にして、定型入力のところを「9999年」とするのでは


だめなんでしょうか。
    • good
    • 0

日付/時刻型では年月日が必要です。


月まで入れるとデフォルトで日に省略値が入ってくるため大丈夫なのだと思います。
tarankoさんの回答通り、数値型にした方がいいでしょうね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアクセスで西暦データを和暦表示させる方法

テーブルのデータは西暦で管理していますが、レポートでは和暦で出力する方法は無いでしょうか。生年月日の表示などはどうしても和暦の方が一般的なので、変則的な方法を探していますので、教えて下さい。

Aベストアンサー

Accessでの和暦の表示
ge   H1
gge   平1
ggee  平01

gggee\年     平成01年
ggge\年m\月d\日   平成1年1月1日
gggee\年mm\月dd\日 平成01年01月01日

ge\/m\/d H1/1/1
gee\/mm\/dd H01/01/01

レポートの日付のフィールドのプロパティの書式で上記より選んで設定してください。

QAccess での 「年」 のみの和暦変換について

Accessで今、レポートの作成をしているのですが、その時に「数値」で持っている西暦の年度(例,2004)を和暦で表示する作業を行っています。
 「年月日」がある日付型のデータに関しては、Format([年月日],"ggge")で表示されるのですが、数値で持っている4桁の数字に関しては、上記のように書くと突拍子も無い和暦が算出され、ちゃんとした和暦変換がなされないようです。
 年度だけをDataとして持ちたいので、日付型で持つ訳にもいきません。解決策が見つからずに困っています。
 どなたか、解決策をご提案いただける方、ご回答をお願いします。

Aベストアンサー

Format(Cdate([年]&"/01/01"),"ggge")
とか
Format(DateSerial([年],1,1),"ggge")
とすればいいのでは?

QAccessでテーブルの値をテキストボックスに代入するには?

[ID][文字列]の2つのフィールドからなる単純なテーブルがあり、削除クエリを併用して常に最新のデータしか格納されていない状態に工夫できました。(データは常に1つ)
そこでフォーム上にあるテキストボックスにこのテーブルの[文字列]フィールドのデータを表示させたいのですが、
どうしたらよいでしょうか?

また、このテーブルの[文字列]フィールドのデータを直接変数として使いたい場合はVBAでどのように記述すればよいのでしょうか?

Aベストアンサー

テーブルに"データは常に1つ"ならコントロールソースに
「=DLOOKUP("文字列のフィールド名","テーブル名")」
IDごとに"データは常に1つ"ならコントロールソースに
「=DLOOKUP("文字列のフィールド名","テーブル名","[ID]='" & Me.ID & "'")」

Dlookup関数のヘルプ
http://office.microsoft.com/ja-jp/assistance/HP010496551041.aspx

QAccess 日付のフィールドから年度を取り出す方法を教えてください

いつもお世話になっています。
Access 日付のフィールドから年度を取り出す方法を教えてください。
例)
受付日 | 利用年度
___________
05.11.3|   17
___________
06.1.2 |   17  
___________
06.4.3 |   18  

というように、4.1~3.31 を区切りとした
年度としてデータを取り出したいのです。
よろしくお願いします。

Aベストアンサー

>4.1~3.31 を区切りとした年度としてデータを取り出したいのです
これを見落としていました。又失礼致しました。
クエリで

利用年度:Format(IIf(Month([受付日])<=3,CVDate(Year([受付日])-1 & "/" & Month([受付日]) & "/" & Day([受付日])),[受付日]),"ge")

これで表示されます。

Qアクセス:クエリのビルダで西暦を和暦にしたい

アクセスのクエリ初心者です。よろしくお願いします。
ヘルプでの調べ方すら時間がなくてわからないので、お助けください。

生年月日が西暦(例:2006/12/22)で入っています。クエリのビルダの関数を使って、『和暦表示』にする方法を教えてください。
よろしくお願いいたします。

Aベストアンサー

別のフィールドで文字列化でいいなら
フィールド名:Format([生年月日],"gggee年mm月dd日")

表示を和暦にするだけなら、プロパティを開いてフィールドの書式欄に
gggee"年"mm"月"dd"日"
としてください。

和暦の書式は
g 年号1桁 M,T,S,H
gg 年号漢字1桁 明,大,昭,平
ggg 年号漢字2桁 明治,大正,昭和,平成
e 和年1桁 1年から9年まで1桁で10年以降はその桁数
ee 和年2桁 1年から9年までを01~09と2桁表示

QAccessで、定型入力を使って年と月のデータだけ入力したい

いつも大変お世話になっております。m(_ _)m

Accessで、日付・時刻型のテーブルにデータを入力する際、
書式:yy/mm/dd
定型入力:00/00/00;0;
とすると、「061213」と入力するだけで「06/12/13」と入力できます

この方法を利用して、年と月だけ入力したいのです
書式:yy/mm
定型入力:00/00;0;
としました。

「98/06」などのデータは問題なく入力できました。
しかし、「05/01」と入力すると「06/05」と表示されてしまいます。
2005年1月というデータを入力したいにもかかわらず、2006年5月となる様子です。

どうすれば解決するでしょうか?

年と月の情報のみ入力したくて、入力にかかる手間を省くため、できるだけ数字のみの入力が希望です。

よろしくお願いします。

Aベストアンサー

まあ、いわゆる仕様だそうで・・・困ったものです

[ACC2000]yy/mm/dd日付を#で囲むと"mm/dd/yy"に変換される
http://support.microsoft.com/kb/416056/ja

Acc2000について記載してありますが、Jet自体の仕様だそうで・・・

確か、標準では手が無かったのでフォームで非連結のコントロールを配置
更新後処理で、入力したかったフィールドに変換し書き込むと言うのを行
った記憶があります

記載している意味判りますか?

Q「年」と「月」だけの日付の表示方法

お世話になっております。
アクセス2007を使っています。
例えば、、、「2008/2」というふうに時期を入力(表示)したい場合はどのように入力すればよろしいのでしょうか。
エクセルではセルの書式設定のメニューにありました。
アクセスは始めたばかりでもあり困っています。。。
作業管理表をアクセスで作成しているのですが、厳密に「日」まで入力するのは困難なのです。こういった場合の便利な機能などももしご存知でしたら教えてください。
よろしくお願い致します。

Aベストアンサー

Accessでもほとんど同じです
日付時刻型のフィールドには年月だけというものは入力できません
書式で年月だけを表示させます

日付時刻型フィールドに
>「2008/2」というふうに
入力すると、自動的に1日が補われ
2008/2/1が入力されます

このフィールドの書式に
yyyy/mm
と指定してやればいいのです

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QAccessで別テーブルの値をフォームに表示したい

初めてのAccessで分からない事があり質問させてください。

<会社テーブル>
会社ID
会社名
住所

<社員テーブル>
会社ID
社員名
ソート番号

*1社に対し複数の社員レコードが存在

以上のようなテーブルがあるとします

現在「会社テーブル」を表形式で一覧表示しています
会社ID,会社名、住所とフィールドが並んでいるのですが、その後ろに「社員テーブル」のソート番号が一番若い社員名を表示したいと考えています(現状は番号関係なく表示させる方法すら分かりません)

色々いじくりまわしたのですが、初めてAccessをさわる事もあってよくわかりません

リレーション等でひっぱってくる事ができるのでしょうか?

どなたか教えて頂けませんでしょうか

何卒よろしくお願い致します

PS.Access2013で作成中です

Aベストアンサー

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FROM 社員
ORDER BY 社員.ソート番号;

2、コントロールソースに次のように書きます。

=DLookUp("社員名","社員ソートクエリ","会社ID=" & [会社ID])

http://office.microsoft.com/ja-jp/access-help/HA001228825.aspx

DLookup()については、マイクロソフトの解説を参照されてください。

【DLookup()の限界を破るにはVBAで同じ関数を作るしかない】

マイクロソフトの解説を読めば判りますが、ORDER BY 節を指定する引数が用意されていません。ですから、どうしても、"社員ソートクエリ"を作成するという手間が必要となります。そこで、SQL文を引数とするDBLookup()をVBAで書けば、その手間を省けるという算段になります。この辺りは、好みと趣味の問題。どっちでも良いと思います。そういうお断りをした上で DBLookup()を紹介しておきます。なお、ADOは、つぎのように参照設定しないと利用できません。

http://www.happy2-island.com/access/gogo03/capter00307.shtml

Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FR...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング