MS-Access видит поля datetime2 сервера SQL как TEXT - PullRequest
5 голосов
/ 19 ноября 2010

Я изменяю размер приложения с MS-Access FE и BE до MS-Access FE и SQL Server BE.Я использовал инструмент «увеличения размера» SSMA Access для преобразования всех таблиц из Access в SQL, а затем связал таблицы SQL в Access FE с использованием ODBC.

В моей базе данных доступа некоторые таблицы имели столбцы DateTime, которые былипреобразуется в столбец datetime (0) в SQL Server.После того, как я связал таблицы тезисов в Access, Access видит эти столбцы как текстовые, даже если они являются столбцами datetime2 (0) в BE-сервере SQL.

Это вызывает некоторые проблемы, поскольку запросы, работающие с форматом датыне работает с текстовым форматом.Есть ли способ связать таблицы так, чтобы поле datetime (0) обрабатывалось Access как значения datetime?

Ответы [ 5 ]

7 голосов
/ 19 ноября 2010

Согласно TechNet , поддержка нового типа данных, datetime2, ограничена.Я бы пошел с datetime, если вы можете.

4 голосов
/ 21 июля 2016

Аналогичная проблема: RESOLVED

У меня есть сервер SQL с полем типа данных DATETIME2, и я подключаюсь к нему через ODBC в виде связанной таблицы в MS Access на Win7.

При подключении с двух разных рабочих станций, использующих одну и ту же базу данных, у одного был правильный тип данных «Дата / Время», а у другого тип данных «Короткий текст»

Решение. Оказывается, что связанные таблицы были созданы с использованием двух разных файлов DSN, один из которых содержал список «DRIVER = SQL Server», а другой «DRIVER = SQL Server Native Client 11.0». Чтобы иметь тип данных «Дата / Время» через ссылку ODBC, мне нужно было использовать Клиент 11.0.

Чтобы увидеть, какие драйверы вы установили:

From the start menu search for "ODBC"
Select "Data Sources (ODBC)".  
Click on the "Drivers" tab 

Вы увидите установленные вами драйверы. У меня есть три.

SQL Server                     6.01.7601.17514
SQL Server Native Client 10.0  2007.100.5500.00
SQL Server Native Client 11.0  2011.110.6020.00

Я считаю, что SQL Server версии 6 устанавливается Win7 и обновляется через Центр обновления Windows. Если это все, что у вас есть, вы будете получать ТЕКСТ из типов данных SQL DATETIME2 только через связанные таблицы.

Собственные клиенты были установлены SQL Server Management Studio 2008 и 2012 соответственно.

Вы можете загрузить и установить собственный клиент SQL Server 11.0 с https://www.microsoft.com/en-us/download/details.aspx?id=36434

1 голос
/ 01 февраля 2013

Я столкнулся с той же проблемой, которая привела меня на эту страницу, но я нашел решение: Проблема: связанные таблицы из доступа к серверу SQL показывают столбцы datetime2 в виде текста, что имеет много последствий, таких как сравнение дат, сортировка и т. Д.,

Решение: конвертируйте datetime2 в sql server в date time, и access сразу же покажет столбец как поле даты

Обратите внимание, что поскольку в таблицах уже есть данные, вы не можете просто изменить типы данных, я планирую добавить новые столбцы типа datetime, скопировать данные, удалить столбец orig, переименовать

Как проверить точность: я создал таблицу с 3 столбцами на сервере sql, datetime, datetime2, date, затем я связался с ней из доступа, только datetime показывалось как поле даты в доступе, остальные 2 показывались как текст

1 голос
/ 22 ноября 2010

SSMA для доступа преобразует любое поле даты / времени со значениями, которые недопустимы в SQL Server, в текст.Вы должны запустить SSMA, чтобы попробовать преобразование, и оно сообщит вам о проблемах, а затем вы сможете очистить данные до фактического преобразования.

Вам придется пропустить мастер SSMA, так как он выполняетувеличение без предварительного просмотра результатов.

0 голосов
/ 19 ноября 2010

Как правило, необходимо проверять свои даты ДО мастера увеличения.Пользователи склонны вводить «глупые» даты, которые принимаются полями даты доступа, но вызывают ошибку в SQL Server.Попробуйте запросить в таблицах даты за пределами разумного диапазона, например «между 01.01.1930 и 1/1/2020», и исправьте эти даты перед перезапуском мастера увеличения.
Я также нашел продукт, которого у меня нетиспользуется, но выглядит хорошо: http://www.upsizing.co.uk/features_translate.aspx

...