• 締切済み

MS ACCESS 年月指定の抽出について

MS ACCESS利用初心者です。 SQL ServerのデータをMS ACCESS 2010を使用しリンクテーブルで データの抽出をしたいと苦戦しております。 データにデータ型が短いテキストに日付(YYYY/MM/DD)が入っているのですが、 年月(YYYY/MM)を指定して、その年月のデータを抽出するため、 抽出条件には、どのように記述すれば良いのでしょうか。 ご協力お願いいたします。

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

月初日と月末日を計算して抽出条件を範囲指定にする 月初日=指定日-day(指定日)+1 月末日=月初日+35-day(月初日+35)

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.4

YYYY/MMが2011/10の例ですが、 SELECT [テーブル].日付 FROM テーブル WHERE ((([テーブル].日付) Like "2011/10*")); でよいかと思います。 クエリをデザインで開いて、抽出条件のところに Like "2011/10*" を貼り付けてみて下さい。

  • sata550
  • ベストアンサー率0% (0/0)
回答No.3

Accessの特徴:使い方が理解しやすく、操作しやすく、開発効率が高いです。 価格:MySQLは一般ユーザには無料で使用可能だが、内蔵の形でMySQLを使用し或いはMySQLのビジネス向けのソフトウェアのみを使用する場合、少しライセンス費用を支払う必要があり、それはAccessよりやや高いです。 同時発生処理:Accessは処理可能なアクセス数は無限だが、アクセスが同時発生処理の限界値内でなければなりません。MySQLのデフォルトアクセス数は最大100名のユーザだが、オンラインで大量な資料のやりとりを行っても、Mysqlの検索最適化に大きな影響を与えることがありません。 資料更新スピード:Windows 98にて同じハードウェアとサイズのデータにより数十万のデータを処理する場合、MySQLのデータ更新スピードは明らかにAccessを上回るが、対象構造を処理する場合、AccessはMySQLを上回ります。テーブルとインデックスをつくる場合、MySQLはテーブルをロックするため、大量データ処理時のスピードが落ちます。 構造の最適化:MySQLはそれ自体ではなく、ハードウェアの最適化のみを必要とします。Accessのデータベースは性能が高く、当然これはサイトの構造設計に関わっています。MySQLは外部接続に対応しておらず、いかにアクセスIOを最低値に減少させるか、1つか複数のCPUをいかに高速運行状態、及び適切な帯域幅に保つかが最適化の注意点であり、実際の設計とデータ検索の言語ではありません。 http://ms-project-visio.com/office_access_kakaku_download/mysql_and_access_difference/

回答No.2

【お断り】 ワイルドカードがSQL Server 仕様か、Access仕様かは試していません。少なくともプロジェクトとADOの場合は前者。リンクは未経験なので判りません。そこら辺りは、臨機応変に対応されて下さい。

回答No.1

※※※※※※※※※※※  パターン照合: LIKE ※※※※※※※※※※※ WHERE節にキーワード LIKE を使って、特定の文字列を含む行を抽出することができます。 WHERE <文字型列> LIKE '<値>' <文字型列>には、CHAR型の列の名前を記述し<値>には文字列をシングルクォーテーション(’)で囲んで指定します。<値>の文字列には、次のようなワイルドカード文字列を使うことができます。 %:0個以上の文字に対応します。 _:任意の1文字に対応します。 [...]:各カッコ内に指定した文字に対応します。 [^...]:各カッコ内に指定した文字以外に対応します。 >データにデータ型が短いテキストに日付(YYYY/MM/DD)が入っている。 ならば XXXXX LIKE '%YYYY/DD%' と書けばよいのではと思います。 *この20年は SQLServer、Accessとは無縁の生活。外していないことを祈る。

関連するQ&A

  • ACCESSでの日付抽出を教えて下さい

    Accessで日付を管理しているのですが、「yyyy/m/d h:mm」の形式から月ごとに抽出したいと考えています。テーブルで年と月と日付を別々に組めば抽出できるのですが、全て一括した形式での抽出はできるのでしょうか。

  • 指定した値の範囲内の列を抽出

    Access2000を使用 前回答えてもらったとおり指定した1つの値からはデータの抽出成功しました。 で今回も同じような内容で、指定した値(月初から今日の日付)までの値を抽出するようなSQL文がわかりません。 以下はwhere以降で、BETWEENを使用しましたが抽出できませんでした。 他の方法はございますか? where (クエリー名.クエリーカラム名) BETWEEN #" & Format(Date - mday + 1, "yyyy/mm/dd") & "# AND #" & Format(Date, "yyyy/mm/dd") & "#" よろしくお願いします。

  • 抽出条件でデータ型が一致しません。(エラー 346

    フロント:Access2003 , バック:SQL Server7.0 テーブル名 dbo_TB1(ODBCテーブル) Access2003 日付 データ型(日付/時刻型) yyyy/mm/dd SQL7.0 日付 データ型(smalldatetime) yyyy/mm/dd 以下のモジュールを実行すると、 抽出条件でデータ型が一致しません。(エラー 3464) とエラーが出てしまいます。 よろしくお願いします。 Dim myDate As Date myDate = Date   strSQL = Empty   strSQL = strSQL & "SELECT * FROM dbo_TB1"   strSQL = strSQL & " WHERE 日付 = #" & myDate & "#"   strSQL = strSQL & " ORDER BY 日付" Forms![フォーム].Form.RecordSource = strSQL

  • 日付データの抽出方法を教えてください

    ACCESS97のVBAで開発しています。ACCESSデータベースから該当する日付データを抽出したいのですが、YYYYのみの条件でYYYY/1/1からYYYY/12/31までのデータを抽出したいのです。SQLでできるのでしょうか?もしできるのならそのやり方を教えてください。

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。

  • 「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

    テーブル1の 日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため 「2009/02/28 0:30」と入力されています。 クエリ1に SELECT テーブル1.日付 FROM テーブル1 WHERE (((テーブル1.日付)=Date())); とした場合は 「2009/02/28 0:30」 は表示されません。 テーブル1の 「2009/02/28 0:30」を「2009/02/28 0:00」にすれば クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。 どうすれば日付+時間の場合も日付で抽出することができるのでしょうか? アクセス2003です。 よろしくお願いします。

  • Access2007で同月同日を抽出

    ある(*.accdb)のクエリーで日付の所に Like"*/"&Format(date(),"mm/dd") と書いて本日と同じ同月同日を抽出していますが本日ではなく任意の yyyy/mm/ddをあるレコード欄に入力したらその日付の同月同日を抽出するにはクエリーにどの様に書けばよいのか教えてください。

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • アクセスのクエリ抽出ができない。

    アクセスのクエリで、フォーム上のチェックのオンオフで抽出データの抽出条件を変更しようと思っています。 条件は、データの作成日付(yyyy/mm/dd形式)で、抽出の条件式は IIf([Forms]![F_送付状]![チェック40]=False,>=DateAdd("m",-1,Date()),>"0") です。チェック40がフォーム上のチェック(コントロールソースなし)で、オフの場合は、1ヶ月前までのデータを抽出、オンの場合は全件を抽出したいと思っています。 上記の式でうまく抽出できない(データが抽出できない)のですが、アドバイスをお願いします。

  • SQL Server 2005 Expressを利用して1ヶ月前のデータを表示する方法について

    SQL Server 2005 Expressを使って、テーブル(tbl出席簿)に格納され たデータのうち、今日よりも1ヶ月前のデータを表示するSQL文を教え てください。 因みにAccessでは SELECT tbl出席簿.名前,tbl出席簿.日付,Format([日付],"yyyy/mm/dd") AS 1ヶ月前 FROM tbl出席簿 WHERE (((Format([日付],"yyyy/mm/dd"))=Format(DateAdd("m"-1,Date()),"yyyy/mm/dd"))); でOKなんですが、SQL Server 2005 Expressを使った方法がわかりませ ん。 どうか、御教示下さる様宜しくお願いいたします。

専門家に質問してみよう