646 / 99 / 11 Регистрация: 08.06.2015 Сообщений: 1,563 |
|
1 |
|
Ошибка #размер!27.08.2017, 12:03. Показов 2660. Ответов 1
Есть форма с подчиненной табличной формой. На подчиненной форме есть поле поле [ОплатаВ] сумируещее столбец подчиненной формы БД. Если записи в подчиненной форме есть то свободное поле на основной форме источником которого является суммируещее поле подчиненной формы Nz([Формы]![Т_Операции]![Оплата].[Form]![ОплатаВ];0) правильно отображает результат, если записей в подчиненной форме нет получаю ошибку #Размер!. Так как сумировать то нечего. Как его обойти ? Добавлено через 22 минуты Решил
1 |
Заблокирован |
||||
27.08.2017, 12:39 |
2 |
|||
Сообщение было отмечено alexpro1979 как решение Решение
если записей в подчиненной форме нет получаю ошибку #Размер!. Так как сумировать то нечего. Как его обойти ? Вот вариантик:
Будет:
2 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.08.2017, 12:39 |
2 |
Вопрос:
У меня есть аномально большая таблица для одного из моих приложений в MS Access. Он насильственно нарушает некоторые правила нормализации, но в остальном это отлично подходит для этого небольшого приложения. Он имеет ~ 100 полей (столбцов). Я прочитал здесь ограничения, но не вижу, где я нарушаю это. Большинство полей являются текстовыми полями и варьируются от нескольких слов до нескольких предложений. Мои вопросы:
-
Есть ли способ получить более описательную ошибку, чем “слишком большая запись”, чтобы я мог определить, как уменьшить ее?
-
Изменит ли мои поля “текст” поля “memo”, уменьшит размер моей записи?
На первый взгляд, из всех потенциально нарушенных спецификаций это : количество символов в записи (исключая поля Memo и OLE Object), когда для свойства UnicodeCompression полей установлено значение Да :: 4000
представляется наиболее вероятным преступником.
-
Было ли это нарушение потенциально “слишком большой” ошибкой времени выполнения (при заполнении формы).
-
Устанавливает ли свойство UnicodeCompression “нет” положительно или отрицательно влияет на производительность?
Лучший ответ:
Поля, вероятно, будут ответом. Правила ограничения записи не включают тип данных memo.
Ответ №1
Кажется, что предел для полей составляет 2000 байт (Memo и OLE не учитываются с этим ограничением). С ~ 100 полями вы, вероятно, будете использовать этот предел.
Решениями являются нормализация таблицы или преобразование некоторых полей в поля Memo.
Ответ №2
Может быть, слишком поздно, но я решил эту проблему, уплотняя/репарацию файла базы данных
У меня есть отчет в Access с тремя полями: Width
, Height
и Area
.
Width
и Height
извлекаются из таблицы, к которой привязан отчет, в то время как Area
должно быть вычислено (высота * ширина). Я установил Control Source
для Area
на = [Height] * [Width]
, но при открытии формы в поле отображается #Type!
, как правило, с описанием ошибок доступа, с хорошим использованием #
и !
, чтобы невозможно было точно погуглить … но я отвлекся. Я понятия не имею, что означает #Type!
, и Access не хочет мне говорить.
Я не могу этого понять. В связанной таблице Height
и Width
являются целыми числами, и оба они заполняются в просматриваемой записи (так что это не проблема NULL
). Если я изменю Control Source
на что-нибудь действительно простое — например, =[Height]
, вместо этого будет выплевывать #Error!
(опять же, спасибо за полезную информацию, Access. Мы » буду без тебя потеряна). Даже = 1
выплевывает #Error!
.
Есть идеи, почему Access ненавидит мои источники управления?
6 ответов
Лучший ответ
Вы, вероятно, столкнулись с конфликтом имен, т. Е. Access выбирает элементы Width
и Height
объекта отчета , а не поля с именем Width
и Height
.
Я бы создал новый запрос и просто переименовал в нем проблемные поля. Итак, если вы используете конструктор запросов:
- добавьте первичный ключ и любое другое непроблемное поле, затем
WidthValue: Width
иHeightValue: Height
в качестве дополнительных столбцов; - наконец, установите в качестве источника записей отчета запрос, а не таблицу напрямую, и соответствующим образом обновите вычисленные формулы управления.
8
StackzOfZtuff
28 Сен 2017 в 11:04
Это довольно упрощенный расчет. Есть ли причина, по которой вы не создаете запрос, не выполняете расчет в указанном запросе и вместо этого привязываете отчет к запросу? Нет смысла убивать себя, пытаясь понять это.
Фактически, теперь, когда я думаю об этом, высота и ширина, вероятно, являются зарезервированными словами, поскольку они являются свойствами элемента управления. Может быть, поменять их на HHeight и WWidth или что-то в этом роде?
3
Johnny Bones
31 Окт 2013 в 19:26
Когда доступ создает отчет, он использует имя поля запросов для создания имени связанного элемента управления в отчете. то, если вы позже используете имена полей запроса, это фактически относится к элементу управления отчетом с тем же именем. Итак, решение, либо переименуйте имя поля отчета в другое имя, отличное от полей запроса, либо полностью укажите имя поля запроса [запрос]. [поле], чтобы принудительно использовать имя поля запроса.
0
user8690222
28 Сен 2017 в 17:15
Microsoft не указывает высоту и ширину как зарезервированные слова, однако они используются при изменении размеров форм и отчетов.
0
topdesk
22 Авг 2018 в 21:23
У меня была проблема, связанная с тем, что моя форма выдавала мне эту ошибку. Изменение ввода данных свойства формы на Да решило эту проблему. Не уверены, что это решит вашу проблему, но, возможно, в свойствах отчета вы найдете соответствующее поле?
0
Seth Reardon
14 Июн 2020 в 09:30
Щелкните правой кнопкой мыши в поле ОБЛАСТЬ и выберите свойства, затем перейдите на вкладку СОБЫТИЕ, затем нажмите «НА ВВОДЕ», выберите из раскрывающегося списка [Процедура события], нажмите на точки справа и перейдите к «ОСНОВНЫЕ ОСНОВЫ MICROSOFT VISUAL FOR APPLICATION» на в этом окне введите этот код над «End Sub»
Площадь = Высота * Ширина
Но обратите внимание, что имя, которое вы вводите в этот код, должно быть доступно в вашей базе данных и так же, как и вы, вещи, которые вводят в строке кода, удачи
-1
javad
9 Окт 2014 в 16:20
I’ve started using Access 2010 recently and started testing some of the new features, namely the Calculated Field datatype.
I had hoped that this was something that based on a formula (expression builder) would remove an amount of data and shrink an ACCDB file because Access only has the formula not actual data.
However, my new version of the file seems to be larger than the original which IMHO makes the feature a bit useless.
I’ve searched the interweb regarding the feature and can only really find people who show how to create one rather than any pros and cons about the feature.
As it stands I’m going to go back to the old method of calculations in a query but before I do I thought I’d ask on StackOverflow just in case anybody has used it.
Gord Thompson
116k32 gold badges211 silver badges411 bronze badges
asked Oct 22, 2013 at 8:33
Access stores the results of calculated fields for each record, so yes, that will increase the size of the database. However your claim that this «makes the feature a bit useless» misses the point:
The primary advantage of using calculated fields is that the calculation (expression) is defined once, at the table level. Once the calculated field has been defined it can simply be used much like any other field in queries, reports, etc..
Sure, you can «go back to the old method of calculations in a query» if that suits your purposes, but it also means that
- You will have to repeat the (same) calculation logic in all of your queries.
- If the calculation logic ever changes then you’ll have to go back and edit all of those queries.
- Every time you run one of those queries it will have to re-do the calculation for every record, instead of simply retrieving the calculated field from the table.
answered Oct 22, 2013 at 11:14
Gord ThompsonGord Thompson
116k32 gold badges211 silver badges411 bronze badges
1
Добрый день. Из-за чего может возникать такая проблема? И как её решить? |
|
Johny Пользователь Сообщений: 2737 |
Попробуйте поменть тип поля на МЕМО. There is no knowledge that is not power |
А сколько полей в записи |
|
Marchuk Пользователь Сообщений: 1167 |
может по индексу не проходит? вроде как предел достигнут? |
Длина строки, которая не помсещается 2352 символа. Другие записи нормально заходят в таблицу. |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#7 28.06.2013 21:05:04 у меня все заливает, покажите как добавляете записи, либо мой пример изучите Прикрепленные файлы
Изменено: R Dmitry — 28.06.2013 21:07:07
|
|
4000, если Число знаков в записи (кроме полей с типом данных «Поле MEMO» и «Поле объекта OLE»), если для свойства Сжатие Юникод полей задано значение Да иначе меньше |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#9 30.06.2013 00:48:53
Я сам — дурнее всякого примера! … |
||
galina mur Пользователь Сообщений: 245 |
#10 30.06.2013 01:15:58 попыталась создать 10 полей по 255====увы
|
||
galina mur Пользователь Сообщений: 245 |
#11 30.06.2013 01:25:24 вот так ввело 10 полей
|
||
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#12 30.06.2013 09:15:18 galina mur,
Вам поможет,
|
|||
QUOTE]R Dmitry пишет: Дмитрий, сейчас запись в базу происходит так: База и код создавались не мной, а мне это осталось как страшное наследие. |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#14 01.07.2013 20:39:47
попробуйте, примерно так таблицы Applications. Изменено: R Dmitry — 01.07.2013 20:40:40
|
|||
Дмитрий, дебагер говорит следующее: rs.Fields(ActiveWorkbook.Sheets(«zapros»).Range(«c1»).Value).Value <В коллекции не удается найти элемент, соответствующий требуемому имени или порядковому номеру.> |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#16 02.07.2013 12:48:07
а это разве не имя поля куда добавляется запись?
|
|||
Да, это именно список полей, куда заливать данные. Он не пустой — проверил по дебагеру, на всякий случай. |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#18 02.07.2013 13:16:33 Список?
|
|
Oren_Spartach Пользователь Сообщений: 64 |
#19 03.07.2013 12:06:49 Не могу победить.
|
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#20 03.07.2013 12:43:33
у меня это было за комментировано, либо замените на
|
|||||
vikttur Пользователь Сообщений: 47199 |
#21 03.07.2013 20:48:50 Oren_Spartach, длинные листинги — или в .txt, или под spoiler. |