imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 09.11.2005, 12:31     # 1
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
Параметры запуска. Перезапуск формы. Access. VBA.

Доброго времени суток.

Пара вопросов:

1. В аксесе есть возможность настраивать параметры запуска. Случайно выделил не то что надо (стандартные опции меню запртил). В результате хочу их вернуть, но... неоткуда. Вкладка сервис (Tools) исчезла =(

2. Есть форма. при ее закрытии я проверяю есть ли еще какие то открытые формы. Если нету - ее надо снова открыть или не позволить ей закрытся. Это возможно ?

Изначально писалось как :
Код:
Private Sub Form_Close()
If All_Not_Loaded() Then
DoCmd.OpenForm "start_form"
End If
End Sub
Function All_Not_Loaded() As Boolean
Dim res As Boolean
res = False

For Each i In Forms
If IsLoaded(i.name) Then
res = True
End If
Next i
All_Not_Loaded = res
End Function
но в таком виде не работает

Подскажите как с этим боротся, пожалуста.

С уважением. Ворон.

C 1. выяснил достаточно удерживая shift запустить =)
Подскажите 2е ?

Последний раз редактировалось Raven B.; 09.11.2005 в 13:17. Причина: По неясной причине запостил нетот кусок кода.
Raven B. вне форума  
Старый 09.11.2005, 13:53     # 2
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
Интересный момент.
При таком коде :
1. при закрытии формы все закрывается. и ничего не открывается.
2. при закрытии апликации (аксеса самого тоесть) форма начинает бесконечно перезапускатся и жрет 99% процессорного времени.

В общем получилось с точностью до наоборот
Raven B. вне форума  
Старый 09.11.2005, 22:29     # 3
aBc
Junior Member
 
Регистрация: 16.01.2004
Сообщения: 89

aBc Путь к славе только начался
Цитата:
Raven B.:
я проверяю есть ли еще какие то открытые формы
Закрытие формы и unload её - совсем не одно и то же. Ты проверяешь формы на загруженность, а не открытость.
aBc вне форума  
Старый 10.11.2005, 00:59     # 4
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
гм. и что из этого следует ?
Raven B. вне форума  
Старый 10.11.2005, 15:14     # 5
LightImage
Junior Member
 
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96

LightImage Нимб уже пробиваетсяLightImage Нимб уже пробивается
Цитата:
Raven B.:
1. В аксесе есть возможность настраивать параметры запуска. Случайно выделил не то что надо (стандартные опции меню запртил). В результате хочу их вернуть, но... неоткуда.
При открытии базы держи Shift. Поможет, если эта возможность в .mdb файле не запрещена. Если запрещена, то надо использовать VBA, код скину позже.
P.S. В твоем коде All_Not_Loaded() всегда будет True возвращать, она же вызывается из еще открытой формы
P.P.S. А вот обещаный код:
Код:
Public Function LI_SetPropertyToObject(obj As Object, pname As String, pvalue, ptype, _
    Optional doCheckPropVal As Boolean = True) As Boolean
' Создает или модифицирует свойство с именем pname объекта obj.
' Тип свойства указывается параметром ptype, значение свойства -- параметром pvalue.
' Если параметр doCheckPropVal = True, то функция будет изменять значение указанного
' свойства только если оно отличается от pvalue.
' См. справку по функции CreateProperty() для допустимых значений параметра ptype.
' Возвращаемое значение:
'  False, если свойство уже существовало и его значение не было изменено,
'  True, если свойство не существовало и было создано этой функцией,
'   или значение свойства было изменено.
' При возникновении ошибок возникшие ошибки будут выкинуты вызвающей функции
Dim prpNew As Property
Dim errLoop As Error
Dim retv As Boolean
    retv = False
    
    On Error GoTo Err_Property
    If doCheckPropVal Then
        If obj.Properties(pname) = pvalue Then
            GoTo func_exit
        End If
    End If

DoAssignVal:
    obj.Properties(pname) = pvalue
    retv = True
    On Error GoTo 0

func_exit:
    LI_SetPropertyToObject = retv
    Exit Function

Err_Property:

' Ошибка 3270 означает, что свойство не найдено.
Const conPropNotFoundError = 3270
    If Err = conPropNotFoundError Then
        ' Создает свойство, задает его значение и добавляет
        ' свойство в семейство Properties.
        Set prpNew = obj.CreateProperty(pname, ptype, pvalue)
        obj.Properties.Append prpNew
        Resume DoAssignVal
    Else
        ' При возникновении другой ошибки выкидываем её вызывающей функции
        Err.Raise Err.Number
    End If
End Function

Sub My_DoChangeAllowBypassKey()
Const prpname = "AllowBypassKey", prpvalue As Boolean = True
Const dbpath = "C:\temp\test.mdb"
Dim dbs As database
    Set dbs = OpenDatabase(dbpath)
    LI_SetPropertyToObject dbs, prpname, prpvalue, dbBoolean
End Sub
__________________
1 миллибайт = 1/1024 байта

Последний раз редактировалось LightImage; 10.11.2005 в 17:22. Причина: добавление полезной инфы
LightImage вне форума  
Старый 10.11.2005, 17:06     # 6
LightImage
Junior Member
 
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96

LightImage Нимб уже пробиваетсяLightImage Нимб уже пробивается
Про shift не заметил что ты уже решил, извиняй =)
Цитата:
Raven B.:
я проверяю есть ли еще какие то открытые формы. Если нету - ее надо снова открыть или не позволить ей закрытся
Пиши так:
Код:
Private Sub Form_Unload(Cancel As Integer)
    Cancel = (Forms.Count <= 1)
End Sub
__________________
1 миллибайт = 1/1024 байта
LightImage вне форума  
Старый 10.11.2005, 17:26     # 7
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
Цитата:
P.S. В твоем коде All_Not_Loaded() всегда будет True возвращать, она же вызывается из еще открытой формы
Спасибо =) Чесно говоря уже исправил.

Цитата:
LightImage:
Пиши так:
Спасибо огромное !!!.
Но проблема с формой осталась =(
Тоесть если у меня эта форма одна осталась бд. я не закрою.
С этим можно как то боротся или это никак нельзя обойти (что бы при попытке закрыть аксес он все же закрывался.)
Raven B. вне форума  
Старый 10.11.2005, 17:45     # 8
LightImage
Junior Member
 
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96

LightImage Нимб уже пробиваетсяLightImage Нимб уже пробивается
Посмотри прием, описанный на _http://www.mvps.org/access/api/api0035.htm. Попробую написать что-нибудь, скину тогда позже.
__________________
1 миллибайт = 1/1024 байта
LightImage вне форума  
Старый 11.11.2005, 11:04     # 9
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
полез смотреть. спасибо.
Raven B. вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 10:39.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.