У меня есть лист Excel, который загружает данные из базы данных, а затем помещает их в таблицу Excel с помощью команды CopyFromRecordset VBA.Моя проблема в том, что несколько ячеек (которые должны быть целыми числами) продолжают форматироваться как дата, независимо от того, что я делаю.Я изменил числовой формат в Excel на Number, но всякий раз, когда я перезагружаю данные из базы данных, формат переключается обратно на дату.
Тип данных в базе данных - Integer, и все же, когда я загружаю данные изБД, Excel по-прежнему меняет формат ячейки на Дата.Даже если конечный пользователь вводит целое число в ячейку после загрузки данных, Excel изменяет его на дату.Например, если я введу 5 в ячейки, Excel изменит их на 1/5/1900.
Почему Excel будет продолжать изменять эти ячейки на даты, даже после того, как раскрывающийся список форматов будет изменен на что-то еще?
Вещи, которые я пробовал:
Изменен формат даты, числа, общего текста и текста.Он возвращает значение Date в CopyFromRecordset
, удаляя столбец и создавая новый столбец в формате Number.Он все еще возвращается к CopyFromRecordset
Приведите тип данных к целому числу в операторе выбора
Есть ли другие идеи?
Частькода VBA, который загружает данные из базы данных:
SQLStr = "Select ......, [SO] FROM v_TRACKING"
Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server Native Client 11.0};Server=" & Server_Name & ";Database=" & Database_Name & ";Trusted_connection=yes;"
rs.Open SQLStr, Cn, adOpenStatic
dataRange = "a13:az" & (rs.RecordCount + 12)
With ActiveSheet.Range(dataRange)
.ClearContents
.CopyFromRecordset rs
End With
Все остальные столбцы остаются правильно отформатированными, но по какой-то причине столбец SO форматируется как дата.Я уже несколько дней бьюсь головой об стену об этом, так что любые идеи будут оценены :) 1030 *