[[20201020133709]] 『マイクロソフトクエリ』(クエリ初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マイクロソフトクエリ』(クエリ初心者)

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

マイクロソフトクエリを使用して
Accessから抽出したデータをエクセルに抽出したいと思ってます。

その際に抽出するデータを日付を絞って抽出したいと考えてます。
A7に抽出したい日を指定して同じシートのC2に抽出。

抽出する列はSHYMD

条件を指定するときに

条件 =
条件の指定  "&Range(A7).Value&"

としていますが、日付け構文エラーとなります。

※最終的には記憶マクロでセルに日付けを入れて実行をすると
 データが抽出できるようにと考えてます。

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

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 ちょっと分かりにくいですが、ここだけ。

 >条件の指定  "&Range(A7).Value&"

   条件の指定   & Range("A7").Value & 

  形としてそうなるのが普通です。

   必要なら、Range("A7").Value を Format関数で所要フォーマット文字列に変換する。

   1例: Format(Range("A7"),"mm/dd/yyyy")

(半平太) 2020/10/20(火) 14:36


         ↑
 すみません。トンチンカンなこと書きました。

 無視してくださいませ。m(__)m

(半平太) 2020/10/20(火) 17:04


いえいえ、ありがとうございました。
(クエリ初心者) 2020/10/21(水) 08:44

 >※最終的には記憶マクロでセルに日付けを入れて実行をすると
 > データが抽出できるようにと考えてます。

 取り敢えず、固定日付で操作した時の記録マクロを提示頂けませんか?

 それをみれば、的確に回答できると思います。

(半平太) 2020/10/21(水) 09:15


以下が記憶マクロの内容です。


 With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=C:\euc_suid\suid.accdb;DefaultDir=C:\euc_suid;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeo" _
        ), Array("ut=5;")), Destination:=Range("$C$2")).QueryTable
        .CommandType = 0
        .CommandText = Array( _
        "SELECT 口座振込依頼書.SHYMD, 口座振込依頼書.KETY, 口座振込依頼書.KETNUM, 口座振込依頼書.DBMANAGER_GKMT.NM, 口座振込依頼書.DBMANAGER_STMT.NM, 口座振込依頼書.DBMANAGER_YKSBMT.NM, 口座振込依頼書.NM1の先" _
        , _
        "頭, 口座振込依頼書.KZMGNの先頭, 口座振込依頼書.FPDKZNUM, 口座振込依頼書.JSHMN" & Chr(13) & "" & Chr(10) & "FROM `C:\euc_suid\suid.accdb`.口座振込依頼書 口座振込依頼書" & Chr(13) & "" & Chr(10) & "WHERE (口座振込依頼書.SHYMD={ts '2005-04-15 00:00:00'})" _
        )
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "テーブル_MS_Access_Database_からのクエリ"
        .Refresh BackgroundQuery:=False
    End With

恐らくここを書き換えるのだと思います。

"WHERE (口座振込依頼書.SHYMD={ts '2005-04-15 00:00:00'})"
(クエリ初心者) 2020/10/21(水) 10:53


追加で教えてください。
下記のところでエラーがでてしまうのはなぜでしょうか?
.Refresh BackgroundQuery:=False
(クエリ初心者) 2020/10/21(水) 11:24

半平太様

実は解決しました。

"WHERE (口座振込依頼書.SHYMD=#"& Range("A7").Value & "#)"

に置き換えると上手くいきました。

ありがとうございました。

心強い気持ちで頑張れました。

(クエリ初心者) 2020/10/21(水) 14:09


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.