2014-02-09 4 views
2

Я преобразовал Access db (.mdb) в SQL Server. Тем временем мне по-прежнему нужно использовать Access как front end, пока не будут созданы новые формы приложений. Может кто-нибудь сказать мне, что я мог бы сделать, чтобы исправить ситуацию, когда:MS Access SQL Server DB - Синтаксис запроса для функции CAST

В Access 2007, запрос, такие как:

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= Date() 
ORDER BY TransactionTotals.EntryID DESC; 

работал, однако, так как функция Date() не будет работать с SQL Server, с помощью в предыдущем посте правильного синтаксиса:

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= CAST(GETDATE() AS DATE) 
ORDER BY TransactionTotals.EntryID DESC; 

НО! Хотя приведенный выше код будет работать в прямом запросе SQL Server (SQL Management Studio), он будет отброшен в Access с ответом на ошибку синтаксиса в предложении WHERE.

Может быть что-то сделано в Access, поэтому я все еще могу запустить связанные с запросом формы.

ответ

0

Обычно я делаю именно то, что вы делаете, прежде чем перейти на SQL-сервер. Доступ имеет некоторые действительно странный синтаксис по сравнению с базами данных типа сервера, особенно когда речь идет о JOIN статьи и даты, GETDATE() работает только на SQL Server, в Access, попробуйте это ...

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= Format(NOW(),"General Date") 
ORDER BY TransactionTotals.EntryID DESC; 

Вы можете изменить формат даты, с или без времени.

+0

Это работает снова с SQL Server из Acces, если: – user1457613

+0

Это работает снова с SQL Server от Acces as: Format (NOW(), "yyyy-mm-dd 00:00:00"). Однако, что может работать в запросе Access, таком как WHERE TransactionTotals. [Дата] Между датой() - 7 И датой() – user1457613

+0

Uhmmm, можете ли вы объяснить немного больше о том, что вам нужно? Из того, что я понял, вам нужно запросить базу данных с условием сравнения текущей даты, а ваш SQL-оператор, который работает на SQL Server, не работает с правом доступа? Вы пытаетесь найти функцию, которая работает на обоих? –

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