
Access SELECT INTO に関する質問です。
いつもお世話になっております。
Access 2002 VBAなのですが、
http://oshiete.goo.ne.jp/qa/4994969.html
の内容にちなんだご質問です。
VBAで、SELECT INTO で作成したテーブルを
そのままTransferSpreadsheetでExcelに吐き出したいと思っております。
しかし、TransferSpreadsheetでは引数にテーブル名しか指定できないため、
任意のソートがされていない状態でExcel出力されてしまいます。
なにか、任意のソートをした状態でExcel出力できる方法はありますか?
TransferSpreadsheetでExcel出力した後、
Excel VBAコードを埋め込んで、Excelで並び替えを行うしかないのでしょうか?
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
No2です。
申し訳ありません。前回の質問をよく読みませんでした。アクセスではレコードの順番がインサートされた順から変わるということはあまり経験したことがありませんが、それが担保されているわけではありません。 テーブル前後に「最適化」をすると、何か変わるかもしれませんが、、、
皆様のご回答のように、
SELECT Xテーブル.* FROM Xテーブル 0RDER BY XテーブルXテーブル.品コード, Xテーブル.明細番号;
のようなクエリをつくり、そのクエリをexportの対象にするのが良いと思います。
ご回答、ありがとうございました。
最初、VBAでソートしなおしたクエリを作成しても、
ソートされていなかったのですが、
ご回答のSQL文を参考に、ORDER BY 句のフィールド名にテーブルを指定したら、
クエリはソートされていました。
実現方法は、
Dim QDB As DAO.Database 'クエリ作成用
Dim QDF As DAO.QueryDef 'クエリ作成用
str_CreateTblSQL = "SELECT * INTO " & str_CreateTblName & " FROM " & str_MainTblName & "
WHERE KEY_NAME = '" & str_KeyName & "' "
DoCmd.RunSQL (str_CreateTblSQL)
'上で作成したワークテーブルを、ソートしなおしたクエリを作成
str_QuerySQL = "SELECT * FROM " & str_CreateTblName & " ORDER BY " & str_CreateTblName & ".ELCODE ASC"
Set QDB = CurrentDb
Set QDF = QDB.CreateQueryDef(str_CreateQueryName, str_QuerySQL)
'エクセルに出力
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, str_CreateQueryName, str_OutputPath, True
大体こんな感じで実現できました。
ありがとうございました。
No.2
- 回答日時:
前回の質問で既に回答されている「参照時にクエリで order by 指定しましょう。
」というのは、(SQLビューで見たときに)
SELECT Xテーブル.* INTO T_NEW FROM Xテーブル 0RDER BY XテーブルXテーブル.品コード, Xテーブル.明細番号;
のようなクエリを作りましょうという意味です。
「デザインビュー」でクエリを作る時は、該当フィールドの「並び替え」のところを「昇順」としてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(ブラウザ) Excel VBA seleniumのedge操作について 業務上、分からないことがございまして、先 1 2022/06/20 16:59
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルからテーブル...
-
SQLで条件指定結合をしたいがNU...
-
2つのテーブルを比較して一致し...
-
Accessレコードの追加や変更が...
-
ACCESSに同時アクセス(編集)を...
-
DAOのTableDefs("TblName").Con...
-
ACCESS クエリ(カウント0の...
-
Accessの追加クエリで既存のテ...
-
アクセスで消し込みがしたい
-
ID列を含むテーブルコピー、編集
-
テーブル作成クエリで主キーを設定
-
ACCESSのSQLで数値型に変換する...
-
テーブルを、たとえそれが存在...
-
AccessでExcel出力する際に「シ...
-
データを効率よく入力させるには?
-
リンクテーブルを CopyObject ...
-
ODBCで接続するとDBに変更/追加...
-
ツリー構造をRDBで表現するには?
-
Accessで、複数のテーブルで随...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルからテーブル...
-
Accessの追加クエリで既存のテ...
-
Accessでvlookupみたいなことは...
-
Accessクエリでの、LIKE条件
-
access テーブル内のレコード...
-
Accessレコードの追加や変更が...
-
2つのテーブルを比較して一致し...
-
ACCESSに同時アクセス(編集)を...
-
INSERT時にデータ登録とmaxの発...
-
デザインビューで、連結式 を...
-
ACCESSのSQLで数値型に変換する...
-
パススルークエリをテーブル作...
-
テーブル作成クエリで主キーを設定
-
3つの表を1つに縦に連結する
-
Accessで、複数のテーブルで随...
-
AccessでのNULLのレコードの表...
-
SQLで条件指定結合をしたいがNU...
-
ODBCで接続するとDBに変更/追加...
-
SQL: SELECT UNIONすると文字数...
おすすめ情報