|
▼小僧 さん:
こんにちは。
>不必要な引用は避ける用にしましょう。
申し訳ございません。不必要な引用は今後気をつけます。
>>クエリ式'登録日 'の構文エラー:演算子がありません。」というメッセージ
>>が表示されます。
strSQL = strSQL & " , QH_COMM AS 事業所 "
の「& " ,」の間を半角スペース一つにしたらできました。
>VBA初心者さんの環境で Excel2007 を使われていないでしょうか?
申し遅れました。Excel2007を使っています。
「xlsWkb.SaveAs xlsFileName, FileFormat:=56」としたら問題なくできました。
>Ctrl + G キーを押しイミディエイトウィンドウを出現させ、
>そこに
>? acSpreadsheetTypeExcel8
イミディエイトウィンドウで見て納得できました。
表示だけはしていたのですが、使いこなせてなく宝の持ち腐れでした。
ありがとうございます。
また、下記のコードの意味が曖昧です。お時間のあるときご教授を
お願いします。
> Set xlsApp = CreateObject("Excel.Application")
> xlsApp.Visible = True
エクセルのアプリケーションをセットする。
> Set xlsWkb = xlsApp.workbooks.Add
> With xlsWkb.Sheets("Sheet1")
sheet1を作業領域にする
> For i = 0 To RS.Fields.Count - 1
> .Range("A1").Offset(0, i).Value = RS.Fields(i).Name
> Next i
A1セルをフィールドにする...みたいな記述と考えましたが
よくわかりません。ご教授をお願いします。
> .Range("A2").CopyFromRecordset RS
A2セルからレコードデータをセットする。
> .Columns("A:K").AutoFit
A〜Kセルを自動的にデータをシート内にフィットさせる。
> End With
> xlsWkb.SaveAs xlsFileName, FileFormat:=56
Excel2000形式で保存する。
> xlsWkb.Close: Set xlsWkb = Nothing
クローズ
> xlsApp.Quit: Set xlsApp = Nothing
処理を抜ける。
以上、お手数ですが、よろしくお願い致します。
>▼VBA初心者 さん:
>こんにちは。
>
>メールのやりとりだと問題ないのですが
>無料で貸して使わせて頂いている掲示版ですので
>不必要な引用は避ける用にしましょう。
>
>> いろいろなサイトから探してみました。
>
>先に提示させて頂いたURLに
>
>> h tp://msdn.microsoft.com/en-us/library/bb225982.aspx
>
>Value 8 がMicrosoft Excel 97 format、Microsoft Excel 2000 format
>となっていますね。
>
>>クエリ式'登録日 'の構文エラー:演算子がありません。」というメッセージ
>>が表示されます。
>
>こちらの掲示板の仕様で
>半角スペースが続くと全角スペースに
>置換されてしまう場合がある模様です。
>
>VBエディタにペーストしたタイミングで
>全角スペースがあるようでしたら
>半角スペースに置き換えて下さい。
>
>> エラーメッセージが表示されてしまいます。
>
>こちらで再現しなかったので
>色々Webを調べてみたのですが…。
>
>VBA初心者さんの環境で Excel2007 を使われていないでしょうか?
>その場合は通常開くExcelの拡張子が xlsx になる筈ですので
>
>xlsFileName = "C:\" & Format(Date, "yyyy_mm_dd") & "ホストデータ.xlsx"
>
>にすればエラーが出なくなるかと思われます。
>
>
>また、拡張子 xls で保存されたいのであれば
>
>xlsWkb.SaveAs xlsFileName, FileFormat:=56
>
>の様に記述してみて下さい。
>
>
>以下補足です-------------------------------------------------------------
>
>以前に提示させて頂いた回答で
>
>> DoCmd.TransferSpreadsheet acExport, 8, "Q_Rireki", xlsFileName, True
>
>とありましたが、
>
>DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Q_Rireki", xlsFileName, True
>
>の様にAccessの定数を使うのが一般的かと思われます。
>
>Ctrl + G キーを押しイミディエイトウィンドウを出現させ、
>そこに
>? acSpreadsheetTypeExcel8
>
>と入力し、Enterキーを押してみて下さい。
>
>8 という結果が返って来たかと思われます。
>
>acSpreadsheetTypeExcel8 という定数を AccessVBAにおいて
>数値に変換すると 8 という値になるという意味です。
>次に
>
>? xlExcel8
>
>と入力するとどうなるでしょうか。
>通常は何も値を返さないかと思われます。
>
>今度は Excelを起動し、VBエディタのウィンドウにイミディエイトウィンドウを表示させ
>(Excel2007の場合は開発タブをリボンに表示させる必要があった気がします)
>
>? xlExcel8
>
>と入力すると 56 という値が返ります。
>
>先のコードにある
>
>> FileFormat:=56
>
>はこの数値を指します。
>
>
>Excelへの参照設定を行うと
>AccessからExcelの定数を使う事も可能です。
>(Excel 参照設定 でWeb検索するとやり方等も探せるかと思われます。)
>
>ただし、Ac2007、Ex2007 で作ったプログラムを
>Ac2003、Ex2003 の環境で実行するとエラーが出る事がありますので
>注意して下さい。
|
|