Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сбой VBA /причина? =>невозможно писать программы/, издевательство 
V
    Опции темы
ravitex
Дата 22.11.2010, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Маленькая база 2007Access.

Форма -> Event -> OnOpen -> Macro -> GoToRecord -> New

Преобразование Макросов в VBA (+коммент, +обработка ошибок) -> :
Код

Option Compare Database

'------------------------------------------------------------
' Form_Open
'
'------------------------------------------------------------
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Form_Open_Err

    DoCmd.GoToRecord acForm, "Материалы_f", acNewRec


Form_Open_Exit:
    Exit Sub

Form_Open_Err:
    MsgBox Error$
    Resume Form_Open_Exit

End Sub


Пока база открыта - все ОК. Если закрыть/открыть Access, то база открывается, а при открытии Формы - (картинка 1)...
При попытке открыть Форму в режиме конструктора и открыть код OnOpen - (картинка 2)...


Update: сделал пробную базу в абсолютно новом файле и понял, что с Макросом все работает, а после преобразования в код выдает теперь "Invalid procedure call or argument" . Значит при преобразовании возникает ошибка? почитаю хелп.

Это сообщение отредактировал(а) ravitex - 22.11.2010, 03:14

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  database_vers_01.zip 92,13 Kb
PM MAIL   Вверх
ravitex
Дата 22.11.2010, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Сделал Access 2007 Repair c диска. 
Пробую MsgBox: 
Код

Option Compare Database

'------------------------------------------------------------
' Form_Open
'
'------------------------------------------------------------
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Form_Open_Err

    MsgBox "NNN", vbOKOnly, "MMM"


Form_Open_Exit:
    Exit Sub

Form_Open_Err:
    MsgBox Error$
    Resume Form_Open_Exit

End Sub

Все работает пока не закрою фаил. Окрываю снова : ошибка!!!



Это сообщение отредактировал(а) ravitex - 22.11.2010, 14:15

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  01.JPG 45,56 Kb
PM MAIL   Вверх
ravitex
Дата 22.11.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Кажется понял : в On Open к форме нельзя ставить Enabled ее поля, тк активация поля начнется перед открытием формы (когда еще поля какбы нет в системе). И это "ломает" VB до тех пор пока не зделаешь рестарт компа. Тогда проблема переформулируется: http://forum.vingrad.ru/index.php?showtopi...t&p=2252023

Это сообщение отредактировал(а) ravitex - 22.11.2010, 16:13
PM MAIL   Вверх
ravitex
Дата 23.11.2010, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Ну это просто невозможно !!! The expression On click you entered as the event property setting prduced the following erorr : Module not found 

VB не открывается и вылетает.  В этот раз так : все работает, открываю базу, открываю форму - не открывается; в режиме конструктора -открывается, сразу получается открыть в режиме формы, все работает, закрываю, открыть не получается, конструктор, опять открывается, кликаю чекбокс - ошибка


Профи, дайте совет кто-нибудь. Что делать ??? Windows переустанавливать? Явно ведь не в коде дело...

Это сообщение отредактировал(а) ravitex - 23.11.2010, 00:30

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  database_vers_02v1.zip 24,37 Kb
PM MAIL   Вверх
bopoha
Дата 23.11.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Всего то навсего нужно в Свойствах > События указать [Процедура обработки событий], вместо [Внедренный макрос]. И все чудесно работает.
PM MAIL WWW ICQ Skype GTalk   Вверх
ravitex
Дата 23.11.2010, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Цитата(bopoha @ 23.11.2010,  01:32)
Всего то навсего нужно в Свойствах > События указать [Процедура обработки событий], вместо [Внедренный макрос]. И все чудесно работает.

Спасибо, но результат абсолютно тот же (не открывается форма, при отрытии кода фаил рушится) . VB  даже сам ставит [event procedure] при конвертации макроса в код. Ошибка происходит даже без конвертациии - просто с макросом. 

Удаляю порченую форму, делаю новую, на On Open пытаюсь создать код, получаю : MS Office Access failed to create the visual basic module  / If your database is on a network drive, chek your network connection, and try again.

Переинсталяция  Office не помогает. Все как и было.появляется фаил с типом : Microsoft Office Access Record-Locking Information. прикрепляю фаил 
Ну что в этом коде не так!!!? 

Код

Option Compare Database

'------------------------------------------------------------
' Form_Open
'
'------------------------------------------------------------
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Form_Open_Err

    DoCmd.GoToRecord acForm, "МАТ_f", acNewRec


Form_Open_Exit:
    Exit Sub

Form_Open_Err:
    MsgBox Error$
    Resume Form_Open_Exit

End Sub


заметил, что проблемы только с NewRec, а
Код

DoCmd.GoToRecord acForm, "Table1", acGoTo, 4
DoCmd.GoToRecord acForm, "Table1", acFirst
DoCmd.GoToRecord acForm, "Table1", acLast


работают хорошо. блин. Видимо это bug какой-то. Комбинация Last + Next работает тоже до первой перезарузки !

Это сообщение отредактировал(а) ravitex - 23.11.2010, 04:50

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  basa_01.laccdb 0,06 Kb
PM MAIL   Вверх
ravitex
Дата 23.11.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Разобрался:

Ошибка была здесь : DoCmd.GoToRecord acForm, "МАТ_f", acNewRec .

Правильно : DoCmd.GoToRecord , , acNewRec

Но что это за хрень - непонятно, тк код не я придумал, а выдал сам Access при конвертации макроса в код
PM MAIL   Вверх
ravitex
Дата 23.11.2010, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Оказывается это была не основная проблема. Теперь понял : НЕЛЬЗЯ БЫЛО НАЗЫВАТЬ ТАБЛИЦЫ и ФОРМЫ РУССКИМИ БУКВАМИ. Если названия на англ. - все ОК . F***

Это сообщение отредактировал(а) ravitex - 24.11.2010, 00:36
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.