Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2019)
ExcelからAccessのクエリデータを取込 「このテーブルは空です。」について
投稿日時: 22/12/03 20:27:25
投稿者: ROCK.FOREST.

Excelからクエリデータのデータ取り込みについてご教示ください。
 
ExcelからAccessのクエリで作成したデータを取込をするため下記の操作を行ったのですが、クエリのデータがあるにも関わらず、「このテーブルは空です。」になる。
但し、クエリによってはデータの取り込みが可能な場合あります。
 
■操作
Excelからデータタブ→データの取得→データベースから→Microsoft Accessデータベースからを選択。
2)ナビゲーターから対象のクエリを選択。
 
どうぞよろしくお願いいたします。

回答
投稿日時: 22/12/11 10:59:53
投稿者: WinArrow
投稿者のウェブサイトに移動

なかなかレスが付きませんね?
 
ある時は、意図とおりになるが、
別の条件では、意図と違う
ということは、
クエリの内容に、問題があると思います。
言葉だけでは、回答者に
状況を伝えるとが難しいですね。

回答
投稿日時: 22/12/11 17:29:14
投稿者: rockforest

コメントありがとうございます。
クエリの中身を記載してもう一度ご回答頂ける事をお待ちします。

回答
投稿日時: 22/12/12 17:59:52
投稿者: rockforest

クエリの中身はこんな感じです。
但しクエリを実行すると正しい情報が表示されます。
 
SELECT DateSerial(Left([日付],4),Mid([日付],5,2),Right([日付],2)) AS 問合せ日, T01問い合わせ管理.管理番号, T01問い合わせ管理.対応者名, T01問い合わせ管理.件名, [T01問い合わせ管理].[部署名] & " : " & [依頼者] AS 部署・氏名, [システム名] & [オーダ種別名] AS システム, T01問い合わせ管理.対象名, T01問い合わせ管理.進捗
FROM T01問い合わせ管理
WHERE (((T01問い合わせ管理.日付) Like Format(Date()-Day(Date()),"yyyymm\*")))
ORDER BY DateSerial(Left([日付],4),Mid([日付],5,2),Right([日付],2)), T01問い合わせ管理.管理番号

回答
投稿日時: 22/12/12 18:31:25
投稿者: WinArrow
投稿者のウェブサイトに移動

抽出条件に議もなります。
 
>T01問い合わせ管理.日付) Like Format(Date()-Day(Date()),"yyyymm\*")))
の中の
>Date()-Day(Date())
 

2022/12/10の場合
2022/11/30
になると思います。
 
Date()-Day(Date())+1
ではないでしょうか?

回答
投稿日時: 22/12/12 20:12:00
投稿者: んなっと

Accessでクエリのコピーを作成して
"yyyymm\*"
    ↓
"yyyymm\%"
に変更して上書き保存。
Excelで取り込むときには上のクエリのコピーの方を選ぶ。
 
 
Excel 外部取り込みでAccessクエリからデータ抽出の注意点!
https://yuworks.blog/excel-access/

回答
投稿日時: 22/12/13 10:49:03
投稿者: rockforest

WinArrow様
ご教示、ありがとうございます。
ご指摘頂いた内容では、当月分のみが表示されます。
今回のクエリは前月分だけを抽出をさせております。
 
んなっと様
ご教示ありがとうございます。
参考に頂いたリンク先情報ですが、実は試していたいのですが、0件になるので困っておりました。
ご指摘頂きました式で設定しましたが、やはり0件になります。
定義内容が間違っているのでしょうか。
 
WHERE (((T01問い合わせ管理.日付) Like Format(Date()-Day(Date()),"yyyymm\%")))
 
よろしくお願いいたします。

回答
投稿日時: 22/12/13 12:17:12
投稿者: んなっと

引用:
参考に頂いたリンク先情報ですが、実は試していた

もし知っていたなら、これは問題解決のための優先順位が高い事項ですよね?
指摘されるまでこれを書かなかったのは理解できません。怪しい。

回答
投稿日時: 22/12/13 12:25:33
投稿者: んなっと

だめなら
 Accessで元のクエリから「テーブルの作成」をして上書き保存。
→Excelから上で作成したテーブルを読み込む
ことになると思います。

回答
投稿日時: 22/12/13 12:49:25
投稿者: rockforest

んなっと様
 
ありがとうございます。
一旦別のテーブルで出力して、取込込むようにいたします。
 
すみません。ワイルドカードの情報は、別のサイトだったと思いますが、結果的に解消されなかった事と、見当違いの情報だった場合、混乱するかなと思って、意図的に記載しませんでした。
特に、悪意はありません。お気を悪くされましたら、すみません。
どうぞよろしくお願いいたします。

回答
投稿日時: 22/12/13 16:18:46
投稿者: んなっと

Access一般機能の板に質問しなおした方がいいかもしれません。
力になれなくて申し訳ありませんでした。

回答
投稿日時: 22/12/13 23:13:55
投稿者: WinArrow
投稿者のウェブサイトに移動

原因が分かりました。
 
>WHERE (((T01問い合わせ管理.日付) Like Format(Date()-Day(Date()),"yyyymm\%")))

>"yyyymm\%"
「"」を「'」に変更してみてください。
 

回答
投稿日時: 22/12/14 15:24:36
投稿者: んなっと

追加。
*→% にして Like→ALike にすればクエリのコピー作成は不要、AccessとExcel両方で有効に。
ただし今回の問題の解決にはなりません。原因は別だと思います。

回答
投稿日時: 22/12/15 17:30:06
投稿者: WinArrow
投稿者のウェブサイトに移動

WinArrow さんの引用:
原因が分かりました。
 
>WHERE (((T01問い合わせ管理.日付) Like Format(Date()-Day(Date()),"yyyymm\%")))

>"yyyymm\%"
「"」を「'」に変更してみてください。
 

 
私は、VBAでSQL文を作成していることが多い(Accessのクエリは使わない)ので、
勘違いしていました。
 
Likeを使わずに「YYYYMM01〜YYYYMM31」のような指定もああるのではないでしょうか?
BetWeenとか・・・

トピックに返信