Aktualizuję tabelę excela z zestawu rekordów ADODB przy użyciu metody CopyFromRecordset
.Tabela Excel traci formaty liczb, gdy dane są kopiowane z zestawu rekordów ADODB
Po aktualizacji liczby są wyświetlane jako daty, w których znajdują się kolumny liczbowe.
Dotychczasowe obejście polega na sformatowaniu kolumn z powrotem do liczb za pomocą VBA, ale nie jest to dobre rozwiązanie, ponieważ wykonanie tego raportu zajmuje więcej czasu. Muszę też napisać kod, aby pomieścić wiele stołów.
Czy jest szybka naprawa? Każda pomoc jest bardzo doceniana.
'Delete old data and copy the recordset to the table
Me.ListObjects(tblName).DataBodyRange.ClearContents
Me.Range(tblName).CopyFromRecordset rst
tblName
- odnosi się do istniejącej tabeli, która odbyła się dane z tego samego formatu/typu danych jako dane RST
Wypróbuj 'Me.Range (tblName) .Kolumny (1) .Numberformat =" 0 "' przed eksportem danych za pomocą 'CopyFromRecordset' gdzie' 1' to na przykład odpowiednia kolumna z zapisanymi numerami. –
Obecnie robię to do każdej kolumny liczbowej (lub zakresu kolumn, gdzie to możliwe) po zaimportowaniu danych. Wykonanie go przed importowaniem powoduje jedynie zmianę czasu, ale nie rozwiązuje problemu. Nadal musiałbym napisać kod, aby naprawić każdą kolumnę liczbową w każdej tabeli. Chciałbym, aby tabela zachowała formaty tak jak przed importem. – flungu
Nie ma "formatów" w zestawie rekordów ADODB, tylko typy danych. Możesz zmienić swój kod, aby automatycznie ustawić format programu Excel na podstawie typu danych ADODB kolumn, ale nie ma formatów nieodłącznie w zbiorze danych ADODB - spójrz na wszystkie właściwości w nim. –