Здравствуйте, подскажите как решить проблему с ошибкой - "Зарезервированная ошибка (-7711); сообщение для данной ошибки отсутствует." На компьютере стоит Access 2010 profesional plus.
Друзь,салют! Подскажите - голову сломал уже. Имеется запрос, в котором только 3 строки. Например:
321 234 75
Как мне вывести эти значения на поля в форме. С максимальным 321 и минимальным 75 значениями понятно - через функцию Dmax и Dmin соотвественное. А как вывести 234?
В сети по запросу типа "ACCESS MEMO FIELD TRUNCATED 255 SYMBOLS" много информации, но всё не похоже на мой случай. Кто знает, что делать? Описываю проблему:
Подпрограмма в модуле VBA формирует значения и через механизм DAO вставляет строки в заранее созданную таблицу ACCESS. Одно из полей в таблице имеет тип MEMO, переменная в модуле для её заполнения тип STRING (то есть всё больше 255 символов). Для простоты оставляю только одно поле и переменную. Код такого типа
DIM s asstringDIM rst1 as DAO.Recordset
set rst1=currentdb.openrecordset ("Таблица1")
with rst1
dowhile'Тут условие цикла
s="Тут длинное значение больше 255 символов, которое заполняется отдельной функцией"
.addnew
rst1!Поле1=s
.update
loop
.close
endwith
Подпрограмма отрабатывает, но поле Поле1 (напомню, имеет тип Memo) оказывается обрезанным до 255 символов, как будто имеет тип Text. При этом сама по себе s имеет нормальную длину (проверяют по выводу в печать в окно отладки). То есть вывод такой, что сам DAO обрезает строковое значение до 255 символов.
Здравствуйте. Вобщем то вопрос что я делаю не так и можно ли как то сделать. Форма "Серии" (Добавить серию) Поле со списком "год". Не могу настроить сортировку по возрастанию раскрывающегося списка. Сылка на архив с базой: https://yadi.sk/d/GfurIxEr3R2jEX
В Форме есть отчет, при открытии формы в отчете отображаются данные, но если в форме добавить данные в БД, не могу понять как отчет внутри формы обновить? Заранее спасибо!
MSA-97 портабл. 34 мг. все мудвины убиты, весь функционал норм, успешный запуск на всех вменяемых виндах (ну был форшмак с 2008 - ну как-то незаметно) - короче очень приличная карманная десктопина с таблицами, запросами, формами и главное возможностью пользоваться вин-апи. Ну есть печальки конечно (да взять те же контролы которые не контролы а виджеты и слабенькая защита пролем...) - ну а кому это сильно мешало. Жаль что развитие (ну на мой взгляд) после MSA2002 пошло не так и не туда (типа "и начинания вознесшиеся мощно, сворачивая в сторону свой ход, теряют имя действия " - Стругацкие кажется в переводе Пастернака :) ) Но на моей флехе между любимой порнухой от риколли и музоном от МирикалсОфСаунд навечно поселилась папочка с MSA97... ENTER(ну аминь типа).
Понедельник, 25 Декабря 2017 г. 20:10
+ в цитатник
Народ, доброго всем времени суток! Давно не садился уже за АКС, даже не могу сообразить где это на F1 искать. В общем, нужна функция (вызывается при форматировании отчета), которая возвращает размер шрифта в определенном поле. Имя этого поля и имя самого отчета в виде стринга передается в эту функцию при форматировании отчета... Я просто разучился манипулировать объектами Аксесса и написал вот эту ересь:
PublicFunction strTS(nameRPT AsString, nameFLD AsString) AsIntegerDim objRPT As AccessObject
Dim objFLD As AccessObject
Set objRPT = CurrentProject.AllReports(nameRPT)
Set objFLD = objRPT.Controls(nameFLD)
strTS = objFLD.FontSize
Set objRPT = NothingSet objFLD = NothingEndFunction
На строке
Set objFLD = objRPT.Controls(nameFLD)
вылазиет вот это: Object doesn't support this property or method (Error 438)
Понедельник, 25 Декабря 2017 г. 14:03
+ в цитатник
SELECT Клиенты.[Фамилия], SUM (Товары.[Цена товара]*Заявка.[Требуемое количество]) AS Сумма FROM (Заявка INNER JOIN Товары ON Заявка.[Код товара]=Товары.[Код товара]) INNER JOIN Клиенты ON Клиенты.[Код клиента]=Заявка.[Код клиента] GROPE BY Заявка.[Код клиента];
Понедельник, 25 Декабря 2017 г. 12:35
+ в цитатник
Добрый день. Я сама деляю БД торговля. У меня товары имеют несколько цен: для клиентов категории 1 - цены одни, для клиентов категории 2 - цены другие. У меня есть таблица заявка, где выбираю только товар и количество без цены. Какую мне выбрать функцию в запросе (или возможно сразу в отчете), чтобы правильно формировало накладную: количество * на цену 1, если это первая категория клиента и количество * на цену 2, если это категория клиента 2 ?
Есть у меня разделенная форма, источником данных для которой служит достаточно большая прилинкованная с SQL-сервера таблица. На форме есть кнопочки, которыми открываются другие формы. И вот что я обнаружил: если пользователь делает Reqery, то доступ к кнопкам разделенной формы появляется после обновления не всех данных таблицы, а ее части (это известно). И, если пользователь сразу нажимает на кнопку и открывает другую форму, то скачивание данных с сервера прекращается и соответсвующая сессия на SQL-сервере зависает в состоянии SUSPENDED. Это плохо, потому что сессия резервирует под выполнение запроса память и не освобождает ее, пока не выйдет из состояния SUSPENDED. Если таких сессий много (а их много), то память может закончится (ну и другие минусы). Вопрос в том, можно ли как-нибудь от этой ситуации избавиться. Вариант дожидаться конца передачи данных (например, выполнив MoveLast после Requery) не подходит. Тут нужна или какая-то асинхронная передача данных или искуственное прерывание выполнения запроса. В общем, даже не знаю в какую сторону думать. Заранее благодарен за подсказки. Access 2010 accde, SQL 2012
Случайно натолкнулся на две эти статьи/ Одна за 2007 год, другая за 2012. Интересно проследить, как изменился уровень защиты документов и уровень программ по их взлому. Приведу вывод из последней статьи
Выводы Мы рассмотрели четыре программы для подбора паролей к документам MS Office, ссылки на которые можно легко найти в Интернете. Три из этих программ (Accent OFFICE Password Recovery v6.1, Passware Password Recovery Kit 11.1 и Advanced Office Password Recovery 5.4.547) обеспечивают примерно одинаковую производительность при переборе паролей и могут загружать все ядра процессоров, а также задействовать графические процессоры. Данные программы поддерживают одни и те же типы атак и различаются лишь возможностями по их тонкой настройке. Кроме того, эти программы теоретически способны подбирать пароли к документам MS Office всех версий. Программа Office Password Recovery Magic 6.1.1.0290 хоть и платная, но не выдерживает никакой критики и является абсолютно бесполезным продуктом (будем называть вещи своими именами). В качестве итога нашего обзора программ для подбора забытых паролей прокомментируем эффективность рассмотренных утилит. На наш взгляд, подбирать пароли имеет смысл только в том случае, если документы созданы в MS Office 2003 или более ранних версиях. Подбор паролей для документов MS Office 2007/2010 фактически невозможен, несмотря на возросшие скорости перебора. Действительно, даже на самых производительных рабочих станциях с многоядерными процессорами и несколькими графическими картами скорость перебора составляет всего лишь десятки тысяч паролей в секунду. Даже если известно, что максимальная длина пароля не более семи символов и в нем используются только латинские буквы (большие и маленькие) и не применяются ни цифры, ни специальные символы, то количество возможных комбинаций составит 1 048 229 971 204 штук — на перебор всех этих комбинаций при скорости в 10 000 паролей в секунду потребуется почти три года! Если же о пароле неизвестно ничего, то задачу по его подбору можно смело отнести к разряду нерешаемых. Пожалуй, единственная уязвимость в защите документов связана с человеческим фактором. В большинстве случаев пароль — это осмысленное слово, а не произвольный набор символов: так его легче запомнить. А в таком случае подобрать его несложно, поскольку все программы взлома предусматривают атаку по словарю. Кроме того, зачастую о пароле имеется определенная информация, что в некоторых случаях существенно уменьшает количество возможных комбинаций и делает задачу его подбора вполне решаемой. Еысли вы хотите надежно защитить документ, не применяйте в качестве пароля слова. При этом вовсе не обязательно, чтобы пароль был трудно запоминаемым набором символов. Достаточно использовать в качестве пароля не одно слово, а фразу, написанную без пробелов. Еще лучше, когда слово или фраза на русском языке пишется на латинской раскладке клавиатуры. Как выяснилось, ни одна программа не предусматривает подобной модификации словарных слов.
Интересно, а более новые статьи есть? Я что-то не нашел. ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
Меня с самого начала достало окно задания референсов в VBA. То, что оно маленькое - можно пережить. А вот то, что оно часто не высвечивало пути к подключенным/подключаемым библиотекам изрядно бесило. И вот совсем недавно на одном из забугорных сайтов наткнулся на статью, как изменить эти досадные нелепости. К сожалению выложить её не могу из-за её объёма. Адрес страницы, где лежит статья Access-Dialoge hacken Сайт на немецком, но с нынешним машинным переводом это не проблема. (мне лучше - я учил немецкий)
Удачи! И прежде, чем что-то менять, делайте копии!!!
------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
Проблема такая, не выбирает нужные значения (отображает все при любом значении поля)
IIf([Forms]![Данные]![ П_Предмет_договора]="ОС"; -поле предмет равно "ОС" [Оперативные карточки]![ОС] Like ("Есть"); -если ДА то выбрать все данные со значением "Есть" IIf([Forms]![Данные]![ П_Предмет_договора]="ТС"; -если НЕТ , то проверить поле предмет равно "ТС" [Оперативные карточки]![ТС] Like ("Есть"); -если ДА то выбрать все данные со значением "Есть" [Оперативные карточки]![ОС] Like ("Есть") And [Оперативные карточки]![ТС] Like ("Есть"))) -если нет выбрать значения ОС "Есть" и ТС "Есть" Or [Forms]![Данные]![ П_Предмет_договора] Is Null -и когда пусто показывать все поля
Файл mdb и сайт, использующий данные файла, размещены на сервере предприятия. Всё работает, пока не открыть файл с локального компьютера для изменения данных. Во время этого при открытии сайта возникает ошибка. Как исправить?
Просьба подсказать в каком направлении копать если хочу сжать таблицу с ole объектами. В идеале вижу как: изъять объект из ячейки, сжать ее например rar, а потом положить обратно.
Есть форма. В ней таблица (динамический recordset на основе тяжёлого запроса). Каким образом в табличке отметить нужные записи, без обновления запроса? Нагляднее всего ставить галочки, но при этом приходится обновлять весь Recorset, чтобы увидеть эти галочки. И это получается долго. Пока ничего не могу придумать. Хочется быстро поставить галочки в нужные записи.
Блин, в первый такая хрень понадобилась, убил больше часа, работает изящно, без морганий в форме, но мне кажется - можно сделать проще... Я сделал через Like "*" & Функция & "*" плюс сама функция в модуле... На удивление Like "*" & Forms!f1!p1 & "*" не работает в условии запроса если в событии поля Change() делать Requery на список... Чтоб зря время не тратили - там же Refresh на форму работает, но в поле остается только последний введенный символ ну и моргает все, Requery на форму тоже работает как и Refresh, но еще и фокус улетает с поля...
Короче в примере о что наваял, пробуйте типа "молоко", а как проще (без функции и желательно без Refresh) ???