2010-09-13 4 views
5

У меня есть база данных SQL Server 2008 с интерфейсом доступа Access. Моя проблема заключается в том, что Access не распознает даты SQL Server, поскольку они находятся в другом формате. Сервер-s форматMS-Access front-end не распознает даты с SQL Server

SQL является форматом YYYY-MM-DD
Access' является DD-MM-YYYY

Когда дата отображаются в текстовом поле, оно отображается в виде строки (без небольшого значка календаря рядом с ним).
Есть ли в любом случае я могу настроить front-end Access, чтобы он распознавал даты SQL Server?

Cheers.

+0

это связанные таблицы? –

+3

Мне кажется, что значения в SQL Server хранятся в строковом формате. Можете ли вы проверить, что они хранятся в столбце фактической даты? –

+0

Да, они хранятся как дата, и да, это связанный стол :) –

ответ

4

Если вы сохраняете даты на SQL-сервере в качестве типа данных «Дата» или «Дата2», попробуйте изменить их на «DateTime». У меня была эта проблема, связанная с данными SQL Server 2008R2 для доступа 97, доступ не видел ее в качестве даты и обрабатывал его как текст

+0

Вы джентльмен и ученый. –

+2

Другое, что здесь не связано с тем, что вы увеличиваете доступ к данным Access на SQL Server с помощью помощника по миграции SQL Server, любой столбец с недопустимыми значениями в SQL Server будет создан в SQL Server как текст (!!!). SSMA позволяет запускать отчет до повышения, поэтому он будет отмечать таблицы с недопустимыми датами (хотя он не укажет вам, какие поля). Я просто забрасываю это для полноты, потому что я столкнулся с ним только за последние 10 дней. –

+2

Это не сработало для меня в Access 2010 ... Мне пришлось явно указывать дату с помощью CDate ([Date]) в представлении SQL – wwv

3

Помощник по миграции Microsoft SQL Server для доступа переносит даты как формат даты. Проблема, с которой столкнулся пользователь, связана с драйвером. У Microsoft есть новая DLL, которая должна быть помещена на клиентскую рабочую станцию ​​(или сервер в случае Citrix). Как только это будет сделано, все даты в MS Access будут работать правильно. Мой последний опыт работы с Access 2010 был таким же, как Access 2003. Он требовал библиотеки DLL. Оттуда исследуйте, используя строку подключения DNS-Less.

+4

У вас есть ссылка, где я могу загрузить эту DLL? – BlueMagma

1

Я просто подбежал к этому, спасибо всем за ваш вклад.

Я также разрабатываю пользовательский интерфейс доступа для бэкэнд SQL Server (Access 2010/SQL Server 2014) и просто столкнулся с этой проблемой. Тип данных Date занимает 3 байта памяти, и поскольку мне не нужен компонент времени, это то, что я хотел. Лично я использую SmallDateTime, он занимает 4 байта по сравнению с DateTime 8. Также есть DateTime2, который занимает 6-8 байт.

Я создал таблицу из четырех полей, используя каждый тип данных даты, чтобы поэкспериментировать с форматами ввода, я думаю, что SmallDateTime будет делать трюк для меня.

Смежные вопросы