Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2018, 09:11   #1
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 23
По умолчанию Как исправить ошибку функции?

Пробую использовать функцию из примера, а она выдаёт ошибки.

1. Как определить причину ошибки?
2. Как исправить ошибку функции?

Код:
Public*Function*funCreateForm(strForm*As*String)*As*Boolean
********Dim*frm*As*Form
********On*Error*GoTo*999* 'Переход*по*ошибке
********funCreateForm* = *False* 'Значение*возвращаемое*по*ошибке
********funDeleteForm*strForm* 'Удаляем*старую*форму
********frm* = *appAccess.CreateForm* 'Создаем*новую*форму
********With*frm* 'Изменяем*параметры*формы
************.Caption*=*"Мой*калькулятор"*'Вставляем*заголовок
************.ScrollBars* = *0* 'Гасим*полосы*прокрутки
************.RecordSelectors* = *False* 'Гасим*область*выделения
************.NavigationButtons* = *False* 'Гасим*кнопки*перехода
************.DividingLines* = *False* 'Гасим*разделительные*линии
************.AutoCenter* = *True* 'Выравниваем*форму*по*центру
************.BorderStyle* = *3* 'Устанавливаем*диалоговую*границу
************.Section(0).Height*=*3.862***appCM*'Изменяем*высоту*окна
************.Width*=*10.926***appCM*'Изменяем*ширину*окна
************.HasModule* = *True* 'Разрешаем*программы*в*форме
********End*With
********funRestoreFormControls*frm** 'Создаем*элементы*формы
********funInsertFormModule*frm* 'Создаем*модуль*формы
********appAccess.DoCmd.Save , *strForm* 'Сохраняем*форму
********appAccess.DoCmd.Close(acForm,*strForm,*acSaveYes)*'Закрываем*форму
********funCreateForm* = *True* 'Возвращаем*результат
********Exit*Function* 'Выход*из*программы
999:
********MsgBox*Err.Description* 'Сообщаем*об*ошибке
********Err.Clear()*'Очищаем*по
****End*Function
Изображения
Тип файла: jpg 3133.jpg (59.9 Кб, 121 просмотров)
klim8 вне форума Ответить с цитированием
Старый 15.03.2018, 09:19   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от klim8 Посмотреть сообщение
Как определить причину ошибки?
https://habrahabr.ru/post/339038/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.03.2018, 10:43   #3
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

могу предположить , что 99% звездочек --лишние
Код:
Public Function funCreateForm(strForm As String) As Boolean
        Dim frm As Form
        On Error GoTo 999  'Переход по ошибке
        funCreateForm  =  False  'Значение возвращаемое по ошибке
        funDeleteForm strForm  'Удаляем старую форму
        frm  =  appAccess.CreateForm  'Создаем новую форму
        With frm  'Изменяем параметры формы
            .Caption = "Мой калькулятор" 'Вставляем заголовок
            .ScrollBars  =  0  'Гасим полосы прокрутки
            .RecordSelectors  =  False  'Гасим область выделения
            .NavigationButtons  =  False  'Гасим кнопки перехода
            .DividingLines  =  False  'Гасим разделительные линии
            .AutoCenter  =  True  'Выравниваем форму по центру
            .BorderStyle  =  3  'Устанавливаем диалоговую границу
            .Section(0).Height = 3.862*appCM 'Изменяем высоту окна
            .Width = 10.926*appCM 'Изменяем ширину окна
            .HasModule  =  True  'Разрешаем программы в форме
        End With
        funRestoreFormControls frm   'Создаем элементы формы
        funInsertFormModule frm  'Создаем модуль формы
        appAccess.DoCmd.Save ,  strForm  'Сохраняем форму
        appAccess.DoCmd.Close(acForm, strForm, acSaveYes) 'Закрываем форму
        funCreateForm  =  True  'Возвращаем результат
        Exit Function  'Выход из программы
999:
        MsgBox Err.Description  'Сообщаем об ошибке
        Err.Clear() 'Очищаем по
    End Function
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 15.03.2018, 11:01   #4
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
могу предположить , что 99% звездочек --лишние
Да... вручную перепрописал красные строки... Ошибки пропали..
Наверное при копирование со страницы сайта, копируются скрытые знаки...

Но есть ещё пару вопросов (см. скрин)
Вроде всё по инструкции
Метод DoCmd.Close (доступ) - ссылка
Изображения
Тип файла: jpg 3135.jpg (61.9 Кб, 127 просмотров)

Последний раз редактировалось klim8; 15.03.2018 в 11:04. Причина: Заменил скрин
klim8 вне форума Ответить с цитированием
Старый 15.03.2018, 11:10   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

погуглил.
попробуйте
Код:
appAccess.DoCmd.Close ObjectType:=acForm, ObjectName:=strForm, Save:=acSaveYes
а то, что добавили от себя - ВЫКИНУТЬ!

у Вас параметр передаётся:
Цитата:
Код:
Public Function funCreateForm(strForm As String) As Boolean
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2018, 11:37   #6
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
погуглил.
блин... я тоже гуглил...
1. Не могли бы вы подсказать какой запрос нужно написать чтобы гугл ответил?
И почему именно так нужно прописывать эту строчку

2. Что происходит с
Код:
Err.Clear()
?

см. гиф.

Спасибо.
Вложения
Тип файла: rar вФрмПустСоздУдПерем.rar (22.9 Кб, 12 просмотров)
klim8 вне форума Ответить с цитированием
Старый 15.03.2018, 12:00   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от klim8 Посмотреть сообщение
1. Не могли бы вы подсказать какой запрос нужно написать чтобы гугл ответил?
https://www.google.com/search?q=vba+...ient=firefox-b


Цитата:
Сообщение от klim8 Посмотреть сообщение
Что происходит с
Ниче не происходит, вывалится в ошибку. Уберити скобки.

Я для себя определял так : параметры в скобках передаются только при передаче обекта. Например:
Код:
' some code here
a = MyProc(b) 
' another code here
но
Код:
' some code here
MyProc b 
' another code here
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.03.2018, 12:02   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

уберите круглые скобки:
Код:
        Err.Clear 'Очищаем*по
а ещё нужно дописать передачу имени формы в процедуру:
Код:
Private Sub Кнопка2_Click()
  Call funCreateForm(Me.Поле0)
End Sub
потом нужно исправить строчку:
Код:
        Set frm = appAccess.CreateForm    'Создаем новую форму
Но это не очень поможет.
там дальше при запуске на выполнение ещё ошибки появятся в строчках:

Цитата:
Код:
funDeleteForm strForm  'Удаляем старую форму

funRestoreFormControls frm   'Создаем элементы формы

funInsertFormModule frm  'Создаем модуль формы
эти функции тоже должны быть описаны.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку Lotles Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.02.2012 20:11
как исправить ошибку? phasha Помощь студентам 0 11.01.2012 21:32
Исправить ошибку в функции. Snekich Microsoft Office Excel 3 23.12.2011 10:23
Как исправить ошибку yana33311 Паскаль, Turbo Pascal, PascalABC.NET 2 17.04.2011 21:07
[C] лабораторка. Указатели на функции. Помогите исправить ошибку) KrL^^ Помощь студентам 2 11.03.2009 22:33