こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2010でのExcel出力について

お世話になります。

Access2010のクエリで抽出した結果を下記のコマンドでExcelに出力しています。

Private Sub コマンド6_Click()
Dim デスクトップの場所 As String
デスクトップの場所 = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
If Nz(Dir(デスクトップの場所 & "log.xlsx"), "") <> "" Then
If vbNo = MsgBox("デスクトップに同じ名前のファイルが存在します。上書きしますか?", vbYesNo + vbQuestion, "ファイルが存在します") Then
Exit Sub
End If
End If
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Q_syukei", デスクトップの場所 & "log.xlsx"
DoCmd.Close
MsgBox "デスクトップに案件ログのExcelファイルが出力されました"
End Sub


その中のフィールドにコンボボックス利用のデータが複数あり、
1列目にID番号が振られていて、2列目に目的のデータ項目が格納されています。
元のテーブルでも、クエリでも列幅を0cm;10cmとしていて、
クエリの結果もAccess上で見ると2列目のデータ項目が表示されるのですが、
出力されたExcelには1列目のID番号しか載ってきていません。
2列目のデータをExcelに出力するにはどうすればよいでしょうか。

ご教授ください。

投稿日時 - 2014-07-31 16:49:59

QNo.8699429

困ってます

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

コンボボックスで列幅を 0cm にして非表示にしても、実際に格納されいるデータは連結列のデータですのでそうなります。

テーブルのフィールドのルックアップの値集合タイプは、「テーブル/クエリ」ですか。
もし、そうなら、Q_syukei に、値集合ソースに設定してあるテーブルを追加して、
「ID番号」同士で結合して、クエリのフィールドには、2列目のデータ項目を表示させるようにしてください。

これで、エクスポートしてもデータ項目が表示されます。

このようなクエリをオートルックアップクエリといって、Accessの基本ですのでぜひ修得してください。

オート ルックアップ クエリを作成するには
http://support.microsoft.com/kb/879978/ja

投稿日時 - 2014-08-01 05:57:54

お礼

hatena1989さん
ご回答ありがとうございます。
そっか、せっかく結合するのにテーブルを追加しているのだから、クエリのフィールドにそっちのテーブルからデータ項目を設定するようにすればいいのですね。
頭が固くなってました。
ありがとうございます!

投稿日時 - 2014-08-01 09:35:41

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ルックアップを設定している値は、一番目の列の値がエクスポートされますね。
ならば、2番目の列値を表示するようにクエリを改変するしかありません。

SELECT
  T1.ID,
  T1.分類,
  CutStr("AAA;BBB",";",Nz([分類])) AS 分類の値,
  T1.名前,
  T1.ランキング
FROM T1;

このクエリの実行結果とエクスポート結果は図のようです。

祈、成功!

投稿日時 - 2014-07-31 18:18:22

お礼

f_a_007さん
ご回答ありがとうございます。
こんな方法もあるのですね。
大変勉強になりました。
ありがとうございます!

投稿日時 - 2014-08-01 09:37:32

あなたにオススメの質問