Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1890 / 9994 ←次へ | 前へ→

【11386】Re:フォームで抽出したデータをExcel出力
回答  VBA初心者  - 10/1/15(金) 14:19 -

引用なし
パスワード
   ▼小僧 さん:
 こんにちは。
VBA初心者です。
>TransferSpreadsheet のヘルプはご覧になられましたか?
>(Accessのヘルプではなく、VBAのヘルプですね)
 いろいろなサイトから探してみました。その結果、
「acExport, 8,」の部分はexcel2000と97形式みたいなことが
書かれてました。自信がないので教えてくだされば幸いです。

>オートメーションを使う必要がありそうですね。
参考記述例を書いて頂きありがとうございます。
かなりの勉強になります。

>strSQL = ""
>strSQL = strSQL & " SELECT 登録日 "
>strSQL = strSQL & "   , QH_COMM AS 事業所 "
>strSQL = strSQL & "   , NEW_HOSTNAME AS 新PC名 "
>strSQL = strSQL & "   , QH_IPADR AS IPアドレス "
>strSQL = strSQL & "   , MEMO2 AS メモ1 "
>strSQL = strSQL & "   , MEMO3 AS メモ2 "
>strSQL = strSQL & "   , MEMO4 As メモ3 "
>strSQL = strSQL & "   , MEMO5 As 事項 "
>strSQL = strSQL & " FROM " & Me.RecordSource & " "
>strSQL = strSQL & " WHERE " & strWhere
の形式で記述すると、 
 「実行時エラー'3075'
クエリ式'登録日 'の構文エラー:演算子がありません。」というメッセージ
が表示されます。

strSQL = "SELECT 登録日,QH_COMM AS 事業所,NEW_HOSTNAME AS 新PC名,QH_IPADR AS IPアドレス,NEW_USERNAME AS 新ユーザ名,NEW_DOMAIN AS 新ドメイン名,Office判定,ソフト1,ソフト2,ソフト3,特記事項 FROM " & Me.RecordSource _
      & " WHERE " & Me.Filter
の形式にしたらエラーメッセージが表示されないで処理されます。
書き方の違いだと思うのですが、どこが違うのかが判別できません。


また、出力したエクセルファイルを開こうとすると、
「ファイル各k銚子が示す形式と異なります。このファイルが破損していなこと、信頼できる
発行元からのファイルであることを確認して下さい。ファイルを今すぐ開きますか?」 
 のエラーメッセージが表示されてしまいます。
エクセルファイルを保存するときに「,FileFormat:=XlFileFormat.xlExcel8」の記述を入れたいのですが、どのタイミングで挿入すべきかわかりません。

どうかお時間のあるときご教授願います。 
 

>▼VBA初心者 さん:
>こんにちは。
>
>>「acExport, 8,」の部分が解釈できません。
>
>TransferSpreadsheet のヘルプはご覧になられましたか?
>(Accessのヘルプではなく、VBAのヘルプですね)
>
>英語のページしか見つかりませんでしたが
>MSの
>
>h tp://msdn.microsoft.com/en-us/library/bb225982.aspx
>MSのサイトにもありますね。
>
>
>> エクセルのセル内に綺麗に収まり画面にデータが出力されます。
>> TransferSpreadsheetを使っても同じように出力できますでしょうか。
>
>Output To メソッド も TransferSpreadsheet も
>お手軽にExcelへの出力を行ってくれる半面
>今回の様に細かく書式やセルの大きさを設定できない
>欠点もあります。
>
>以前に
>
>>> Output To メソッドを使った後に書式を変更する事も可能ですが
>>> ExcelVBAとオートメーションの知識が必要となってきます。
>
>と回答させて頂きましたが、
>オートメーションを使う必要がありそうですね。
>
>Private Sub コマンド35_Click()
>Dim DB As DAO.Database
>Dim RS As DAO.Recordset
>Dim strSQL As String
>Dim strWhere As String
>Dim xlsApp As Object
>Dim xlsWkb As Object
>Dim xlsFileName As String
>Dim i As Long
>
>  'フィルタを掛けた時点で Hitするものがなかったような場合は
>  'メッセージを出して処理を中止します。
>  If Me.Recordset.EOF Then
>    MsgBox Prompt:="出力するデータがありませぬ" _
>       , Buttons:=vbExclamation
>    Exit Sub
>  End If
>
>  Set DB = CurrentDb
>  xlsFileName = "C:\" & Format(Date, "yyyy_mm_dd") & "ホストデータ.xls"
>  
>  'もし Filterプロパティになにも記述されていなかったら
>  'フォームに表示されている全データを出力するようにします。
>  
>  If Me.Filter = "" Then
>    strWhere = True
>  Else
>    strWhere = Me.Filter
>  End If
>
>  
>  '変数に SQL文を代入します。
>  'Filter プロパティに記述されているものを抽出条件とします。
>  
>  strSQL = ""
>  strSQL = strSQL & " SELECT 登録日 "
>  strSQL = strSQL & "   , QH_COMM AS 事業所 "
>  strSQL = strSQL & "   , NEW_HOSTNAME AS 新PC名 "
>  strSQL = strSQL & "   , QH_IPADR AS IPアドレス "
>  strSQL = strSQL & "   , MEMO2 AS メモ1 "
>  strSQL = strSQL & "   , MEMO3 AS メモ2 "
>  strSQL = strSQL & "   , MEMO4 As メモ3 "
>  strSQL = strSQL & "   , MEMO5 As 事項 "
>  strSQL = strSQL & " FROM " & Me.RecordSource & " "
>  strSQL = strSQL & " WHERE " & strWhere
>
>  'レコードセットに対象のデータを代入します
>  Set RS = DB.OpenRecordset(strSQL, dbOpenSnapshot)
>    
>  '以下Excelの操作------------------------------------------
>  Set xlsApp = CreateObject("Excel.Application")
>    xlsApp.Visible = True
>  
>  Set xlsWkb = xlsApp.workbooks.Add
>    With xlsWkb.Sheets("Sheet1")
>    
>    For i = 0 To RS.Fields.Count - 1
>      .Range("A1").Offset(0, i).Value = RS.Fields(i).Name
>    Next i
>    
>    .Range("A2").CopyFromRecordset RS
>    .Columns("A:H").AutoFit
>    End With
>    
>    xlsWkb.SaveAs xlsFileName
>  xlsWkb.Close: Set xlsWkb = Nothing
>  xlsApp.Quit: Set xlsApp = Nothing
>  
>  MsgBox "出力が終了しました"
>    
>End Sub
>
>
>ご参考になれば幸いです。
1,875 hits

【11370】フォームで抽出したデータをExcel出力 VBA初心者 10/1/12(火) 17:04 質問[未読]
【11374】Re:フォームで抽出したデータをExcel出力 小僧 10/1/13(水) 12:23 回答[未読]
【11375】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/13(水) 13:51 回答[未読]
【11376】Re:フォームで抽出したデータをExcel出力 小僧 10/1/13(水) 14:45 回答[未読]
【11381】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/14(木) 10:38 回答[未読]
【11384】Re:フォームで抽出したデータをExcel出力 小僧 10/1/15(金) 10:20 回答[未読]
【11386】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/15(金) 14:19 回答[未読]
【11387】Re:フォームで抽出したデータをExcel出力 小僧 10/1/15(金) 15:04 回答[未読]
【11389】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/15(金) 17:33 回答[未読]
【11390】Re:フォームで抽出したデータをExcel出力 小僧 10/1/15(金) 18:11 回答[未読]
【11392】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/15(金) 18:31 回答[未読]
【11395】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/19(火) 13:42 回答[未読]
【11397】Re:フォームで抽出したデータをExcel出力 小僧 10/1/20(水) 16:50 回答[未読]
【11404】Re:フォームで抽出したデータをExcel出力 VBA初心者 10/1/21(木) 11:48 お礼[未読]

1890 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free