CopyFromRecordset
メソッドを使用してADODBレコードセットからExcelテーブルを更新しています。ADODBレコードセットからデータをコピーするとExcelテーブルが数値フォーマットを失う
更新後、数値の列がある場合はいつでも、数値は日付として表示されます。
私が今まで使用していた回避策は、VBAまでの数値に列を戻す方法ですが、レポートが完了するまでに時間がかかるため、良い解決策ではありません。また、私は多くのテーブルを収容するコードを書く必要があります。
クイックフィックスはありますか?どんな助けでも大歓迎です。
'Delete old data and copy the recordset to the table
Me.ListObjects(tblName).DataBodyRange.ClearContents
Me.Range(tblName).CopyFromRecordset rst
tblName
は -
'CopyFromRecordset'を使用してデータをエクスポートする前に、この' Me.Range(tblName).Columns(1).Numberformat = "0" 'を試してください。たとえば' 1 'は数字が格納されている関連する列です。 –
私は現在、データのインポート後、各数値列(または可能な場合は列の範囲)にこれを実行しています。インポートする前にそれを行うとタイミングが変わるだけですが、問題は解決しません。私はまだすべてのテーブルのすべての数値列を修正するコードを記述する必要があります。私は、インポートの前に書式を保持しておきたいと思います。 – flungu
ADODBレコードセットには「フォーマット」はなく、データ型のみがあります。列ADODBデータ型に基づいてExcel形式を自動的に設定するようにコードを変更できますが、ADODBデータセットには本質的な形式はありません。その中のすべてのプロパティを見てください。 –