powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ. А почему у меня перестало работать...
225 сообщений из 225, показаны все 9 страниц
FAQ. А почему у меня перестало работать...
    #32188804
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...функциия Left/Right
...стало ругаться на Database


и т.п. смысл этих вопросов думаю понятен - ССЫЛКИ НА БИБЛИОТЕКИ
И этот вопрос в факе должно быть на первом месте, и через раз
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188812
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, конечно, ссылки на библиотеки. в аксессе имеются ссылки на библиотеки, а самих библиотек нет. Функции left и right всегда первыми выпадают.

Надо библиотеки ессно доставить.

Только в чем вопрос, я не понял...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188813
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188814
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это не вопрос был, а ответ:-)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188819
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

а я эту ссылку потерял :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188822
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня она в избранном
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188825
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну пардон тогда. Не поняль.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188847
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А еще эти функции не работают в формах и запросах, если в качестве разделителя элементов списка задана точка с запятой, а между параметрами стоит запятая (и т.п.).
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188848
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Санычу

ОК.
Тогда добавим " а раньше работало"
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188850
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А перестало работать при переносе на другой комп/переустановке системы/переходе на другую версию офиса.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188852
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
добавление : проверить национальные настройки - разделители.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188858
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати, в VB иногда не работает Left, потому что VB понимает его как Me.Left. В Аксессе вроде не бывает такого?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188860
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А еще: не работает, если в качестве имени объекта взято служебное слово. Решения (в разных случаях годятся разные из них): переименовать объект; пользоваться полным синтаксисом; не путать Me.Count и Me!Count.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188866
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Санычу

>А еще: не работает, если в качестве имени объекта взято служебное слово

Это в отдельный раздел FAQ - список служ. слов. Хотя он и есть в справке, но почему то про нею (справку) забывают. (или на нею забивают?)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188868
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А вообще, "А почему у меня перестало работать..." - это действительно удачная формулировка. Только надо добавить: "Подборка распространенных граблей". Чтобы поняли, что в этом факе действительно может оказаться ответ.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188869
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
в таком случае нужно сразу отправлять к первоисточникам - грубейшая ошибка. во всех языках описание начинается с этого.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32188870
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> во всех языках описание начинается с этого.

Это про служебные слова? Но в Аксессе это не запрещено. В других языках это вообще ошибка компиляции.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32189087
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вопрос. Ставлю MsgBox - работает. Убираю - не работает.

Ответ. Поставь DoEvents вместо MsgBox.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32191527
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Надо написать про одну психологическую проблему, постигающую многих чайников, да и не чайников тоже. Когда стринг (например, селект) сочиняется в программе, люди путаются в том, чтО входит в стринг, а чтО вносит в него свое значение. Например:

"Like '" & S & "*'"
"Like '" & "S" & "*'"

"Select " & CStr(F) & " As F"
"Select " & "CStr(F)" & " As F"

Самый простой способ распутаться - это поставить breakpoint и посмотреть на полученный стринг глазами.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200187
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что-то мы с Виктором никак этот фак не дотянем... Короче, вот еще ситуевина:

Q.: Expected variable or procedure, not module

A.: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200188
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Что-то мы с Виктором никак этот фак не дотянем.

ээ-эх. Ну не кабаны мы, Саныч, не кабаны
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200193
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Наверно, не всем в этом форуме дано быть кабанами...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200196
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свиньей ты можешь и не быть
Но фак свой дописать обязан!
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200210
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Спасибо, родной.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200219
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С чего начнем, Саныч?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200220
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы... То вы не Самопашные, то вы не Кабаны... А дело то не в ентом! Дело в том, что вы - программеры, а какой программер лубит доки писать? Прааааааальна :)
Я вот не программер, поэтому и кабан

//начинайте с первого варианта текста :) Идеи - в дело!!!
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200239
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кабан дело говорит. Надо сделать первый вариант. Правда, сдается мне, что рано. Надо ишо материал копить. Тема даааалеко не исчерпывается тем, что на данный момент написано в этом топике.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200245
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Ну что, не попал?
- Ах, эх, уф... Ну не то чтобы совсем не попал... В шарик не попал...
(c) Винни и прочие
//так же подвергся волне воспоминаний о счастливом детстве :)

Саныч, имхо, материала достаточно на 2-3 часов работы по сбору его в единую кучу. И вот когда он ляжет здесь целиком, то сразу будет видно чего не хватает. А так... Так лично я не могу своим маленьким пяточкастым умишкой охватить топик на три страницы... Помнишь "ТойлетСит"? Там говорилось о слишком большой нагрузке на нашу "оперативку", поэтому надо материал не для памяти, а для глазок...
Надо (рассуждаю по аналогии с "FAQ: Сжатие БД", который кстати уже висит, и Лох даже успел в него кого-то послать :) сначало раскрыть суть проблемы (что есть блиблиотеки), потом как их подключить вручную и программно... Этого вполне, имхо, хватит для первой версии...

Но все это, конечно, имхо... //отодвигается в сторонку от написания ФАКов :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32200255
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
//демонстративно молчит, ожидая, пока в голову придет ишо какой-нибудь материал.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223533
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Долго ожидал, однако... Вот еще в коллекцию:

Q: Как избавиться от подтверждений на удаление и т.п.?

A1. Ты, наверно, пользуешься DoCmd.RunSQL? Срочно переходи на CurrentDb.Execute (и т.п.).

A2. Иногда советуют поставить DoCmd.SetWarnings False, но это крайне опасно. Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок. В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать сообщения об ошибках до конца работы программы.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223559
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, про SetWarning надо отдельную байду писать
А то так ведь можно и всего Гетца в один фак запихнуть.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223572
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А разве надо что-то добавить кроме того, что я тут написал? Я хочу сделать один фак именно такой - состоящий из мелких вопросов и ответов.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223588
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо, надо...
И почему не надо, и как надо правильно, и как надо через SetWarning если очень хочется (в свое время Сенин Виктор свой кусок кода выкладывал)

один фак именно такой - состоящий из мелких вопросов и ответов.
Если человек ищет ответ на вопрос "Как избавиться от подтверждений на удаление" - он не полезет в фак, озаглавленный "Почему у меня перестало работать"
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223606
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> И почему не надо,

Я написал: В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать сообщения об ошибках до конца работы программы.

> и как надо правильно,

Я написал: Срочно переходи на CurrentDb.Execute (и т.п.).

> и как надо через SetWarning если очень хочется

Я написал: Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок.

Слушай, я написал все то, что ты у меня не прочитал!

> (в свое время Сенин Виктор свой кусок кода выкладывал)

Да, вот он:

Код: plaintext
1.
2.
3.
4.
On Error Goto mis
...
Exit Sub
mis:
DoCmd.SetWarnings True


Кстати, нашел другую формулировку:

Вариант 1. Пользоваться CurrentDb.Execute, а не DoCmd.RunSQL. Тогда, кстати, эта операция будет включена в транзакцию.
Вариант 2. Если DoCmd.SetWarnings False, то обязательно On Error GoTo куда-нибудь, а там DoCmd.SetWarnings True.

> Если человек ищет ответ на вопрос "Как избавиться от подтверждений на удаление" - он не полезет в фак, озаглавленный "Почему у меня перестало работать"

Да, заголовок надо поменять. Например: "Короткие вопросы и ответы".
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223613
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Нашел еще код Виктора Сенина:\r
\r
/topic/36200
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223622
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Как сделать, чтобы форма не закрывалась?

A: В процедуре Form_Unload поставить Cancel = True.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32223662
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать чтобы форма закрылась?
DoCmd.Close acForm, Me.Name



Почему она все равно не закрывается?
Надо убрать Cancel = True из Form_Unload
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32232146
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Короче, спустя полтора месяца выставляю первую версию. Виктор и все-все-все, присоединяйтесь!\r
\r
Q: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.\r
\r
A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References, и там должны быть помечены:\r
\r
(кто-нибудь, помогите добавить список ссылок, которые необходимы)\r
\r
A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).\r
\r
A3: В качестве имени объекта могло случайно оказаться взято служебное слово. Решения: переименовать объект; пользоваться полным синтаксисом (Me!MyControl, а не просто MyControl).\r
\r
Q: Ставлю MsgBox - работает. Убираю - не работает.\r
\r
A: Поставь DoEvents вместо MsgBox.\r
\r
Q: Вылазит сообщение: Expected variable or procedure, not module.\r
\r
A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.\r
\r
Q: Как избавиться от подтверждений на удаление и т.п.?\r
\r
A1: Ты, наверно, пользуешься DoCmd.RunSQL? Срочно переходи на CurrentDb.Execute (и т.п.).\r
\r
A2: Иногда советуют поставить DoCmd.SetWarnings False, но это крайне опасно. Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок. В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать сообщения об ошибках до конца работы программы. Вот пример правильного пользования SetWarnings:\r
\r
/topic/36200
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32232356
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А вот топик, в котором накидано очень много способов, как вылечить испорченный mdb:\r
\r
/topic/40603&pg=1\r
\r
Правда, оказалось, что тот mdb вроде и не был испорчен, однако топик все равно очень полезный.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236491
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Новая версия одного из вопросов.\r
\r
Q: Как избавиться от подтверждений на удаление и т.п.?\r
\r
A1: Ты, наверно, пользуешься DoCmd.RunSQL? Срочно переходи на CurrentDb.Execute (и т.п.). Только надо учесть, что Execute не будет работать, если команда или один из нижележащих запросов содержит обращения к формам, - все эти обращения будут восприняты как параметры, которым не передано значение. Как очень частичное решение этой проблемы можно писать так:\r
\r
Dim q As QueryDef, p As Parameter\r
Set q = CurrentDb.QueryDefs(...)\r
For Each p In q.Parameters\r
p.Value = p.Name\r
Next\r
q.Execute
\r
\r
A2: Иногда советуют поставить DoCmd.SetWarnings False, но это крайне опасно. Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок. В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать сообщения об ошибках до конца работы программы. Вот пример правильного пользования SetWarnings:\r
\r
/topic/36200
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236518
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Санычу

Можно добавить к товему Q мое Q ( (c) Кинд-за-дза :)
Q: Как избавиться от подтверждений на удаление и т.п.?
Q: Я выполняю запрос в коде, а мне в ответ "Too few parameters. Expected Число" ("Слишком мало парметров. Ожидалось Число")

Далее не много можно подредактировать:

Только надо учесть, что Execute не будет работать, если команда или один из нижележащих запросов содержит обращения к формам, - все эти обращения будут восприняты как параметры, которым не передано значение.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'Если все параметры являються сслыками на контролы форм (Forms![ИмяФормы]![ИмяКонтрола]), тогда самое простое (и красивое) решение:
Dim q As QueryDef, p As Parameter 
Set q = CurrentDb.QueryDefs("ИмяЗапрса)  ' как обычного запроса Select так и INSERT/DELETE/UPDATE
For Each p In q.Parameters 
p.Value = p.Name 
Next 
q.Execute 
q.close: set q=Nothing

'Если вместо обращений к формам вы используете собственные парметры (например [Введите начальную дату:], тогда вам нужно задать параметры вручную:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim q As QueryDef, p As Parameter 
Set q = CurrentDb.QueryDefs("ИмяЗапрса)  ' как обычного запроса Select так и INSERT/DELETE/UPDATE

q.Parameters("[Введите начальную дату:]").Value=Cdate(Ваше_значение_парметра)
q.Parameters("[Введите конечную дату:]").Value=cDate(Ваше_значение_парметра)
q.Parameters("[Введите Фамилию:]").Value=Cstr(Ваше_значение_парметра)
'и т.д. пока не переберете все парметры

q.Execute 
q.close: set q=Nothing


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
'Узнать какие параметры от вас хочет Акес можно с помощью следующего кода 

Dim q As QueryDef, p As Parameter 
Set q = CurrentDb.QueryDefs("ИмяЗапрса)  ' как обычного запроса Select так и INSERT/DELETE/UPDATE

For Each p In q.Parameters 
debug.print p.Name 
Next 

q.close: set q=Nothing
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236538
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Два раза ку. :^)

Предлагаю так:

1. Вынести твой Q в отдельный фак (потому что ответ получился очень уж длинный).

2. В моем Q оставить только ссылку на твой фак.

3. Новый фак доработать на все случаи жизни. Помнится, Лох говорил, что то ли инсерт иногда запрашивает параметры, а апдейт в тех же случаях нет, то ли наоборот. И с перекрестными запросами вроде тоже была какая-то особенность на ту же тему.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236563
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никаких особенностей не будет - если использовать параметры. Всегда. Явно. Хороший стиль + уверенность в завтрешнем дне (это из рекламы)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236564
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВС \r
Я за!!!!\r
\r
И ещё такой изврат Polev - Дата: 31 июл 03, 10:37
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236567
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но мы же тут не для того, чтобы всех перевоспитывать. Человек привык обращаться к форме из селекта, ну так не расстреливать же его теперь. Мы ему должны показать, какие бывают подводные камни, а он пусть сам решает, как себя вести.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236574
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Sfagnum:

Копирую сюда.

Application.SetOption "Confirm Record Changes", False
Application.SetOption "Confirm Document Deletions", False
Application.SetOption "Confirm Action Queries", False
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236590
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я про то и говорил что надо его показать
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236599
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч

Зачем cкопировали этот бред?
Глобальные настройки трогать нельзя - я же писал! ( слышиться тихий плач от не понимания )

А если и показать данный пример - то в разделе "Так делать НЕЛЬЗЯ " (кстати тоже хороший раздел фака был бы)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236621
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот и объяснишь почему, а то услышат где на углу и давай внедрять, до SQL.Ru ни х.. не знают...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236629
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Виктор, у меня было предчувствие, что это чем-то нехорошо, но я не знаю, чем именно. Это ведь действует только на данную аппликацию (а не на весь Аксесс) и только у заказчика (который в сам Аксесс не лезет).
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236659
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати: q.close - это лишнее. У QueryDef нет ни Open, ни Close.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236717
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
>Кстати: q.close - это лишнее. У QueryDef нет ни Open, ни Close.

Open нет, а Close есть. Так что ничего лишнего :)

>Это ведь действует только на данную аппликацию (а не на весь Аксесс) и только у заказчика (который в сам Аксесс не лезет).

Действует только на проект. Но, во-первых, сам разработчик может напороться (случайно нажать DEL на таблице, например, - кхе-кхе: сам как-то попался :), да и премудрый оператор - то же, если до Окна дорветься.

2Sfagnum
>Ну вот и объяснишь почему, а то услышат где на углу и давай внедрять, до SQL.Ru ни х.. не знают...

Какой такой угол?
Ты же сслыку сам запостил. ТТам мой пост от "Дата: 31 июл 03, 10:44"?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236763
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Open нет, а Close есть. Так что ничего лишнего :)

Помню, когда наша фирма только начинала работать на Аксессе, мы получали какую-то брошюрку от Майкрософта. Там была статья под заголовком: "Не закрывайте то, чего не открывали!"

Кроме того, вот что написано в хелпе: Closing an open object removes it from the collection to which it's appended. Это ведь не то, что мы хотим?

> Но, во-первых, сам разработчик может напороться

Надо делать так: If DevelopEnvir Then..., где DevelopEnvir - это какая-нибудь функция, которая может, например, обращаться к ini.

> да и премудрый оператор - то же, если до Окна дорветься.

А ему не надо прав давать на уничтожение объектов. А то он и получит MsgBox на подтверждение, и ответит "да".
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32236974
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Виктор, хочу твою реакцию. Надо родить истину.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32237158
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
>Кроме того, вот что написано в хелпе: Closing an open object removes it from the collection to which it's appended. Это ведь не то, что мы хотим?

Все-таки Close есть, сейчас некогда MSDN копать, но если есть Закрыть, то что-то его и открывает. Я думаю: Set q=CurrentDb. Open QueryDefs(...)
Но это все домыслы. Надо MSDN рыть. Хотя надо попробовать сделать Set, затем точку останова и посмотреть на блокировки

>Надо делать так: If DevelopEnvir Then..., где DevelopEnvir - это какая-нибудь функция, которая может, например, обращаться к ini.
>А Оператору не надо прав давать на уничтожение объектов. А то он и получит MsgBox на подтверждение, и ответит "да".

Саныч, все-таки это лишнее - трогать глобальные (для проекта) свойства. Мое (сугобо личное и не обязательно близкое к правде - о как завернул :) - трогать не надо.

>Надо родить истину.

Тут уже не о истине идет речь, а о привычках, стили программирования. Лично мне - не нравиться (так и запишите в протокол )
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32237410
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor писал:2Sfagnum
>Ну вот и объяснишь почему, а то услышат где на углу и давай внедрять, до SQL.Ru ни х.. не знают...

Какой такой угол?
Ты же сслыку сам запостил. ТТам мой пост от "Дата: 31 июл 03, 10:44"?
Нуу.... там больше эмоций нежели обоснований, эти бы довады да по формальнее, и обоснований
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32237936
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Все-таки Close есть, сейчас некогда MSDN копать,

Оно есть, это факт. Но я не понимаю, что оно делает. Неужели удаляет запрос из коллекции QueryDefs?

> но если есть Закрыть, то что-то его и открывает. Я думаю: Set q=CurrentDb.OpenQueryDefs(...)

Ноу, сэр. (Или: Но, но, но, но, сеньор.) QueryDefs - это всего лишь название коллекции, в которой содержатся все запросы. CurrentDb.QueryDefs(...) - это просто такая же ссылка на запрос, как и q. Она ничего не открывает.

> Хотя надо попробовать сделать Set, затем точку останова и посмотреть на блокировки

Какие блокировки???

> все-таки это лишнее - трогать глобальные (для проекта) свойства.

Что значит трогать? Они для того и существуют, чтобы их задавать и конфигурировать. Неужели нельзя задать для данного mdb свою конфигурацию настроек?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238010
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как хотите...

==
попробую покапать глубже
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238021
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это был ответ на который из моих вопросительных знаков? :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238038
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
>Это был ответ на который из моих вопросительных знаков? :^)

На "Они для того и существуют, чтобы их задавать и конфигурировать"
На "Какие блокировки???"
На "это просто такая же ссылка на запрос, как и q. Она ничего не открывает."

:)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238039
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Спасибо.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238044
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда пожалуйста


==
Я еще к этой теме, наверное, вернусь
Разгребу дела, найду время на MSDN и тогда продолжим
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238113
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ОК, тогда пока не будем торопиться с публикацией этого фака.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238175
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч

Ну почему же не публиковать?
Можно - все же верно, а Close/Nothing - это из области наших прошлых (и будующих) сражений по поводу надо ли деладть деинициализацию объектных переменных, если они и так выйдут из области видимости процедуры и уничтожаться VBA)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238216
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Ну почему же не публиковать?

Так ведь нет окончательной формулировки.

> а Close/Nothing - это из области наших прошлых (и будующих) сражений по поводу надо ли деладть деинициализацию объектных переменных, если они и так выйдут из области видимости процедуры и уничтожаться VBA

Деинициализацию делать надо, с этим у меня полное единогласие. Но я не понимаю, что такое Close применительно к QueryDef. Писать его или не писать. Если мы рекомендуем его писать, то нам самим надо понять, что оно делает.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238235
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я сейчас поставил эксперимент.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub tryQ()

Dim q As QueryDef, rs As Recordset

Set q = CurrentDb.QueryDefs( "Query3" )
q.Parameters( 0 ).Value =  1 
Set rs = q.OpenRecordset
Stop

End Sub


Запустил это, дошел до Stop и стал смотреть в Debug Window:

Код: plaintext
1.
2.
3.
?q.Parameters( 0 )
  1  
?rs.Fields( 0 )
  1  


Все ОК. Потом сделал q.Close и снова стал смотреть. И ничего не изменилось! То есть q.Close ничего не делает, даже не стирает значения, присвоенные параметрам запроса, и не уничтожает рекордсет, открытый на запросе.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238249
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(к моему сожалению главного справки по DAO SDK у меня нет - там есть (дложно?) быть более полное освещение

проблемы)


из справки Акеса:
Код: plaintext
1.
2.
3.
4.
Close method:
Closes an open DAO object (DAO object:An object that is defined by the Data Access Objects (DAO) library. You 
can use DAO objects, such as the Database, TableDef, Recordset, and QueryDef objects, to represent objects 
that are used to organize and manipulate data, such as tables and queries, in code.)


Далее идут чудеса ввиду отсуствия упоминания QueryDef :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
The object placeholder is an object variable that represents an open Connection, Database, Recordset, or 
Workspace object.

Remarks

Closing an open object removes it from the collection to which it's appended. Any attempt to close the default 
workspace is ignored.


А теперь и далеее только MSDN:

Есть пример Close который вызываеться после операции Delete
(ms-help://MS.MSDNQTR.2003APR.1033/bapp2000/html/acbachap06.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub AddQuery()
Dim dbsNorthwind As DAO.Database
Dim qdfSalesReps As DAO.QueryDef
Dim rstSalesReps As DAO.Recordset
On Error GoTo ErrorHandler
   Set dbsNorthwind = CurrentDb
   Set qdfSalesReps = dbsNorthwind.CreateQueryDef( "SalesRepQuery" )
   qdfSalesReps.SQL =  "SELECT * FROM Employees WHERE Title = "  & _
                       "'Sales Representative'" 
   Set rstSalesReps = qdfSalesReps.OpenRecordset()
   'Call the function to add a constraint.
   AddQueryFilter rstSalesReps
   'Return database to original.
   dbsNorthwind.QueryDefs.Delete  "SalesRepQuery" 

   rstSalesReps.Close
   qdfSalesReps.Close '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   dbsNorthwind.Close
   Set rstSalesReps = Nothing
   Set qdfSalesReps = Nothing
   Set dbsNorthwind = Nothing
   Exit Sub
ErrorHandler:
   MsgBox  "Error #: "  & Err.Number & vbCrLf & vbCrLf & Err.Description
End Sub


Так же попалась на глаза интересная статья "ACC: Problems Quitting Microsoft Access"
правда, только для 97 акеса (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbaccesskb/accesskb/164455.htm)
Код: plaintext
1.
2.
3.
You have not explicitly closed all DAO recordsets or query definitions in your Microsoft Access database. If 
you are using Visual Basic for Applications code to manipulate recordsets, QueryDefs, or recordset clones (on 
forms), in some cases you must explicitly close the object; otherwise, Microsoft Access does not close.


и пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
   Sub CloseObjects()
      Dim db As Database
      Dim rs As Recordset
      Dim qd As QueryDef
      Set db = CurrentDb
      Set rs = db.OpenRecordset( "Employees" , dbOpenTable)
      Set qd = db.QueryDefs( "Invoices" )
      rs.MoveLast
      MsgBox  "The Employees recordset is open."  & vbcr & _
          "The last Employee ID is "  & rs![EmployeeID] &  "." 
      Msgbox  "The Invoices query definition is open."  & vbcr & _
          "The first field in the query is "  & qd.Fields( 0 ).Name
      ' Explicitly close the Recordset and QueryDef objects.
      rs.Close
      qd.Close
   End Sub


Статья "ACC2000: To Help Prevent Database Bloat, Explicitly Close Recordsets" содержит тот же пример

(...Because the recordset memory is not released, each time that you loop through code, DAO may recompile,

using more memory and increasing the size of the database. ) и те же рекомендации

закрывать.(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbacc2000kb/acc2000kb/209847.htm) и тоже самое для 2002 акеса

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbacc10kb/acc10kb/289562.htm)
И еще одна статья "ACC: Explicitly Close Recordsets to Help Prevent Database Bloat"

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbaccesskb/accesskb/186311.htm) с тем же (блин, микрософтоцы Copy-Paste

освоили идеально :) примером и с тем же советом.

Есть пример с Close после создания нового объекта
"HOWTO: Create a Parameter Query via Data Access Objects"

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbapps/vbapps/142938.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   'Create QueryDef "by date"
   Dim Db As Database
   Dim Qd As QueryDef
   Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")                 ' Old
   Set Db = DBEngine( 0 ).OpenDatabase( "C:\VB4-32 \BIBLIO.MDB") ' New
   Set Qd = Db.CreateQueryDef("By date") 'Create the query  "By date" 
   QdText =  "PARAMETERS dp Short; " 
   QdText = QdText &  "SELECT * from Titles WHERE [Year Published] = dp" 
   Qd.SQL = QdText
   Print Qd.SQL
   Qd.Close


Не много из справки по С++
Код: plaintext
1.
2.
3.
4.
5.
Call this member function when you finish using the querydef object.

Closing the querydef releases the underlying DAO object but does not destroy the saved DAO querydef object or 
the C++ CDaoQueryDef object. This is not the same as CDaoDatabase::DeleteQueryDef, which deletes the querydef 
from the database's QueryDefs collection in DAO (if not a temporary querydef).


И еще один пример "ACC2000: "Too Few Parameters. Expected 1" Error Message"

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbacc2000kb/acc2000kb/209203.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Function ParamQD()

    Dim dbSample As Database
    Dim qdfMyQuery As QueryDef
    Dim rstCountOrders As Recordset
    Dim strSearchName As String

    Set dbSample = CurrentDb()

    Set qdfMyQuery = dbSample.QueryDefs( "qryCustomerOrdersParameter" )
    
    ' Test for a value in the textbox
    If Not IsNull(Forms![frmSearch]![txtCustomerToFind]) Then
    
        ' Set the value of the parameter.
        strSearchName = Forms![frmSearch]![txtCustomerToFind]
        qdfMyQuery![Forms!frmSearch!txtCustomerToFind] = strSearchName

        ' Create the recordset (or dynaset).
        Set rstCountOrders = qdfMyQuery.OpenRecordset()
        If rstCountOrders.RecordCount =  0  Then
            MsgBox  "No records for "  & strSearchName
        Else
            rstCountOrders.MoveLast
            MsgBox rstCountOrders.RecordCount
        End If
        rstCountOrders.Close
    Else
        MsgBox  "Please enter a CustomerId in the textbox" 
    End If
    
    qdfMyQuery.Close
    dbSample.Close
    
End Function


Так же в статье "ACC: "Too few parameters. Expected 1" Error Message"

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kbaccesskb/accesskb/105522.htm) имееться пример с Close QueryDef

В статье "BUG: Parameterized Queries with JET OLE DB Provider May Run Slow" говориться о необходимости

закрывать объект перед его выполнением с новыми парметрами

(ms-help://MS.MSDNQTR.2003APR.1033/enu_kboledb/oledb/252883.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
One of the advantages of using prepared queries is that the query is compiled only once by the Microsoft Jet 
database engine. Further executions are very fast since Jet has already generated an execution plan for the 
query. However, the OLE DB provider for Jet doesn't take advantage of this optimization. Instead, it submits 
the prepared query to be re-compiled each time you re-query. When you use OLE DB, this requery is achieved in 
the following three steps:

 1 .Call IRowset::Close() to close the rowset returned by ICommand::Execute().
 2 .Change the parameter data.
 3 . Call ICommand::Execute() to create a new rowset based on the new parameters provided in step  2 .


Так же при модификации SQL-инструкции вызываеться метод Close (статья "How to Use a Multi-Select List Box to

Filter a Form" (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbapps/vbapps/135546.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
   ' Modify the Query.
   Set DB = CurrentDb()
   Set Q = DB.QueryDefs( "MultiSelect Criteria Example" )
   Q.SQL =  "Select * From Orders Where [CustomerID] In("  & Criteria & _
      ");" 
   Q.Close




Ну и напоследок самое интересное:
В MSDN так же имеется туева-хуча примеров без Close. вот теперь думайте и решайте для себя к5аждый сам.
А я все-таки буду делать Close и Nothing. (Тут заметил что эти 2 слова я уже могу набрать на клаве слепым
методом - так что трудозатраты минимальны)

==
Извиняйте за многословность.

===
и у кого есть DAO SDK - плиз, see Close method.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238250
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а теперь, Саныч, мне нужно твое мнение :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238268
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тоже теперь ставлю, правда еще вслепую не умею набирать.

я считаю из всего сказанного можно сделать вывод

не работает (есть Close, Nothig) - попробуй убрать Close, Nothig
не работает (нет Close, Nothig) - попробуй поставить Close, Nothig
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238277
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну, Виктор, я просто обязан оценить твои трудозатраты...

Ясности немножко появилось, хотя и не до конца. Можно сформулировать так:

Код: plaintext
1.
2.
Close применительно к QueryDef ничего явным образом не делает, но иногда
пропагандируется Майкрософтом просто как средство экономии памяти
(хотя иногда вообще не используется в примерах того же Майкрософта).


Все равно никуда не уйти от сказанного Вадей: ставь Close наобум, а если не работает, то убирай.

Кстати: я в своем эксперименте попробовал делать Close несколько раз подряд. Нифига. Значения параметров сохраняются, рекордсет стоит, как штык.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238288
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Вадя хорошо сформулировал один из основной принципов занятия AcSex'ом


==
Надо в факе дать ссылку по Close на этот топик - пусть каждый решает сам
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238313
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Итак, вот новая версия.\r
\r
Для рассуждений про Close, увы, места не нашлось. От тех кусков кода, в которых это стояло, я оставил только то, что непосредственно является ответом на вопрос. Close был в тех строках, которые, по идее, у задающего вопрос и так уже написаны на момент задания вопроса.\r
\r
В вопросе про параметры запроса я добавил Eval - мне кажется, что это был пропущенный всеми баг.\r
\r
===\r
\r
Q: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.\r
\r
A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References, и там должны быть помечены:\r
\r
Кто-нибудь, помогите добавить список ссылок, которые необходимы.\r
\r
A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).\r
\r
A3: В качестве имени объекта могло случайно оказаться взято служебное слово. Решения: переименовать объект; пользоваться полным синтаксисом (Me!MyControl, а не просто MyControl).\r
\r
Q: Ставлю MsgBox - работает. Убираю - не работает.\r
\r
A: Поставь DoEvents вместо MsgBox.\r
\r
Q: Вылазит сообщение: Expected variable or procedure, not module.\r
\r
A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.\r
\r
Q: Начинается совершенно непонятное поведение mdb.\r
\r
A: Скорее всего файл испортился. Надо попробовать его починить. Вот топик, в котором накидано очень много способов, как вылечить испорченный mdb:\r
\r
/topic/40603\r
\r
(Правда, оказалось, что тот mdb вроде и не был испорчен, однако топик все равно очень полезный.)\r
\r
Q: Как избавиться от подтверждений на удаление и т.п.?\r
\r
A1: Ты, наверно, пользуешься DoCmd.RunSQL? Срочно переходи на CurrentDb.Execute (и т.п.). Только надо учесть, что Execute не будет работать, если команда или один из нижележащих запросов содержит обращения к формам, - все эти обращения будут восприняты как параметры, которым не передано значение. На этот случай см. следующий вопрос на этой же странице.\r
\r
A2: Иногда советуют поставить DoCmd.SetWarnings False, но это крайне опасно. При неаккуратном использовании этой команды Аксесс просто вообще перестанет выдавать сообщения об ошибках. Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок. В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать сообщения об ошибках до конца работы программы. Вот пример правильного пользования SetWarnings:\r
\r
/topic/36200\r
\r
A3: Иногда советуют поменять глобальные настройки аппликации:\r
\r
Код: plaintext
1.
2.
Application.SetOption  "Confirm Record Changes" , False\r
Application.SetOption  "Confirm Document Deletions" , False\r
Application.SetOption  "Confirm Action Queries" , False
\r
\r
Это тоже крайне опасно. Подтверждения исчезнут во всей аппликации насквозь, в том числе там, где это не планировалось. Это можно делать только в том случае, если соблюдены два условия: 1. Пользователь лишен права на удаление тех объектов, которые нужны для нормальной работы программы, и данных через экран. 2. Подтверждения не отключаются, если в аппликации работает сам разработчик.\r
\r
Q: Я выполняю запрос в коде, а мне в ответ - "Too few parameters. Expected Число" ("Слишком мало параметров. Ожидалось Число").\r
\r
A: Если все параметры являются ссылками на контролы форм (Forms![ИмяФормы]![ИмяКонтрола]), тогда самое простое (и красивое) решение (тут и дальше q - переменная типа QueryDef, ссылающаяся на тот запрос, с которым возникла проблема):\r
\r
Код: plaintext
1.
2.
3.
Dim p As Parameter\r
For Each p In q.Parameters\r
    p.Value = Eval(p.Name)\r
Next
\r
\r
Если вместо обращений к формам ты используешь собственные параметры (например [Введите начальную дату:], тогда нужно задать их значения так:\r
\r
Код: plaintext
1.
2.
q.Parameters( "[Введите начальную дату:]" ).Value=...\r
q.Parameters( "[Введите конечную дату:]" ).Value=...\r
q.Parameters( "[Введите фамилию:]" ).Value=...
\r
\r
Узнать, какие параметры от тебя хочет Аксесс, можно с помощью следующего кода:\r
\r
Код: plaintext
1.
2.
3.
Dim p As Parameter\r
For Each p In q.Parameters\r
    Debug.Print p.Name\r
Next 
\r
\r
Вроде бы тут не все охвачено. Помнится, Лох говорил, что то ли инсерт иногда запрашивает параметры, а апдейт в тех же случаях нет, то ли наоборот. И с перекрестными запросами вроде тоже была какая-то особенность на ту же тему.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238593
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде вопросы DoCmd.RunSQL & CurrentDb.Execute & Application.SetOption - решили вынести в отдельный FAQ???
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238690
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Sfagnum:

Где и когда решили? Есть какие-то наработки по этому поводу? Есть ссылка на какой-то топик?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238711
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот блин... кто решил... ссылки ему подавай... нароботки...

Было предложение...

нууу.... не решили до конца

но моё мнение надо в отдельный FAQ
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238724
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dearest Sfagnum,

попробуй, напиши это в отдельном топике, как тебе видится. Тогда будем смотреть.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238728
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я то могу намалевать, но текст то ваш с Виктором...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32238737
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Да я то могу намалевать, но текст то ваш с Виктором...

Малюй, текст не мой, а MSDN. Хотя ошибки - это мое - их не трожь, Усi права захищины :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244420
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
1. Добавляю еще одну пару вопрос-ответ.

Q: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д. Что за безобразие?

A: У одной из открытых форм работает таймер.

2. Люди, помогите восполнить то, что в посте от 16 авг 03, 20:17 выделено красным. Буду очень благодарен!

3. Sfagnum, как дела?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244710
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикидки есть, но их тож надо добавлять...
Сейчас подзавяз в работе, некогда пока, но думаю на следущей неделе смогу время выделить
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244742
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
OK, я 3 числа окончательно вернусь из армии, до этого времени можно не торопиться.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244747
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ;)

Предыдущий ещё не выложили...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244750
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"...когда я окончательно вернусь из армии..." - вещал Владими Саныч из интернета.
Блин, почему я не родился в Израиле?.. :(
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244757
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Geo, зачем тебе рождаться в Израиле? Я тоже не родился. Тебе хочется каждый год ходить в армию?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244762
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В такую, откуда можно сходить домой, и пообщаться в интернете, и поработать - я не против ходить хоть раз в неделю. :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244766
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Так ты и так дома. Армия-то зачем?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244771
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел в виду - вместо нашей, родной армии (ВС РФ). :))
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32244795
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предлагаю продолжить на лестнице. Сейчас там напишу ответ. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245144
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Маленькая просьба - я бы хотел, чтобы этот фак не публиковался до моего возвращения из армии 3 числа. (На правах просьбы, исполнять не обязательно.)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245316
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, наверно, это к тебе. 16 авг 03, 20:17, в двух местах красненьким. А то чавой-то все молчат.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245320
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, чтобы не отвелкать ЛП от пития вотки :)
попробуем разобраться сами

>Кто-нибудь, помогите добавить список ссылок, которые необходимы.

Если честно, то не со всем понятно, что тебе не понятно
Открываем Ссылки и переписываем.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245321
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Их там много, этих ссылок. А отваливается, приводит к обсуждаемым симптомам и порождает F.A.Questions, видимо, какая-то одна.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245322
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и что что много - отваливается обычно DAO. Ибо много приложений считают нужными после собственного удаления утащить на тот свет и ДАО. Хотя причин может быть много.

А отваливаться может куча ссылок, хотя если стоит куча, значит ее кто создал, а если он создал - значит он знал, что делал. Если он знал что делал - тогда он знает что делатб.

Можно в ФАКе написать: записать на бумажку название ссылок начинающихся со слов Missing:... Снять с них галочки - откомпилировать проект. Если проект не компилируеться - разбираться какие ссылки нужны и восстанавливать. Можно спросить на форуме :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245324
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это все понятно. (Кстати, тоже полезные слова, их тоже надо в фак включить.) Но у меня (и у задающих такие вопросы в форуме) бывает в основном одна ситуация. Перестают распознаваться слова типа Mid, Left и т.д. Я привык это лечить подрисовыванием VBA.Mid, VBA.Left и т.д.

Ой, а ведь раз после этого оно начинает работать, значит ссылка не отвалилась... А как еще это лечится и отчего это бывает?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245473
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько себя помню - ни разу не страдал VBA.Left'ами
А вот ссылки на ДАО пропадали (как и само ДАО) - элементарно востанавливалось переустановкой офиса.
==
Сейчас глюк не приятный вылез: офис2000, adp. Подключнена библиотека MS Office 9.0 . Установил VS.Net 2003 c Visio ,а оно поставило библиотеку MS Office 10. И 9.0 библиотека исчезла - приходиться компилить файл ade на чужой машине :( Так на клиентах стоит офис2000 с 9 версией билиотеки
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245476
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставило библиотеку MS Office 10.0...

Действительно, 10.0, а 9.0 пропала :(
Безобразие. И что? Так каждый год?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245477
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соболезную, Geo
Если теперь надо бежать к клиенту с готовым mde/ade не забудь его предупредить, чтобы поставил себе какой нибудь продукт из офиса 2002
или стразу VS.Net :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245482
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor>Сколько себя помню - ни разу не страдал VBA.Left'ами ...

А у меня хоть опыт программирования и маленький, но уже страдал, правда не Left'ami & Right'ami, a Mid'ami. Был у меня в проге такой идентификатор. Долго мучался, пока понял, в чем дело.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245494
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Добавляю.

Q: Почему неправильно работает округление?

A: Существует много методов округления. Функция Round округляет по своим правилам, которые могут отличаться от нужных. Поэтому лучше округлять явным образом, осознавая, что именно делает программа.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245507
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Красненькое номер адын.
Кто-нибудь, помогите добавить список ссылок, которые необходимы
Необходимы все которые используются. При этом все (отмеченные) должны быть корректно установлены на машине.
Если какая-либо из них отстутствует (напр. есть ссылка на библиотеку Outlook, а его самого на машине нихт), то в результате при выполнении запросов может выдаваться ругань на то, что не найдена функция из совсем другой библиотеки. В моей практике чаще всего ругалось на функции из библиотеки собственно аксеса и VBA, такие как Nz, DMax, Date, Left и т.п.

Вроде бы тут не все охвачено. Помнится, Лох говорил, что то ли инсерт иногда запрашивает параметры, а апдейт в тех же случаях нет, то ли наоборот. И с перекрестными запросами вроде тоже была какая-то особенность на ту же тему.
Если в запросе на удаление или в перекрестном запросе используются ссылки на формы (типа Forms!Form1!Control1), то при запуске запроса ручками (из окна базы данных) все ок, а при запуске из VBA-кода ругается на недостаточное количество параметров. Лечиться именно как Саныч прописал
Код: plaintext
1.
2.
3.
Dim p As Parameter
For Each p In q.Parameters
    p.Value = Eval(p.Name)
Next
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245512
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, большой thanx!

А вот тебе еще вопрос (вчера, 00:08). У меня иногда нераспознавание Mid и т.п. лечится подрисовыванием VBA.Mid и т.п. Это значит, что библиотека на месте. А чем это может быть вызвано? И как лечить более гуманными методами? Может, это происходит, когда есть две библиотеки с одинаковыми функциями? И если да, то как зовут вторую, которую надо отрубить?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245515
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя это происходит в обычном коде? Или при использовании этих функций в SQL-запросах?
Если в запросах - то я уже написал, что это может быть из-за того, что отвалилась любая другая библиотека (не обязательно та, которая содержит нужную функцию)
Если в коде - ну хз... Decompile в таких случаях не помогает? В качестве "более гуманного метода"?

Если две библиотеки с одинаково называющимися классами (например ADO и DAO) - то при создании переменной создается объект из той библиотеки, которая стоит выше в списке ссылок. Может, при вызове глобальных функций та же фигня работает... Хз...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32245516
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, я конечно обнаглею, но еще раз свою историю расскажу про Mid...Не было ли у тебя (совершенно случайно) глобальной переменной под названием MID? У меня была и совершенно также как у тебя нераспознавалась стандартная функция.
Еще раз извиняюсь, что мог подумать такое...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32257750
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ой, а тут вопрос ко мне пылится... Не, не было такой переменной. И ведь у меня перестал распознаваться не только Mid, а "Mid и т.п."... :^)

Ща будем готовить этот фак к опубликованию...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265122
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.

A: Поможет f.RecordSource = f.RecordSource.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265163
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может мне пора в психушку, но конструкция вида
Код: plaintext
a=a 
кажется тавтологией, которая везде, кроме Аксесса не имеет смысла.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265170
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В Аксессе такие конструкции нередко помогают.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265219
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может мне пора в психушку, но конструкция вида
a=a
кажется тавтологией, которая везде, кроме Аксесса не имеет смысла.


Неправильно тебе кажется. Такая конструкция имеет смысл если а - это Property Let/Set/Get, и много ли смысла это имеет (и может ли помочь) зависит не от языка, а только от объекта - что именно он делает внутрях Property Let/Set
Пример - св-во Bookmark.
rst.Bookmark = rst.Bookmark позволяет сделать Refresh для текущей записи.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265241
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть ли у Пропети такое пропети, в котором было бы сказано, будет ли при установке этого Пропети с объектом носителем Пропети выполнено Реквайери или не будет?

Ой мароооос, мароос!!!...//подъезжает белая карета, забирает психа...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265246
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже из кареты: "Рефреш...Рефреш..."//завязывают сзади рукава, затыкают рот
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32265325
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Чи я паду, дрючком Property...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32267614
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Отвечаю ссылкой из Виктора Сенина\r
\r
/topic/49217\r
\r
на утверждение Лоха о перекрестных запросах (про запросы на удаление пока не знаю - может, кто подскажет...).\r
\r
А именно: не надо подставлять значения параметров программно, а надо поставить в селекте строку PARAMETERS и включить в нее все ссылки на поля, которые Аксесс воспринимает как параметры.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32267678
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учту про PARAMETERS в др факе
Думаю при CurrentDb.Execute всё равно нада будет програмно указывать
А в DoCmd.RunSQL и так поест...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32267700
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да. Создал запрос на удаление, попробовал Execute, и никакое PARAMETERS не помогло.

Причем получился прикол. В поле, на которое ссылается запрос, я написал 7, а параметру задал значение 10. И оно удалило строку, в которой 10. Этого и следовало ожидать, но все равно прикол. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32267852
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
>Да. Создал запрос на удаление, попробовал Execute, и никакое PARAMETERS не помогло.

И не поможет. Вроде где-то уже на форуме видел объяснение данного "чуда".
Надо строку формировать ручками.
==
Все сказаное касаеться только mdb.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32270943
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Итак, очередная версия.\r
\r
Q: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.\r
\r
A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References.\r
\r
http://www.firststeps.ru/vba/excel/r.php?41 \r
\r
A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).\r
\r
A3: В качестве имени переменной могло случайно оказаться взято служебное слово. Такую переменную желательно переименовать.\r
\r
Q: Ставлю MsgBox - работает. Убираю - не работает.\r
\r
A: Поставь DoEvents вместо MsgBox.\r
\r
Q: Вылазит сообщение: Expected variable or procedure, not module.\r
\r
A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.\r
\r
Q: Начинается совершенно непонятное поведение mdb.\r
\r
A: Скорее всего файл испортился. Надо попробовать его починить. Вот топик, в котором накидано очень много способов, как вылечить испорченный mdb:\r
\r
/topic/40603\r
\r
(Правда, оказалось, что тот mdb вроде и не был испорчен, однако топик все равно очень полезный.)\r
\r
Q: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.\r
\r
A: У одной из открытых форм работает таймер.\r
\r
Q: Почему неправильно работает округление?\r
\r
A: Существует много методов округления. Функция Round округляет по своим правилам, которые могут отличаться от нужных. Поэтому лучше округлять явным образом, осознавая, что именно делает программа.\r
\r
Q: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.\r
\r
A: Поможет f.RecordSource = f.RecordSource.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32270984
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: В Аксессе 2002 кнопка "Создание MDE файла" не активна.

A: Файл mdb создан в формате Аксесса 2000. Его надо преобразовать в формат 2002.

Q: Не удается создать файл mde.

A: Скорее всего есть ошибки компиляции. Попробуй откомпилировать программу.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32271005
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и там же
Q: как откомпилировать программу?

это ж faq все-таки. Я, например, не знаю, как...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32271081
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Из окна модуля Debug -> Compile. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32271090
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, может сюда на англицком статью из MSDN запостить? Про damange databases? Хотя вроде итак все описали, на прямо учебник какой-то :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32271097
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Мне проще - я не читал MSDN.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32271109
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати, вот та ссылка, которая слетает:

Visual Basic for Applications
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32284058
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.

A: Заключи это имя в квадратные скобки.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32284143
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще добавлю проблемку из собственного опыта:

Q: Почему база данных перестала сжиматься (с диагностикой таблица АБВГДТабле already exists)

A: это мягкий вариант порчи базы. Скорее всего ты скопировал базу во время работы пользователей и сделал ее рабочей. Лечение - импорт в новую базу.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32284232
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Еще один вопрос, который что-то слишком часто задают.

Q: Я написал/а программу, а она не работает.

A: Ищи баг. Ставь точки останова, проверяй значения переменных, ну в общем как большой/ая.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32286111
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: На команды с объектом Recordset выдается ошибка о несоответствии типов.

A: Пиши не просто Recordset, а DAO.Recordset.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32288104
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Насчет отвалившихся ссылок - сегодня имел возможность наблюдать явление вживую. Mid и т.п. не распознаются, когда у какой угодно ссылки (вовсе не обязательно VBA) стоит MISSING.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32290649
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну чаво? Отправляем в факи?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291844
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу!
--------------------
Best wishes, Dmitriy
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291849
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не работает событие OnOpen подчиненного отчета.

A: Все его содержимое нужно перенести в OnOpen родительского.

А кто сказал, что тема закрыта, тот не прав. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291853
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык такими темпами сие творение никогда не закончишь
--------------------
Best wishes, Dmitriy
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291856
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда найдется что-то, что здесь не задокументировано. Тем более, что последняя поправка к теме "У меня не работает база", ИМХО, относится непонятно каким боком.
--------------------
Best wishes, Dmitriy
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291858
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кто сказал, что не работает именно вся база? По-моему, тут полно вопросов гораздо более узкого профиля.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291862
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q: У меня не работает база!
A1: Включить компьтер!
A2: Включить монитор!
A3: Проверить, есть ли свет в доме!



--------------------
Best wishes, Dmitriy
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291868
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, отправляй\r
Подправим и добавим пойзже (а это процесс на врядли прекратиться когда-либо)\r
К тому же jungle вроде затеял и факи модернезировать /topic/52797
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291879
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Таки да. Ну ладно. Начинаю готовить к публикации...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291914
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.\r
\r
A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References.\r
\r
http://www.firststeps.ru/vba/excel/r.php?41 \r
\r
В частности, может слететь следующая ссылка:\r
\r
Visual Basic for Applications\r
\r
А вообще, слово MISSING у любой из ссылок может привести к такому эффекту. Надо либо снять птичку у ссылки с MISSING (если эта ссылка не нужна для работы программы), либо перенаправить ее на файл, который действительно существует.\r
\r
A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).\r
\r
A3: В качестве имени переменной могло случайно оказаться взято служебное слово. Такую переменную желательно переименовать.\r
\r
Q: Ставлю MsgBox - работает. Убираю - не работает.\r
\r
A: Поставь DoEvents вместо MsgBox.\r
\r
Q: Вылазит сообщение: Expected variable or procedure, not module.\r
\r
A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.\r
\r
Q: Начинается совершенно непонятное поведение mdb.\r
\r
A: Скорее всего файл испортился. Надо попробовать его починить. Вот топик, в котором накидано очень много способов, как вылечить испорченный mdb:\r
\r
/topic/40603\r
\r
(Правда, оказалось, что тот mdb вроде и не был испорчен, однако топик все равно очень полезный.)\r
\r
Q: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.\r
\r
A: У одной из открытых форм работает таймер.\r
\r
Q: Почему неправильно работает округление?\r
\r
A: Существует много методов округления. Функция Round округляет по своим правилам, которые могут отличаться от нужных. Поэтому лучше округлять явным образом, осознавая, что именно делает программа.\r
\r
Q: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.\r
\r
A: Поможет f.RecordSource = f.RecordSource.\r
\r
Q: В Аксессе 2002 кнопка "Создание MDE файла" не активна.\r
\r
A: Файл mdb создан в формате Аксесса 2000. Его надо преобразовать в формат 2002.\r
\r
Q: Не удается создать файл mde.\r
\r
A: Скорее всего есть ошибки компиляции. Попробуй откомпилировать программу. Из окна модуля Debug -> Compile.\r
\r
Q: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.\r
\r
A: Заключи это имя в квадратные скобки.\r
\r
Q: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).\r
\r
A: Это мягкий вариант порчи базы. Скорее всего ты скопировал базу во время работы пользователей. Лечение - импорт в новую базу.\r
\r
Q: Я написал/а программу, а она не работает.\r
\r
A: Ищи баг. Ставь точки останова, проверяй значения переменных, ну в общем как большой/ая.\r
\r
Q: На команды с объектом Recordset выдается ошибка о несоответствии типов.\r
\r
A: Пиши не просто Recordset, а DAO.Recordset.\r
\r
Q: Не работает событие OnOpen подчиненного отчета.\r
\r
A: Все его содержимое нужно перенести в OnOpen родительского.\r
\r
Виктор, топик-то твой. Что будем с ним делать?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32291955
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да грохнуть его, и дело с концом

Откройте секрет процедуры добавления в ФАК текста, а?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32292687
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, с подчиненным отчетом надо разобраться поподробнее...\r
\r
/topic/53591
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293076
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В общем, поправка.

Q: Не работает событие OnOpen подчиненного отчета.

A: Это бывает в том случае, если в качестве подчиненного отчета поставлена форма. Тогда можно все содержимое OnOpen перенести в какое-нибудь событие родительского отчета, например в OnFormat его Header'а.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293102
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч писал:если в качестве подчиненного отчета поставлена формаСаныч, ну это совсем безобразно

Й: Не работает событие OnAfterUpdate у текстбокса
Ф: Такое бывает если вместо текстбокса используется кнопка. Тогда бывает полезно перенести весь код в рекуклед бин
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293110
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, тебе часто задавали вопросы про формы, внедренные в отчеты? Или ты из FAQ первое слово протерял по дороге?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293115
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч\r
>Виктор, топик-то твой. Что будем с ним делать?\r
\r
Продовать \r
\r
==\r
Если искать хозяина топика - тогда надо спрашивать разрешенияjudge\r
]тут\r
\r
\r
===\r
Был бы ты, Саныч, модератором - попросил тебя после прочтения грохнуть этот топик :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293298
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох:

:^))) Так. Блин. Совсем я плох стал... Ладно, отсмеялся, теперь попробую ответить, что же я имел в виду.

Вопрос о том, что не работает OnOpen подчиненного отчета, задавался несколько раз. Это я помню точно. Я регулярно отвечал, что код надо перенести в родительский отчет, и вопрошающие уходили довольными. Однако сегодня я решил это дело проверить сам и обнаружил, что все работает. Спрашивается вопрос: а чего же у них-то не работало? А параллельно оказалось, что некоторые ставят форму в SourceObject подчиненного отчета, причем именно тогда-то и не срабатывает OnOpen. Так что ответ получился вполне в стиле ответов для чайников: это у тебя не отчет, а форма.

(Помню, я когда-то был на курсах, где изучалась израильская СУБД Мэджик. Требовалось написать команду, в которую входил знак доллара. И вот у меня эта команда почему-то все никак не работала. Я подозвал препода, а тот глянул на мою программу и с перепугу заорал по-русски: "Это нье доллар!" Оказалось, что я упорно набирал амперсанд. Ну так и тут та же ситуация.)

А теперь совсем серьезно. Может, действительно при каких-то обстоятельствах OnOpen не срабатывает именно у подчиненного отчета?

2 Виктор:

А зачем грохать-то? Неужто так плохо? То-то я смотрю, ты в нем не участвуешь...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293451
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч - ты все напутал: грохать Темный прелагал, а я продавать :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293453
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И ты тоже предлагал грохать, причем в том же посте. И не говори, что эти слова я тебе подрисовал. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293471
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, Саныч, я имел ввиду грохнуть пост (топик с постом путаю регулярно - прошу не пинать, а потихоньку привыкать! :)
Грохать ФАК я не собирался, хоть мало, но все же в нем по участвовал
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32293477
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял. Не, не буду грохать. Потому что если убрать одну реплику из диалога, то тот, кто потом будет читать, не поймет ни хрена.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32294501
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> OnOpen не срабатывает именно у подчиненного отчета?
У меня в XP sp 2 у подчиненного отчета OnOpen не отрабатывается.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32294567
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял, thanx. Не, ну тогда ваще маразм - получается, что оно перестает работать при переходе на другую версию...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32296578
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Короче, правильная версия последней пары вопрос-ответ:

Q: Не работает событие OnOpen подчиненного отчета.

A: Можно все содержимое OnOpen перенести в какое-нибудь событие родительского отчета, например в OnFormat его Header'а.

Что-то похоже на анекдот про "Стоит статУя в лучах заката"...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32297150
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу...
Стоит лопата в лучах заката
Статуя просто ушла куда-то :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301473
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: При импорте из Экселя тип данных распознается неправильно.

A: Самое быстрое: добавить в Экселе первую строчку с данными правильного типа, произвести импорт, а потом эту лишнюю строчку стереть.

Спасибо, Daf!
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301494
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, этот священный талмуд когда-нибудь закончится? Или еще одна лестница вырастет на месте этого фака?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301501
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Как только перестанет расти, так отправим. Но пока растет. Хотя и медленно.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301505
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, когда перестанет расти - он гнить начнет
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301526
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, ты это о чем?.. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32301712
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не работает обращение к процедуре, которое я пишу так:

MySub (x, y) - тут выдается ошибка компиляции
MySub (x) - тут почему-то параметр передается по значению, а не по ссылке

A: Правильный синтаксис выглядит так:

Call MySub(x, y)
MySub x, y
a = MyFun(x, y)

Все скобки кроме этих воспринимаются как часть самого параметра.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32304979
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

A: Свойство Text доступно только тогда, когда этот текстбокс или комбобокс находится в фокусе. Чтобы программа работала всегда, надо пользоваться не свойством Text, а:

у текстбокса - свойством Value (которое является свойством по умолчанию, следовательно можно вообще это слово опустить вместе с предшествующей точкой);

у комбобокса - свойством Column(номерколонки).
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32312505
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Я так расставил галки в настройках аппликации, что мне теперь самому не добраться до меню Аксесса.

A: Открой пустой Аксесс, а потом внутри него открой свою аппликацию, придерживая клавишу Shift.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32317694
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Аксесс переворачивает даты, меняет местами день и месяц.

A: Значит, дата была записана в строковой переменной (вариант: использована строковая функция Date$). Строка, содержащая даты, интерпретируется Аксессом на основании нескольких правил, в которые входят синтаксис команд SQL (где нужно писать #MM/DD/YY#) и региональные настройки Windows. Надо знать, где и как это работает, а при возможности избегать записи дат в строках. Во многих случаях помогает функция DateSerial.

Q: Аксесс не признает два равных числа как равные.

A: Проверка на равенство допускается только для целочисленных типов данных (в которые входит и тип Currency, который хранится в памяти как целое число сотых). Типы с дробной частью (кроме Currency) хранятся приблизительно, и даже если визуально два числа кажутся равными, их внутреннее представление может отличаться. Для таких чисел надо проверять не A=B, а Abs(A-B)<eps, где eps - какое-нибудь достаточно малое число. Внимание: важно, какого типа данные, а не как задан формат для их отображения в таблице или форме.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32326389
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Еще ссылки на топики со способами починки испорченных баз:\r
\r
/topic/59188\r
/topic/56723
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32327503
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не могу настроить комбобокс.

A: Вот простейший случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
RowSourceType = Table/Query
RowSource = select a, b from t
    - где сначала названо поле с кодом (которое будет заноситься в таблицу),
    а потом поле с текстом (которое будет показываться)
BoundColumn =  1 
LimitToList = Yes
ColumnCount =  2 
ColumnWidths =  0 ; 3 
    - главное, чтобы у первой колонки ширина была  0 
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329704
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
А у меня вот какая фишка:
Программа ругается на "мирную" ф-цию Nz. Мол, что она "неопределённая".
Все ссылки на месте.
Помогает сжатие базы, но хотелось бы знать первопричину.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329841
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Все ссылки на месте.

Возможно, что одна ссылка числится на месте, но на компе соответствующая вещь не установлена. Если эту ссылку отменить, то все заработает. Возможно, сжатие именно это и делает.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329866
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня тут такой глюк обнаружился.

Выпадает с ошибкой функция Replace:
strSum = Replace(strSum, ",", "")

Причем что непонятно, то работает, то не работает, но когда не работает, то не работает вообще никак:
и так не работает:
Dim s as String

s = String.Replace("dddfdfd", "f", "g")

Причем с базой ничего не делают, но иногда откываешь - работают, а другой раз - нифига.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329870
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, совсем забыл, ошибка возникает одна из самых дурацких:

Run-time error: '5'
Invalid procedure call or argument

бред какой-то, какие еще данные ей не нравиться.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329882
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и еще, остальные функции типа Left, Right и т.д. из String работают как часы.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329897
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если указать все аргументы функции?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32329899
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Поправка к 1 ноя 03, 12:01:

Если есть пароль, то держать Shift надо после ввода пароля в момент нажатия на Enter (или кнопку OK).
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32330004
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Victor: прикольно, но сработало.
s = Replace("khkhh", "k", "d", , , vbBinaryCompare)

Не хочет работать именно бех последнего аргумента - compare
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32345486
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q DoCmd.OutputTo acOutputReport, "Заявки", acFormatSNP
Выдаётся ошибка, что выбранный формат недоступен.

A Вместо константы acFormatSNP = "Snapshot Format (*.snp)" использовать "Snapshot Format"
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32347074
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

A1: Возможно, Аксессу не нравится то, что написано в одном из свойств, описывающих события.

A2: Возможно, отлетела какая-нибудь ссылка.

A3: Возможно, один из контролов или одна из секций формы содержит в своем имени символы национального алфавита, которые не поддерживаются текущей версией Аксесса или Windows.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32351839
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Продолжение про комбобокс.

А не через таблицу - отличия следующие:

Код: plaintext
1.
RowSourceType = Value List
RowSource =  1 ;one; 2 ;two; 3 ;three
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32351840
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2BC
RowSourceType = "Value List"
RowSource = "1;""one"";2;""two"";3;""three"""
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32351845
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я имел в виду те значения, которые визуально выбираются в окне свойств. :^)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32351860
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВС
Тогда
RowSource = 1;"one";2;"two";3;"three"
:)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32371887
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Все, последняя версия. Отдаю в факи.

Q: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.

A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References.

http://www.firststeps.ru/vba/excel/r.php?41

В частности, может слететь следующая ссылка:

Visual Basic for Applications

А вообще, слово MISSING у любой из ссылок может привести к такому эффекту. Надо либо снять птичку у ссылки с MISSING (если эта ссылка не нужна для работы программы), либо перенаправить ее на файл, который действительно существует.

A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).

A3: В качестве имени переменной могло случайно оказаться взято служебное слово. Такую переменную желательно переименовать.

Q: Ставлю MsgBox - работает. Убираю - не работает.

A: Поставь DoEvents вместо MsgBox.

Q: Вылазит сообщение: Expected variable or procedure, not module.

A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.

Q: Начинается совершенно непонятное поведение mdb.

A: Скорее всего файл испортился. Надо попробовать его починить. Много способов починки можно увидеть, если запустить поиск по форуму на слово JetComp.

Q: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.

A: У одной из открытых форм работает таймер.

Q: Почему неправильно работает округление?

A: Существует много методов округления. Функция Round округляет по своим правилам, которые могут отличаться от нужных. Поэтому лучше округлять явным образом, осознавая, что именно делает программа.

Q: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.

A: Поможет f.RecordSource = f.RecordSource.

Q: В Аксессе 2002 кнопка "Создание MDE файла" не активна.

A: Файл mdb создан в формате Аксесса 2000. Его надо преобразовать в формат 2002.

Q: Не удается создать файл mde.

A: Скорее всего есть ошибки компиляции. Попробуй откомпилировать программу. Из окна модуля Debug -> Compile.

Q: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.

A: Заключи это имя в квадратные скобки.

Q: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).

A: Это мягкий вариант порчи базы. Скорее всего ты скопировал базу во время работы пользователей. Лечение - импорт в новую базу.

Q: Я написал/а программу, а она не работает.

A: Ищи баг. Ставь точки останова, проверяй значения переменных, ну в общем как большой/ая.

Q: На команды с объектом Recordset выдается ошибка о несоответствии типов.

A: Пиши не просто Recordset, а DAO.Recordset.

Q: Не работает событие OnOpen подчиненного отчета.

A: Можно все содержимое OnOpen перенести в какое-нибудь событие родительского отчета, например в OnFormat его Header'а.

Q: При импорте из Экселя тип данных распознается неправильно.

A: Самое быстрое: добавить в Экселе первую строчку с данными правильного типа, произвести импорт, а потом эту лишнюю строчку стереть.

Q: Не работает обращение к процедуре, которое я пишу так:

MySub (x, y) - тут выдается ошибка компиляции
MySub (x) - тут почему-то параметр передается по значению, а не по ссылке

A: Правильный синтаксис выглядит так:

Call MySub(x, y)
MySub x, y
a = MyFun(x, y)

Все скобки кроме этих воспринимаются как часть самого параметра.

Q: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

A: Свойство Text доступно только тогда, когда этот текстбокс или комбобокс находится в фокусе. Чтобы программа работала всегда, надо пользоваться не свойством Text, а:

у текстбокса - свойством Value (которое является свойством по умолчанию, следовательно можно вообще это слово опустить вместе с предшествующей точкой);

у комбобокса - свойством Column(номерколонки).

Q: Я так расставил галки в настройках аппликации, что мне теперь самому не добраться до меню Аксесса.

A: Открой пустой Аксесс, а потом внутри него открой свою аппликацию, придерживая клавишу Shift. Если есть пароль, то держать Shift надо после ввода пароля в момент нажатия на Enter (или кнопку OK).

Q: Аксесс переворачивает даты, меняет местами день и месяц.

A: Значит, дата была записана в строковой переменной (вариант: использована строковая функция Date$). Строка, содержащая даты, интерпретируется Аксессом на основании нескольких правил, в которые входят синтаксис команд SQL (где нужно писать #MM/DD/YY#) и региональные настройки Windows. Надо знать, где и как это работает, а при возможности избегать записи дат в строках. Во многих случаях помогает функция DateSerial.

Q: Аксесс не признает два равных числа как равные.

A: Проверка на равенство допускается только для целочисленных типов данных (в которые входит и тип Currency, который хранится в памяти как целое число сотых). Типы с дробной частью (кроме Currency) хранятся приблизительно, и даже если визуально два числа кажутся равными, их внутреннее представление может отличаться. Для таких чисел надо проверять не A=B, а Abs(A-B)<eps, где eps - какое-нибудь достаточно малое число. Внимание: важно, какого типа данные, а не как задан формат для их отображения в таблице или форме.

Q: Не могу настроить комбобокс.

A: Вот простейший случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
RowSourceType = Table/Query
RowSource = select a, b from t
    - где сначала названо поле с кодом (которое будет заноситься в таблицу),
    а потом поле с текстом (которое будет показываться)
BoundColumn =  1 
LimitToList = Yes
ColumnCount =  2 
ColumnWidths =  0 ; 3 
    - главное, чтобы у первой колонки ширина была  0 

А не через таблицу - отличия следующие:

Код: plaintext
1.
2.
RowSourceType = Value List
RowSource =  1 ; "one" ; 2 ; "two" ; 3 ; "three" 

Q: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

A1: Возможно, Аксессу не нравится то, что написано в одном из свойств, описывающих события.

A2: Возможно, отлетела какая-нибудь ссылка.

A3: Возможно, один из контролов или одна из секций формы содержит в своем имени символы национального алфавита, которые не поддерживаются текущей версией Аксесса или Windows.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32371959
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВС
Только выдели, пожалуйста,

Q: Текст вопроса

А: жирным шрифтом, а то вопросы между собой сливаются.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32371972
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, сделаю. И еще сделаю список вопросов в начале. И пронумерую их.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32371991
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Обработчик события KeyDown берет старые значения полей.

A: Вместо KeyDown используй KeyUp.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32371998
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эххх

Q: На некоторых машинах обработчик события ListBox_OnAfterUpdate берет старые значения ListBox.Column(...)
A: Ы?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32372000
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох 14 октября писал:Или ты из FAQ первое слово протерял по дороге?
А если серьезно, то предлагаю это обсудить в отдельном топике.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32372227
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не могу заставить форму всегда открываться в режиме Maximized (вариант: Restored).

A: Для Restored можно задать свойство PopUp=True. Для Maximized сложнее:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Form_Activate()
DoCmd.Maximize
End Sub
Private Sub Form_Deactivate()
DoCmd.Restore
End Sub
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32380583
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Про импорт из Экселя отбой, это не работает. Зато:

Q: Команда SQL не видит переменных.

A1: Зато видит функции. Можно сделать функцию, которая будет возвращать значение переменной.

A2: Можно формировать команду SQL программно и вставлять туда значения переменных как константы. Подробнее: http://www.sql.ru/faq/faq_topic.aspx?fid=157
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32386907
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: В перекрестном запросе не удается соблюсти постоянный порядок и количество столбцов.

A: Добавь в конец селекта запроса in ("two","three","one"), где в скобках перечислены столбцы в нужном порядке.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32394684
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не работает запрос с двумя джойнами:
select * from A left join B on A.A=B.B left join C on A.A=C.C

A: В Аксессе надо в таких запросах ставить скобки:
select * from ( A left join B on A.A=B.B ) left join C on A.A=C.C
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32402751
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не работают параметры командной строки, напр. /excl и т.д.

A: Командная строка должна начинаться с ...msaccess.exe, и только потом название файла и все параметры. Без msaccess.exe эти параметры никому не нужны.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32404882
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не работает проверка на равенство/неравенство.

A: Если одно из сравниваемых значений Null, то любое выражение с ним вернет Null (который приравнивается к False). Чтобы этого избежать, можно пользоваться функцией IsNull, которая в соответствующем случае возвращает True.

P.S. Этот вопрос можно соединить с вопросом про проверку равенства нецелых чисел.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32437524
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обнаружил следующий баг.

Сделал у себя в проекте стартовую форму всплывающей и развернул на все окно. Достаточно красиво смотрится и юзер лишних менюшек не видит ;-)
В связи с этим все формы и отчеты так же пришлось сделать всплывающими, а некоторые и модальными.
И вдруг (я честно говоря сразу не врубился в причину - случайно обнаружил) после печати отчета на принтере, Акцесс стал вываливаться с сообщением "Обнаружена ошибка..." и предлагать отправить репорт сами знаете куда...
Декомпайлил, переставлял офис, создавал новый проект (ADP, кстати) и импортировал все из старого - по барабану :((
Создал новый отчет и перетягивал туда кусочками из старого. Начало работать - я решил что какой то глюк отчета. Все нормально, собираюсь уходить и вдруг обнаруживаю, что я забыл отчет сделать всплывающим (я его и для предпросмотра использую). Исправляю "ошибку" и что за чудо - опять после печати вываливаемся :((

Короче, сделал я для предпросмотра всплывающий отчет, а для печати обычный и теперь все работает на ура.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32449474
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: У меня есть логическое поле. Хочу выдать записи, в которых оно отмечено. Пишу в запросе:
WHERE этополе=1
- и запрос не работает.

A: Логическое True - это не 1, а -1. (Кстати, если просто написать WHERE этополе, то тоже будет работать, причем если поле не логическое, то будут выданы все записи, где значение этого поля не 0.)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32449816
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Составляю условие WHERE (или любую другую часть селекта, или селект полностью, и вообще любую команду SQL) как стринг, собирая его/ее из значений переменных, контролов и т.д. Не работает.

A: Первым делом остановись в дебаггере и посмотри на полученный стринг. Если и после этого не станет ясно, что не так, то попробуй запустить его как сохраненный запрос.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32476778
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: У меня переменная X имеет значение Null. Но я пишу If X = Null Then и получаю False.

A: Любое выражение, включающее в себя Null, дает Null. При преобразовании к логическому типу Null превращается в False. Чтобы проверить переменную на Null, надо писать If IsNull(X) Then.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32476955
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не любое поле, включающее Null, дает Null. Пример:

"x" & Null & "y"

даст

"xy"
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32477483
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Согласен. Только это не "не любое поле", а "не любая операция". Операция & действительно работает иначе. Если A - значение, которое может быть либо строкой, либо Null'ом (например, поле строкового типа), то:

A + "zzz" -> если в A сидит Null, то получится Null
A & "zzz" -> если в A сидит Null, то получится "zzz"

На этом основан следующий трюк:

(A + ",") & (B + ",") & (C + ",")

Если какое-то из значений A, B, C равно Null, то вся соответствующая скобка даст Null и соответствующая запятая будет уничтожена, а затем соединение через & возьмет только те слагаемые, где не Null.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32487094
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Q: Не могу сделать контролу Visible=False (варианты: Enabled=False, Locked=True). Аксесс говорит, что на этом контроле фокус.

A: Значит надо сначала перевести фокус на другой контрол:

c.SetFocus

Если нет контрола, который заведомо в любой ситуации сможет принять фокус, то его можно создать: либо CommandButton со свойством Transparent=True, либо OptionGroup со свойством BorderStyle=Transparent. Юзер его не заметит.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32492936
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Новый вариант вопроса/ответа про перевернутые даты.

Q: Аксесс переворачивает даты, меняет местами день и месяц. Вариант: неверно срабатывают вычисления или проверки, связанные с датами.

A: Возможно, дата была записана в строковой переменной (вариант: использована строковая функция Date$ либо текстбокс, не привязанный к полю типа Date/Time). Строка, содержащая даты, интерпретируется Аксессом на основании нескольких правил, в которые входят синтаксис команд SQL (где нужно писать #MM/DD/YY#) и региональные настройки Windows. Надо знать, где и как это работает, а при возможности избегать записи дат в строках. Во многих случаях помогает функция DateSerial.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504837
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Самый-самый последний вариант.

Вопросы.

Q1: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.

Q2: Ставлю MsgBox - работает. Убираю - не работает.

Q3: Вылазит сообщение: Expected variable or procedure, not module.

Q4: Начинается совершенно непонятное поведение mdb.

Q5: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.

Q6: Почему неправильно работает округление?

Q7: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.

Q8: В Аксессе 2002 кнопка "Создание MDE файла" не активна.

Q9: Не удается создать файл mde.

Q10: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.

Q11: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).

Q12: Я написал/а программу, а она не работает.

Q13: На команды с объектом Recordset выдается ошибка о несоответствии типов.

Q14: Не работает событие OnOpen подчиненного отчета.

Q15: Не работает обращение к процедуре, которое я пишу так:
MySub (x, y) - тут выдается ошибка компиляции
MySub (x) - тут почему-то параметр передается по значению, а не по ссылке

Q16: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

Q17: Я так расставил галки в настройках аппликации, что мне теперь самому не добраться до меню Аксесса.

Q18: Аксесс переворачивает даты, меняет местами день и месяц. Вариант: неверно срабатывают вычисления или проверки, связанные с датами.

Q19: Не работает проверка на равенство/неравенство.

Q20: Не могу настроить комбобокс.

Q21: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

Q22: Обработчик события KeyDown берет старые значения полей.

Q23: Не могу заставить форму всегда открываться в режиме Maximized (вариант: Restored).

Q24: Команда SQL не видит переменных.

Q25: В перекрестном запросе не удается соблюсти постоянный порядок и количество столбцов.

Q26: Не работает запрос с двумя джойнами:
select * from A left join B on A.A=B.B left join C on A.A=C.C

Q27: Не работают параметры командной строки, напр. /excl и т.д.

Q28: У меня есть логическое поле. Хочу выдать записи, в которых оно отмечено. Пишу в запросе:
WHERE этополе=1
- и запрос не работает.

Q29: Составляю условие WHERE (или любую другую часть селекта, или селект полностью, и вообще любую команду SQL) как стринг, собирая его/ее из значений переменных, контролов и т.д. Не работает.

Q30: Не могу сделать контролу Visible=False (варианты: Enabled=False, Locked=True). Аксесс говорит, что на этом контроле фокус.

Вопросы с ответами.

Q1: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.

A1: Проверь, не слетели ли ссылки. Из окна открытого модуля Tools -> References.

http://www.firststeps.ru/vba/excel/r.php?41

В частности, может слететь следующая ссылка:

Visual Basic for Applications

А вообще, слово MISSING у любой из ссылок может привести к такому эффекту. Надо либо снять птичку у ссылки с MISSING (если эта ссылка не нужна для работы программы), либо перенаправить ее на файл, который действительно существует.

A2: Если в региональных настройках Windows в качестве разделителя списков задана не запятая, а, скажем, точка с запятой, то при обращении к функциям надо ставить между аргументами именно этот разделитель (если обращение находится в запросе, в свойствах контрола и т.п., а не в модуле).

A3: В качестве имени переменной могло случайно оказаться взято служебное слово. Такую переменную желательно переименовать.

Q2: Ставлю MsgBox - работает. Убираю - не работает.

A: Поставь DoEvents вместо MsgBox.

Q3: Вылазит сообщение: Expected variable or procedure, not module.

A: Начиная с Access 95, запрещено давать модулям имена, совпадающие с названиями переменных и процедур, а также со служебными словами. Если при компиляции появилось такое сообщение - значит, среди модулей попался такой, имя которого совпадает с чем-то в той строке, на которую Аксесс кричит. Его надо переименовать.

Q4: Начинается совершенно непонятное поведение mdb.

A: Скорее всего файл испортился. Надо попробовать его починить. Много способов починки можно увидеть, если запустить поиск по форуму на слово JetComp.

Q5: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.

A: У одной из открытых форм работает таймер.

Q6: Почему неправильно работает округление?

A: Существует много методов округления. Функция Round округляет по своим правилам, которые могут отличаться от нужных. Поэтому лучше округлять явным образом, осознавая, что именно делает программа.

Q7: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.

A: Поможет f.RecordSource = f.RecordSource.

Q8: В Аксессе 2002 кнопка "Создание MDE файла" не активна.

A: Файл mdb создан в формате Аксесса 2000. Его надо преобразовать в формат 2002.

Q9: Не удается создать файл mde.

A: Скорее всего есть ошибки компиляции. Попробуй откомпилировать программу. Из окна модуля Debug -> Compile.

Q10: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.

A: Заключи это имя в квадратные скобки.

Q11: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).

A: Это мягкий вариант порчи базы. Скорее всего ты скопировал базу во время работы пользователей. Лечение - импорт в новую базу.

Q12: Я написал/а программу, а она не работает.

A: Ищи баг. Ставь точки останова, проверяй значения переменных, ну в общем как большой/ая.

Q13: На команды с объектом Recordset выдается ошибка о несоответствии типов.

A: Пиши не просто Recordset, а DAO.Recordset.

Q14: Не работает событие OnOpen подчиненного отчета.

A: Можно все содержимое OnOpen перенести в какое-нибудь событие родительского отчета, например в OnFormat его Header'а.

Q15: Не работает обращение к процедуре, которое я пишу так:
MySub (x, y) - тут выдается ошибка компиляции
MySub (x) - тут почему-то параметр передается по значению, а не по ссылке


A: Правильный синтаксис выглядит так:

Call MySub(x, y)
MySub x, y
a = MyFun(x, y)

Все скобки кроме этих воспринимаются как часть самого параметра.

Q16: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

A: Свойство Text доступно только тогда, когда этот текстбокс или комбобокс находится в фокусе. Чтобы программа работала всегда, надо пользоваться не свойством Text, а:

у текстбокса - свойством Value (которое является свойством по умолчанию, следовательно можно вообще это слово опустить вместе с предшествующей точкой);

у комбобокса - свойством Column(номерколонки).

Q17: Я так расставил галки в настройках аппликации, что мне теперь самому не добраться до меню Аксесса.

A: Открой пустой Аксесс, а потом внутри него открой свою аппликацию, придерживая клавишу Shift. Если есть пароль, то держать Shift надо после ввода пароля в момент нажатия на Enter (или кнопку OK).

Q18: Аксесс переворачивает даты, меняет местами день и месяц. Вариант: неверно срабатывают вычисления или проверки, связанные с датами.

A: Возможно, дата была записана в строковой переменной (вариант: использована строковая функция Date$ либо текстбокс, не привязанный к полю типа Date/Time). Строка, содержащая даты, интерпретируется Аксессом на основании нескольких правил, в которые входят синтаксис команд SQL (где нужно писать #MM/DD/YY#) и региональные настройки Windows. Надо знать, где и как это работает, а при возможности избегать записи дат в строках. Во многих случаях помогает функция DateSerial.

Q19: Не работает проверка на равенство/неравенство.

A1: Проверка на равенство допускается только для целочисленных типов данных (в которые входит и тип Currency, который хранится в памяти как целое число сотых). Типы с дробной частью (кроме Currency) хранятся приблизительно, и даже если визуально два числа кажутся равными, их внутреннее представление может отличаться. Для таких чисел надо проверять не A=B, а Abs(A-B)<eps, где eps - какое-нибудь достаточно малое число. Внимание: важно, какого типа данные, а не как задан формат для их отображения в таблице или форме.

A2: Если одно из сравниваемых значений Null, то любое выражение с ним вернет Null (который приравнивается к False). Чтобы этого избежать, можно пользоваться функцией IsNull, которая в соответствующем случае возвращает True.

Примечание. Операция & работает иначе. Если A - значение, которое может быть либо строкой, либо Null'ом (например, поле строкового типа), то:

A + "zzz" -> если в A сидит Null, то получится Null
A & "zzz" -> если в A сидит Null, то получится "zzz"

На этом основан следующий трюк:

(A + ",") & (B + ",") & (C + ",")

Если какое-то из значений A, B, C равно Null, то вся соответствующая скобка даст Null и соответствующая запятая будет уничтожена, а затем соединение через & возьмет только те слагаемые, где не Null.

Q20: Не могу настроить комбобокс.

A: Вот простейший случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
RowSourceType = Table/Query
RowSource = select a, b from t
    - где сначала названо поле с кодом (которое будет заноситься в таблицу),
    а потом поле с текстом (которое будет показываться)
BoundColumn =  1 
LimitToList = Yes
ColumnCount =  2 
ColumnWidths =  0 ; 3 
    - главное, чтобы у первой колонки ширина была  0 

А не через таблицу - отличия следующие:

Код: plaintext
1.
2.
RowSourceType = Value List
RowSource =  1 ;"one"; 2 ;"two"; 3 ;"three"

Q21: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

A1: Возможно, Аксессу не нравится то, что написано в одном из свойств, описывающих события.

A2: Возможно, отлетела какая-нибудь ссылка.

A3: Возможно, один из контролов или одна из секций формы содержит в своем имени символы национального алфавита, которые не поддерживаются текущей версией Аксесса или Windows.

Q22: Обработчик события KeyDown берет старые значения полей.

A: Вместо KeyDown используй KeyUp.

Q23: Не могу заставить форму всегда открываться в режиме Maximized (вариант: Restored).

A: Для Restored можно задать свойство PopUp=True. Для Maximized сложнее:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Form_Activate()
DoCmd.Maximize
End Sub
Private Sub Form_Deactivate()
DoCmd.Restore
End Sub

Q24: Команда SQL не видит переменных.

A1: Зато видит функции. Можно сделать функцию, которая будет возвращать значение переменной.

A2: Можно формировать команду SQL программно и вставлять туда значения переменных как константы. Подробнее: http://www.sql.ru/faq/faq_topic.aspx?fid=157

Q25: В перекрестном запросе не удается соблюсти постоянный порядок и количество столбцов.

A: Добавь в конец селекта запроса in ("two","three","one"), где в скобках перечислены столбцы в нужном порядке.

Q26: Не работает запрос с двумя джойнами:
select * from A left join B on A.A=B.B left join C on A.A=C.C


A: В Аксессе надо в таких запросах ставить скобки:
select * from ( A left join B on A.A=B.B ) left join C on A.A=C.C

Q27: Не работают параметры командной строки, напр. /excl и т.д.

A: Командная строка должна начинаться с ...msaccess.exe, и только потом название файла и все параметры. Без msaccess.exe эти параметры никому не нужны.

Q28: У меня есть логическое поле. Хочу выдать записи, в которых оно отмечено. Пишу в запросе:
WHERE этополе=1
- и запрос не работает.


A: Логическое True - это не 1, а -1. (Кстати, если просто написать WHERE этополе, то тоже будет работать, причем если поле не логическое, то будут выданы все записи, где значение этого поля не 0.)

Q29: Составляю условие WHERE (или любую другую часть селекта, или селект полностью, и вообще любую команду SQL) как стринг, собирая его/ее из значений переменных, контролов и т.д. Не работает.

A: Первым делом остановись в дебаггере и посмотри на полученный стринг. Если и после этого не станет ясно, что не так, то попробуй запустить его как сохраненный запрос.

Q30: Не могу сделать контролу Visible=False (варианты: Enabled=False, Locked=True). Аксесс говорит, что на этом контроле фокус.

A: Значит надо сначала перевести фокус на другой контрол:

c.SetFocus

Если нет контрола, который заведомо в любой ситуации сможет принять фокус, то его можно создать: либо CommandButton со свойством Transparent=True, либо OptionGroup со свойством BorderStyle=Transparent. Юзер его не заметит.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504879
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к q6 можно дать ссылку на длинный топик "Округление",
к q24 можно дать ссылку на faq Sfagnum'а.

А вообще (имхо) лучше бы как-то разбить его на подразделы (м.б. даже в разные faq'и). Хотя бы vba/запросы...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504894
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е не q24, а q29
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504898
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Насчет разбиения - будем думать. Можно это обсудить тут же.

Ссылки сейчас добавлю.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504916
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчёт разбиения полностью согласен с Geo

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504920
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ссылки добавил. Короче - опубликовано!

Насчет разбиения у меня вопрос. Что будет, если где-то в топиках появятся ссылки на теперешнюю нумерацию, а мы ее возьмем и поменяем?

Предлагаю такое решение:

1. Judge сделал возможность завести в факах раздел. Вот мы там и заведем раздел. В нем будет 30 маленьких факов.

2. В том факе, который я сейчас сделал, оставим только вопросы, а вместо ответов поставим ссылки на 30 маленьких факов.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504936
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВС
Маленькие faqи, это, конечно, оригинально. У меня нет аргументов ни за, ни против.

Но даже сами вопросы хорошо бы как-нибудь сгруппировать, а то мы сами в них искать нужный устанем.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504939
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, согласен. ОК, тогда надо придумать вариант разбиения. Наверно, должно быть 5-6 групп по 5-6 вопросов в каждой.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504942
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я временно убрал это из факов. Придумаем новую нумерацию, тогда поставлю обратно.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504969
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот первый вариант разбиения:

Запросы и селекты:

Q24: Команда SQL не видит переменных.

Q25: В перекрестном запросе не удается соблюсти постоянный порядок и количество столбцов.

Q26: Не работает запрос с двумя джойнами:
select * from A left join B on A.A=B.B left join C on A.A=C.C

Q28: У меня есть логическое поле. Хочу выдать записи, в которых оно отмечено. Пишу в запросе:
WHERE этополе=1
- и запрос не работает.

Q29: Составляю условие WHERE (или любую другую часть селекта, или селект полностью, и вообще любую команду SQL) как стринг, собирая его/ее из значений переменных, контролов и т.д. Не работает.

Формы и отчеты:

Q7: Не помогают f.Recalc, f.Refresh, f.Requery, f.Repaint, где f - форма.

Q14: Не работает событие OnOpen подчиненного отчета.

Q16: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

Q20: Не могу настроить комбобокс.

Q22: Обработчик события KeyDown берет старые значения полей.

Q23: Не могу заставить форму всегда открываться в режиме Maximized (вариант: Restored).

Q30: Не могу сделать контролу Visible=False (варианты: Enabled=False, Locked=True). Аксесс говорит, что на этом контроле фокус.

Модули:

Q1: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.

Q2: Ставлю MsgBox - работает. Убираю - не работает.

Q3: Вылазит сообщение: Expected variable or procedure, not module.

Q5: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.

Q6: Почему неправильно работает округление?

Q10: Не удается уложиться в синтаксис SQL либо VBA, потому что имя таблицы, поля, формы и т.д. содержит нехорошие символы, типа пробелов или минусов.

Q12: Я написал/а программу, а она не работает.

Q13: На команды с объектом Recordset выдается ошибка о несоответствии типов.

Q15: Не работает обращение к процедуре, которое я пишу так:
MySub (x, y) - тут выдается ошибка компиляции
MySub (x) - тут почему-то параметр передается по значению, а не по ссылке

Прочее:

Q4: Начинается совершенно непонятное поведение mdb.

Q8: В Аксессе 2002 кнопка "Создание MDE файла" не активна.

Q9: Не удается создать файл mde.

Q11: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).

Q17: Я так расставил галки в настройках аппликации, что мне теперь самому не добраться до меню Аксесса.

Q18: Аксесс переворачивает даты, меняет местами день и месяц. Вариант: неверно срабатывают вычисления или проверки, связанные с датами.

Q19: Не работает проверка на равенство/неравенство.

Q21: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

Q27: Не работают параметры командной строки, напр. /excl и т.д.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504978
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поддерживаю

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504992
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если можно, погоди до завтра публиковать...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504996
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
6 и 10 вроде относятся и к селектам.

18 и 19 - непонятно куда.

21 - наверно, к формам.

Нет?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32504997
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я жду, конечно.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505009
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на счёт 6, 10 правильно стоят
18, 19 по моему либо в SQL либо в модули...
ИМХО конечно...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505023
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно завести раздел Арифметика и отнести туда 6, 18, 19.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505345
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВС
автор18 и 19 - непонятно куда.
21 - наверно, к формам.
18 и 19 можно и к модулям, и к запросам. Здесь небольшая избыточность (один вопрос с одним номером задается в нескольких разделах) по-моему, лишней не будет.
21, наверное, в прочем надо и оставить

Кроме того, нелишне было бы добавить еще один раздел, и разместить его в начале:

Почему у меня перестало работать
Q1: Перестали распознаваться служебные слова, такие как Left, Right, Database и т.д.
Q2: Ставлю MsgBox - работает. Убираю - не работает.
Q4: Начинается совершенно непонятное поведение mdb.
Q5: Пишу программу на VBA, и при этом все дрожит, недописанная строка красится красным, как содержащая ошибку, курсор сам перескакивает по строке куда вздумается, сами расставляются пробелы и большие буквы и т.д.
Q11: База данных перестала сжиматься (с диагностикой: таблица АБВГДТабле already exists).
Q13: На команды с объектом Recordset выдается ошибка о несоответствии типов.
Q21: Выскакивает длинное сообщение, в котором в числе прочего имеется следующий текст: The expression may not result in the name of a macro, name of a user-defined function, or [Event Procedure].

ЗЫ. Это имхо.

ЗЗЫ. В q28 надо бы добавить, что True<>1 для Jet, а для MSSQL True=1.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505411
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Итак, что мы имеем.

Отдельный фак с вопросами и линками на малые факи.
Малые факи по разделам. И там некоторые ответы давать дважды?
Но нумерация-то точно должна быть в каждом малом факе своя?

GeoКроме того, нелишне было бы добавить еще один раздел, и разместить его в начале:

Почему у меня перестало работать
То есть некоторые вопросы продублировать еще раз?
А заголовок раздела должен совпадать с общим заголовком? По-моему, это будет путаница.

Про True добавил. Только я не знаю: в SQL-сервере тоже все, что отлично от 0, расценивается как True или нет?

Итого: Geo, у меня тут к тебе 5 вопросов.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505500
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИтак, что мы имеем.
Отдельный фак с вопросами и линками на малые факи.
Малые факи по разделам.

Нет, все-таки, наверное, лучше в одном. А то по ссылке Access FAQ у нас будет больше двух-трех экранов вопросов c ответами в одно предложение.

авторИ там некоторые ответы давать дважды?
Но нумерация-то точно должна быть в каждом малом факе своя?
Нумерацию можно дать либо сквозную:

Раздел 1
Q1. Вопрос1
Q2. Вопрос2
Q3. Вопрос3
Раздел 2
Q4. Вопрос1
Q5. Вопрос4
Q6. Вопрос5
...
А в ответах на повторяющиеся вопросы писать
...
A4. См. A1
...

, либо для уникальных вопросов
Раздел 1
Q1. Вопрос1
Q2. Вопрос2
Q3. Вопрос3
Раздел 2
Q1. Вопрос1
Q4. Вопрос4
Q5. Вопрос5
...

(мне больше второй нравиться.)

авторТо есть некоторые вопросы продублировать еще раз?
А заголовок раздела должен совпадать с общим заголовком? По-моему, это будет путаница.
Угу. Во-первых, именно к названию фака относятся отнюдь не все вопросы, например "Q24: Команда SQL не видит переменных." не может сначала работать, а потом перестать. Наиболее частые случаи "вдруг перестало работать" я и предлагаю вынести в отдельный первый раздел. Для того, чтобы человек, надеющийся найти ответ согласно названию фака, мог сделать это достаточно быстро, не читая до трех десятков вопросов, не имеющих отношения к его проблеме.

А про дублирование вопроса в разных разделах, имхо, это не страшно, а даже хорошо. Вспомни, насколько удобнее пользоваться алфавитным указателем в книге, когда слова " И зменение записи" и " З апись: изменение" встречаются дважды.

АвторПро True добавил. Только я не знаю: в SQL-сервере тоже все, что отлично от 0, расценивается как True или нет?
Сейчас попробую...
Нет, такой запрос говорит об ошибке:
select * from dbo.mytable where 1
Однако поля типа boolean могут принимать значения 0 или 1. И сравнивать такое поле с -1 в условии отбора, значит никогда не получать положительного результата от этого сравнения.

авторИтого: Geo, у меня тут к тебе 5 вопросов.

Вроде на все ответил в меру сил. Правда длинновато :)
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505506
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Спасибки!

Можно вот как. Сначала только список вопросов, разбитых по темам. И вопросы могут повторяться. Нумерация сквозная, причем если вопрос повторяется, то под тем же номером. А потом сплошной список ответов, где вопросы не повторяются. Примерно так:

Тема А
1
2
4

Тема Б
1
2
5

Ответы
1 - ответ
2 - ответ
3 - ответ
4 - ответ
5 - ответ

Geoнапример "Q24: Команда SQL не видит переменных." не может сначала работать, а потом перестать.
Может, если автор программы сначала не пытался включать переменные в селект, а потом включил. С другой стороны, может, придумаем другое название для всего вместе?
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505510
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Можно вот как. ...

Я об этом и говорю, так, мне кажется, будет совсем хорошо.

> С другой стороны, может, придумаем другое название для всего вместе?

Наверное, не надо. Большая часть вопросов отвечает текущему названию.
Имхо, можно уже публиковать, раз ни у кого дополнений больше нет.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505511
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ОК. Сейчас внесу правку и опубликую.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32505514
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Опубликовано!
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32597372
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q: Плохо работает программа, в которой используется свойство текстбокса или комбобокса Text.

A: Свойство Text доступно только тогда, когда этот текстбокс или комбобокс находится в фокусе. Чтобы программа работала всегда, надо пользоваться не свойством Text, а:


у текстбокса - свойством Value (которое является свойством по умолчанию, следовательно можно вообще это слово опустить вместе с предшествующей точкой);

у комбобокса - свойством Column(номерколонки).


Ни Text, ни Value можно не использовать вообще. У мя огромная база и без этого все прекрасно работает.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32597379
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Про Column согласен, спасибо, сейчас поправлю в факах.

Про Value - напоминаю, что это "свойство по умолчанию", т.е. если никакого названия свойства не писать, то оно и будет иметься в виду.
Forms!MyForm!MyControl.Value = 5
Forms!MyForm!MyControl = 5
- это одно и то же.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32597391
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тьфу. Там про Column и так сказано. Интересно, за что я спасибо говорил...
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32620425
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Добавлено:

Q31: Не могу сделать контролу Visible=False в табличной форме.

A: В табличной форме надо делать ColumnHidden=True.
...
Рейтинг: 0 / 0
FAQ. А почему у меня перестало работать...
    #32639333
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Добавлено:

Q32: RecordCount всегда возвращает 1, независимо от реального количества записей в рекордсете.

A: Дойди до последней записи, например при помощи метода MoveLast. Если надо, вернись обратно. Тогда RecordCount вернет правильное количество.
...
Рейтинг: 0 / 0
225 сообщений из 225, показаны все 9 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ. А почему у меня перестало работать...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]