• ベストアンサー

Access2000のことで困っています。

今、Access2000で顧客管理みたいなものを作っているのですが、 月毎に誕生日カードを送りたいのです。 そこで、月毎に抽出する方法を知りたいのですが、 どなたかご存じないですか?

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

  • ベストアンサー
  • gould09
  • ベストアンサー率33% (196/589)
回答No.4

>この関数はクエリーで使用可でしょうか? もちろん使えます。 選択クエリーのデザインを開いて下さい。 フィールドの所にCInt(Mid([誕生日],6,2))を入れてください。 後は、抽出条件の所に印刷したい月を設定すればOKです。 ※barbieriさんの回答に対する補足についてですが、どんなエラーメッセージが出ているかきちんと書かないと解答出来ないと思いますよ。

frmattun
質問者

補足

何度もありがとうございます。 >※barbieriさんの回答に対する補足についてですが、どんなエラーメッセージが出ているかきちんと書かないと解答出来ないと思いますよ。 そうですよね。すみません。 今見たら、”定義されているフィ-ルドが多すぎます。(Error3190)” と出てきました。 ヘルプを見ると”255以上の…”と出でくるのですが、レコードが170くらいなんです。どうしてなのでしょう?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • barbieri
  • ベストアンサー率24% (19/78)
回答No.5

申し訳ありません。私の説明不足でした。 現在存在するレコード全ての[誕生日]のフィールドが完全にyyyy/mm/dd又はyy/mm/ddの形に整形されているならば、そのテーブルをデザインモードで開き[誕生日]を日付型に変更するだけ(デフォルト状態)で完全に変換可能です。 >今見たら、”定義されているフィ-ルドが多すぎます。(Error3190)” と出てきました。 テーブル作成クエリーを使用して新たなテーブルを作成する場合に同一のフィールドを複数回定義するとExpr????のようなフィールドが自動生成されます。 現在、使用されているテーブル構造がどのようになっているのか見当つきませんが既にかなりのフィールドを作成されたのではないでしょうか? とすれば、本質問から外れてしまいますが一度テーブルの解析をしてテーブル自体の構造をアクセスのアプリケーションにお願いした方が良いかも知れませんね。 どちらにしてもテーブルを最初の状態にして、[誕生日]を日付型に定義し直すことを試して下さい。 面倒ならば、既にgould09さんが回答された方法でこの問題はクリアしていると思いますので時間が出来た時にでも実験されて良いのではないでしょうか? >ヘルプを見ると”255以上の…”と出でくるのですが、レコードが170くらいなんです。どうしてなのでしょう? フィールド数とレコード数とは関係有りません。 「エクセルの列に相当する物がフィールド、同じく行がレコードに相当する」と考えて下さい。これは色々なデータベースの基本ですから覚えておいて損はありません。

frmattun
質問者

お礼

回答ありがとうございました(^○^) 理解しているようでしていなかったんですね… もう少し勉強して頑張ってつくりたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • barbieri
  • ベストアンサー率24% (19/78)
回答No.3

質問の内容から今後も長い期間に亘って使用されるものと思います。 データ量が多くて大変との事ですが、やはりここは日付型に変更されることが望ましいと思います。 「何月の予定」とかいった場合は日付を特定できない場合が多いのですが、誕生日は(知らない場合は別として)必ず特定できますから年月日が一つのフィールドになっているなら早めに日付型に変更して処理する方があとあと楽になります。別フィールドならばエクセルにイクスポートして整形してYYYY/MM/DDの形にしましょう。その後改めてアクセスに日付型としてインポートすれば使用可能です。 アクセスのテーブルからアクセスのテーブルへ直接変換するのはちょっと厄介です。

frmattun
質問者

補足

回答ありがとうございました(^。^) 返事が遅くなって申し訳ありません。 何度か、テキスト型から日付型に変えようとしましたが、 エラーが出てしまうんです。フィールドエラーみたいなんですけどよくわかりません。 無理にでも実行しようとするとフィールド名まで変わってしまうんです。 どうすればいいですか?

全文を見る
すると、全ての回答が全文表示されます。
  • gould09
  • ベストアンサー率33% (196/589)
回答No.2

関数Month()は、日付型用なので使えません。 テキスト型のフォーマットはどうなっていますか? 例えば、YYYY/MM/DDだった場合には、MID()関数を使って月を取り出せます。 MID([誕生日],6,2) 後は、数値に変換などすれば大丈夫だと思います。

frmattun
質問者

補足

再度ありがとうございました(^O^) 返事が遅くなって申し訳ありません たびたびの質問で申し訳ないんですが… この関数はクエリーで使用可でしょうか? Access初心者なので教えていただければうれしいです よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • gould09
  • ベストアンサー率33% (196/589)
回答No.1

1.顧客テーブルの中に誕生日と言う名称の日付型のフィールドを作成します。 2.選択クエリーで抽出条件としてMonth([誕生日])に誕生カードを作りたい月を指定します。 3.後は誕生カードを作るレポートで、2で作ったクエリーを指定すればOKです。

frmattun
質問者

補足

回答、ありがとうございます。 やってみたんですが・・・できませんでした(ーー;)。 フィールドがテキスト型だからでしょうか? Excelのデータをインポートしてきたもので、 データ量が多いので、変更できないのです。 こういう場合はどうすればいいのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AccessでPDFファイルを検索する方法

    顧客カード(A4判)をPDFで処理しています。枚数(ファイル)がたくさんありこまっています。顧客名や誕生日などを利用して検索する方法があれば教えてください。Access等でリンク検索できれば助かります。

  • アクセスのテーブル設計

    アクセスでケーキ店のスタンプカード管理を作成したいです。 3店舗あります。 購入されたお客様にスタンプカードを渡します。 (渡すだけなので、顧客情報は得られません) スタンプカードは、どの店舗でも使えます。 スタンプカードは500円毎に1回押します。 20個たまったら、300円に金券として使えます。 スタンプカードを回収した時点で、顧客情報が得られます。 (第1目的) 最近、カードを金券として使われたお客様に、お知らせハガキを送付 (第2目的) 誕生日の前月に、お祝いのハガキを送付 (第3目的) カードの利用回数が多い人に、ハガキを送付 (質問1) テーブル設計で悩んでいます。 カードを回収した時に、子供の名前と誕生日を記入してもらう時もあります。 カードは親だけれど、子供宛てにお祝いのハガキを送付したいからです。 下記4つのテーブル構成でよろしいでしょうか? tbl顧客(テーブル名) 顧客NO(オートナンバー) 顧客名 誕生日 性別 住所 TEL email tblカード回収日(テーブル名) 顧客NO カード回収日付 回収店舗 tbl家族(テーブル名) 顧客NO 家族名 誕生日 性別 tblカード回収店舗(テーブル名) 顧客NO 店舗 (質問2) バースデイケーキを注文されたお客様の情報がペーパーであります。 注文者名 誕生日の方の名前 誕生日 TEL (住所は聞いていません) バースデー管理は、別に作成した方がよいでしょうか?

  • Access 誕生月データの抽出

    お世話になります。飲食業の顧客管理をアクセスにて管理しようと奮闘していますが、ひとつ大きな壁に当たっているのでどなたかご指導いただけたらと思います。 内容はWinXP-Access2000で、顧客生年月日を西暦(例1978/9/8 1965/10/8)にて格納していますが、これらの西暦のデータの中から例えば8月生まれの顧客データだけ取り出す方法(関数)等はあるのでしょうか。手間はかかりますが各年ごとに各月のデータを抽出しそれを切り貼りしていくぐらいしか思いつきません。 簡単な方法があれば是非教えてください。 よろしくお願いいたします。 

  • ACCESS 顧客データ 購入履歴検索について

    ACCESSで顧客データを管理しています。 ●月●日以降 ○○製品の購入履歴があった人が、 その日付以降に再来店しているか、再来店日、購入製品をだしたいのですが、 良い抽出方法ありますか? テーブルには、↓ があります。 顧客コード 顧客名 売上日付 取引番号 商品コード 商品名 売上数量 店舗名  分かる方いらしたら教えて下さい! 宜しくお願いします。

  • accessは何ができるの?

    accessをまだ購入すらしていない者です。 ただaccessに大きな希望を持っています。 私にはやりたことがあります。それは顧客の予約管理です。現在はエクセルでその日ごとの顧客データを手入力で打ち込み紙に印刷し使用しています。 夢見ているシステムは、予約管理画面に顧客番号を入力すると過去に入力した顧客データの詳細が出力されるようにしたいのですが、その夢のようなシステムはaccessであれば実現できるのでしょうか? また日ごとに管理することは可能でしょうか?よろしくお願いします。

  • ファイルメーカー 特定の誕生月の人を抽出

    ファイルメーカー 顧客管理データーの中の特定の誕生月の人を抽出する方法を教えてください。

  • Access2000レポートについて

    Access2000で担当者別顧客名簿を作成しています。担当者別なので顧客の重複があります。 クエリで抽出してレポートのラベル印刷をしたいのですが、顧客の重複している場合は、1ラベルだけ印刷したいのです。テーブルの削除はしてはいけないのです。できる方法ご存知の方お願いします。 また、顧客名の重複がある場合チェックが自動的に入る方法もありましたらお願いします。

  • Access 重複レコード抽出し削除

    Accessで商談予定を管理したいのですが、 テーブルSで以下の管理をするものとします。 顧客No.  顧客No.A  商談予定日 1---------3---------07/08/3     ←と 3---------1---------07/08/15    ←は同じ人が会う 2---------5---------07/08/6 4---------6---------07/09/01 また顧客は別のテーブルで管理するものとします。 1と3はフィールドが入れ替わっても同一人物とします。 したいことは 抽出して日付の新しい商談予定をテーブルから 削除したいのです。 条件式がよく分からず 重複クエリもうまくできませんでした。 よろしくお願いいたします。

  • Accessのチェックボックスでチェックしたデータのみ更新するには。

     Access2000で顧客管理のDBを作っています。年齢などの条件をフォームから入力し、抽出結果をレポートで出力しています。この度、顧客情報のテーブルに「最終DM発送日」というフィールドを追加したいと考えています。  顧客の抽出は主に、DM発送の顧客の絞込みのため行っています。抽出した顧客一覧をフォームで表示し、顧客毎にチェックボックスを設け、実際DMを送ったかどうかのチェックを行いたいのです。が、チェックボックスで得た結果の使い方がよくわかりません。どのように、テーブルに反映したらよいのでしょうか?  どうかよろしくお願い致します。

  • アクセス2003で

    次のクエリでの抽出方法がわかりません。 教えてください。 ・都道府県が「沖縄」以外の顧客。 ・生年月日の月が5月である顧客(関数で) ・生年月日の年が1983年である顧客(関数で) ・生年月日が1983年12月31日以前の顧客 ・生年月日が1960年1月1日~1970年12月31日までの人で東京都以外に在住の顧客 ・パラメータクエリを使って,ふりがなの先頭文字にある文字が含まれているのを検索するクエリ

このQ&Aのポイント
  • Canon PIXUS MG5130インクジェット複合機で表示される「B800」というエラーについて解説します。
  • このエラーは突然表示されることがあり、現在は問題なく使用できる状態です。
  • キヤノン製品に関する質問であり、特にインクジェット複合機の故障やエラーについて取り上げます。
回答を見る

専門家に質問してみよう