- ベストアンサー
Access2010でExcelエクスポート
通貨型のフィールドに、「\535,211,114,112」を入力して、 DoCmd.TransferSpreadsheet acExport, 5, "テーブル1", "C:\Test.xls", True, "" を行うと、Excelに「450691311687.48」が出力されます。 ※Excelのバージョンは2010です。 この事象について、詳しい方がおられましたら、ご教授ください。 以上、よろしくお願い致します。
- micoyanx
- お礼率100% (3/3)
- その他(プログラミング・開発)
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こちらでも再現してしまいました。 WinXP SP3 & Office2010(試用版) 倍精度浮動小数点型なら誤変換?は発生せず。 時間が取れないので通貨型の誤変換のしきい値?は探していません。 Office2002では発生せず。 MougさんとかだとDEEPな方々が多いのと、 此処のようにスレッドが流され放しにならないので、おススメかもです。 http://www.moug.net/index.html
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
No1です。この現象については以下にあります。 http://support.microsoft.com/kb/417633/ja http://www.nbcom.co.jp/PC-Support/FAQ/acc/tr/acc102004tr002.shtml ただ、上記の方法で訂正されなければ、No1の方法で。
お礼
piroin654様 お忙しい中、返答下さり、ありがとうございました。 今回は、書式ではなく、予期せぬ値で出力されてしまう事象に困っておりました。 書式については、新たな知識として蓄えさせて頂きます。
- piroin654
- ベストアンサー率75% (692/917)
エクスポートした後、Excelのセルの書式設定で 小数点以下の桁数を0にすれば表示が訂正されます。
お礼
piroin654様 お忙しい中、返答下さり、ありがとうございました。 今回は、書式ではなく、予期せぬ値で出力されてしまう事象に困っておりました。 書式については、新たな知識として蓄えさせて頂きます。
関連するQ&A
- アクセス2000→エクセル2010へエクスポート
Private Sub cmd出力ボタン_Click() DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, 8, "出力クエリ", "C:データ.xlsx", True, "" DoCmd.SetWarnings True End Sub 実行すると 外部テーブルのフォーマットが正しくありません と出てしまいます。 エクセル97の形式にエクスポートする際は大丈夫でした。 spreadsheettypeの引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。
- ベストアンサー
- オフィス系ソフト
- ACCESS エクスポートしたEXCELが立ち上がらない
知っている方が居たら教えてください。 DoCmd.TransferSpreadsheet acExport, , QInfo, FileName, True ↑でEXCELにエクスポートしています。 エクスポート処理時に何かEXCELファイルを立ち上げておくと エクスポートしたファイルを自動起動できません。 EXCEL本体、EXCELを起動しない場合は自動起動できるのですが・・・。 そういうものなのでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESS-VBAでEXCEL出力
ACCESS-VBAで外部accdb内のテーブルデータをEXCEL出力するにはどうしたらできるのでしょうか? 現在、以下の方法で内部のテーブルデータをEXCEL内の名前に紐づけてエクスポートしています。 DoCmd.TransferSpreadsheet acExport, , "データ", "test.xlsx", True
- ベストアンサー
- オフィス系ソフト
- Access2000のモジュールで
テーブル1にある処理をした後、そのテーブルを開いて内容を確認し、OKならエクセルにエクセルにエクスポートという処理を記述したいのですが、 ・ ・ DoCmd.OpenTable "テーブル1" If MsgBox("出力してよろしいですか。", vbYesNo, "確認") = vbYes Then DoCmd.TransferSpreadsheet acExport, , "テーブル1", "C\テーブル1.xls", True とすると、テーブルを開いてすぐにメッセージボックスが手前に表示されるので、テーブルをスクロールすることができません。 Docmd・・・とif MsgBoxの間にどんな記述を入れれば、できるようになりますか? それとも、もっとスマートなやり方があるのでしょうか? 教えてください。お願いします。
- ベストアンサー
- オフィス系ソフト
- Access2000 Export時にシート名を指定したい。
お世話になります。 Access2000です。 アクセスよりテーブルAをエクセルにエクスポートする時にシート名を指定したいのですがどうすればよいのですか? DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブルA", "E:\", True となっていますが・・・・ よろしくお願いします。
- 締切済み
- オフィス系ソフト
- accessからエクセルにエクスポートしたファイルを開きたい。
accessのマクロ・ワークシート変換で4枚のシートを含むエクセルファイルを作るように設定をしたのですが、これをエクスポートが終わったら自動的に開くようにしたいのですが、どのようにしたらよいでしょうか。 VBAで DoCmd.OutputTo acOutputTable, "tbl_aaa", acFormatXLS, , True と試してみましたが、シートは一つのみになってしまいます。 1つのエクセルファイルに4枚のシートを出力して、それを立ち上がるようにしたいです。 DoCmd.TransferSpreadsheet acExport, … も考えたのですが、エクセルを開く書き方がわかりません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスからエクセルへの処理
Private Sub エクスポート_Click() Dim myExcel As Object 'エクセルに出力 DoCmd.TransferSpreadsheet filename:=CurrentProject.Path & "\分析素材\test.xls", _ tablename:="HJEX016", _ transfertype:=acExport 'ファイルを開く Set myExcel = CreateObject("Excel.Application") myExcel.Visible = True ★ myExcel.workbooks.Open filename:=CurrentProject.Path & "\分析素材\test.xls" アクセスのテーブルをエクセルシートに出力し、そのファイルを開くという プログラムを作成してみたのですが、★のところで固まってしまいます。 何がいけないのでしょうか?
- ベストアンサー
- Visual Basic
- アクセス(access)からエクセルにエクスポート
アクセスから、エクセルにクエリのデータを出力する際に、 「TransferSpreadsheet」を使用していますが、 そのエラー処理について、教えて下さい。 保存しようとしているファイルが既に開かれている場合に、 処理を中止し、エラーメッセージを出したいのですが、 どのようにすればいいのでしょうか? なお、現在のVBAは次のとおりです。 Private Sub コマンド01_Click() Dim a As String Dim b As Variant a = "Q_一覧表" b = "C:\一覧表.xls" DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, a, b, True MsgBox "データを出力しました。" Exit Sub End Sub
- ベストアンサー
- オフィス系ソフト
- ACCESS エクスポートについて
ACCESSのエクセルへのエクスポートについて お世話になりあます。 既存エクセルにACCESSのDoCmdを使用してエクスポートしようと考えています。 エクスポート先は既存エクセル(セルに数式あり)です。 DoCmd.TransferSpreadsheet acExport, SpreadsheetType, TableName, FileName , True,SheetName という分を作り実行しましたが、「ワークシートのセルが削除できません」と出てしまい エクスポートできません。 ヘルプを見ると数式が含まれていると出来ないと書いてありました。 数式を消さないと出来ないのでしょうか。 お手数ですが、分かる方おられましたら教えて下さい。
- 締切済み
- その他(データベース)
- Accessエクスポート時に連番を入れたい。
クエリ出力は以下でできたのですが、 ワークシート名がQ_testのみで上書きになります。 Excel出力時に、Q_testxx (x=月)にしたいです。 Function M_test() On Error GoTo M_test_Err DoCmd.TransferSpreadsheet acExport, 8, "Q_test", "c:\test.xls", False, "" M_test_Exit: Exit Function M_test_Err: MsgBox Error$ Resume M_test_Exit End Function
- ベストアンサー
- その他MS Office製品
お礼
nicotinism様 お忙しい中、返答下さり、ありがとうございました。 私だけかと思い、不安になっておりました。 フィールドの型を十進型にする手もあったのですが、デグレートテストが膨大になるので、エクスポートクラスを作成して対処するつもりです。 ざくっと流した結果、期待通りの値が出力されてましたので、来週はこのクラスのテストをして、対応するつもりです。 本当にありがとうございました。 以下、ExportClass Option Compare Database Private xlsApl As Excel.Application Private xlsBook As Excel.Workbook Private xlsSheet As Excel.Worksheet Private Sub Class_Initialize() Set xlsApl = CreateObject("Excel.Application") xlsApl.DisplayAlerts = False End Sub Private Sub Class_Terminate() xlsApl.Quit Set xlsApl = Nothing End Sub Public Sub OpenBook(xlsPath As String) Set xlsBook = xlsApl.Workbooks.Open(xlsPath) End Sub Public Sub Export(queryName As String, Optional sheetName As String = "") Dim rs As Recordset Dim i As Integer If sheetName = "" Then sheetName = queryName End If Set rs = CurrentDb.OpenRecordset(queryName, dbOpenSnapshot) For i = 1 To xlsBook.Sheets.Count If xlsBook.Sheets(i).Name = sheetName Then xlsBook.Sheets(sheetName).Delete Exit For End If Next i Set xlsSheet = xlsBook.Sheets.Add For i = 0 To rs.Fields.Count - 1 xlsSheet.Cells(1, i + 1).Value = rs.Fields(i).Name Next xlsSheet.name = sheetName xlsSheet.Cells(2, 1).CopyFromRecordset rs rs.Close Set rs = Nothing Set xlsSheet = Nothing End Sub Public Sub CloseBook() xlsBook.Save xlsBook.Close Set xlsBook = Nothing End Sub