Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access 2010
 
 автор: gontik   (08.06.2015 в 19:13)   личное сообщение
 
 

Имеется примитивная программа в Access 2003.
Работает отчет на базе запроса по одной Таблице:

TRANSFORM Sum(WarenTag.Preis) AS Obiem
SELECT Format([tagt],"yyyy") AS Jahr, WarenTag.Rab AS Ausdr2, Sum([Obiem]) AS Ausdr3
FROM WarenTag
WHERE (((Format([tagt],"yyyy"))=[forms]![Archive]![jahr]) AND ((WarenTag.Rab) Is Not Null))
GROUP BY Format([tagt],"yyyy"), WarenTag.Rab
ORDER BY WarenTag.Rab DESC
PIVOT Format([tagt],"mmm") In ("Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");
TagT это дата, Jahr Задается год, WarentagRab скидка


Под Access 2010 не работает. Сообщение 3085 - Неопределенная функция 'Format' (если я правильно перевожу). Что это может быть?
К Access 2010 доступа у меня пока нет.

Аналогичные и несколько более сложные идут без ошибок. Например:
TRANSFORM Sum(Tab_Waren.Menge*(1)) AS Obiem
SELECT Format([LieferTerm],"yyyy") AS Yahr, Tab_Tovar_Katalog.Name_Waren AS Ausdr1, Sum([Obiem]) AS Ausdr2
FROM Tab_Verkauf RIGHT JOIN (Tab_Waren INNER JOIN Tab_Tovar_Katalog ON Tab_Waren.[Bezeichnung-Nr] = Tab_Tovar_Katalog.[Bezeichnung-Nr]) ON Tab_Verkauf.LfNum = Tab_Waren.LfNum_W
WHERE (((Format([LieferTerm],"yyyy"))=[Forms]![Period]![GG]) AND ((Tab_Tovar_Katalog.Kod_Gr)=5) AND ((Tab_Tovar_Katalog.[Bezeichnung-Nr])<>212 And (Tab_Tovar_Katalog.[Bezeichnung-Nr])<>226))
GROUP BY Format([LieferTerm],"yyyy"), Tab_Tovar_Katalog.Name_Waren, Tab_Tovar_Katalog.[Bezeichnung-Nr]
PIVOT Format([LieferTerm],"mmm") In ("Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");

Буду благодарен за советы

  Ответить  
 
 автор: shanemac51   (08.06.2015 в 19:54)   личное сообщение
 
 

проверьте ссылки--возможно битая ссылка на word или mscal

  Ответить  
 
 автор: gontik   (08.06.2015 в 23:45)   личное сообщение
 
 

какие ссылки - я это не понимаю. Запрос очень простой.
ссылку на календарь не делал, ведь прога работала под Access 2003.
Аналогичные запросы хорошо бегут под 2003 и 2010.

ПРоверил ссылки - все как и в нормально под АССЕСС 2010 работающей программы.

  Ответить  
 
 автор: час   (11.06.2015 в 23:04)   личное сообщение
 
 

получается всё дело в формате поля [tagt] ....
больше ни чего не вижу критического.

  Ответить  
 
 автор: gontik   (12.06.2015 в 15:27)   личное сообщение
 
 

Я пришел к этому выводу тоже. Разница между полями лишь в том, что " LiferTerm" формируется в форме при вводе данных пользователем, а в поле "TagT" дата пересылается вместе с другими параметрами из других баз данных. Внешне "LieferTerm" и "TagT" выглядят одинаково.
Не исключаю, что при пересылке к дате может "прилепиться" мусор, на который А2003 и А2007 не реагируют. А под А2010 контроль гораздо строже. А может я фантазирую.Во всяком случае это сообщение "Undefinierte Function Format ..." в Интернете встречается и на German и в English часто.
Искать и ждать не мог. Сдался. Recordset-ом сформирую табличку и в печать. Может позже вернусь к этой проблеме.
Спасибо Вам и Shanemac51.

  Ответить  
 
 автор: gontik   (13.06.2015 в 10:21)   личное сообщение
 
 

Похоже Shanemac51 прав - дело в ссылках.
По адресу www.donkarl.com FAQ 7.1 Verweise нашел такое:
Для Access 2010
Microsoft Access 14.0 Object Library, а у меня дома 2003, т.е.11.0. При этом у пользователей 2003, 2007 и 2010.
Значит, теряется универсальность. Уже видел у одного пользователя Comp с 2013.
Тупик. Применю Recordset в данном случае. А дальше как у Ходжи Насреддина: или ишак сдохнет или падишах помрет . . .

  Ответить  
 
 автор: shanemac51   (13.06.2015 в 11:56)   личное сообщение
 
 

сделайте обязательными объявления переменных и оттранслируйте
для меня всегда --это шаг номер №1

  Ответить  
 
 автор: gontik   (13.06.2015 в 16:38)   личное сообщение
 
 

Я всегда применяю Option Explicit. A поскольку все программы в mde, трансляция делается автоматически. Если что-либо с переменными не так, mde не формируется. Единственное, что удалось уточнить - "TagT" получают из функции Date, а "LieferTerm" у меня идет из Формы.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList