powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Где наскоро сохранить параметр?
10 сообщений из 10, страница 1 из 1
Где наскоро сохранить параметр?
    #32715232
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При работе с формой хочется сохранять последнее использованное оператором значение строкового параметра. Оператор нажимает на кнопку, ему предлагается строка для редактирования, после подтверждения открывается запрос. Очень не хочется резать таблицу под хранение измененного значения. Мне кажется естественным сохранить использованное значение параметра на форме, например, в Tag. Но... Во время сеанса работы значение доступно, но сохранить Tag (той же кнопки, например) мне не удается.
Я пытаюсь выполнять
Код: plaintext
DoCmd.Save acForm, MyFormName
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715251
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На какой срок ? При повторном запуске Mdb он Вам потребуется ?
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715279
YBW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YBW
Гость
в Database Properties IMHO лучче всего - и думать нечего
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715295
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в реестр пихать
SaveSetting "ИмяПроги", "ИмяФормы", "ИмяПараметра", "валуе"

можно в локальную табличку
можно в Database.Properties
можно в INI-файл

простор открыт
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715301
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, именно при повторном запуске и хотелось бы видеть последний вариант.
Как и зачем хранить значение строки в Database Properties - это я не понимаю.
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715304
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему форма не сохраняет?
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715409
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашла про Database Properties.

Код: 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.
Function SetCustomProperty(strPropName As String, intPropType _
    As Integer, strPropValue As String) As Integer

    Dim dbs As Database, cnt As Container
    Dim doc As Document, prp As Property

    Const conPropertyNotFound =  3270      ' Property not found error. 
    Set dbs = CurrentDb                     ' Define Database object. 
    Set cnt = dbs.Containers!Databases     ' Define Container object. 
    Set doc = cnt.Documents!UserDefined     ' Define Document object. 
    On Error GoTo SetCustom_Err
    doc.Properties.Refresh
     ' Set custom property name. If error occurs here it means 
     ' property doesn't exist and needs to be created and appended 
     ' to Properties collection of Document object. 
    Set prp = doc.Properties(strPropName)
    prp = strPropValue                     ' Set custom property value. 
    SetCustomProperty = True

SetCustom_Bye:
    Exit Function

SetCustom_Err:
    If Err = conPropertyNotFound Then
        Set prp = doc.CreateProperty(strPropName, intPropType, strPropValue)
        doc.Properties.Append prp         ' Append to collection. 
        Resume Next
    Else                                         ' Unknown error. 
        SetCustomProperty = False
        Resume SetCustom_Bye
    End If
End Function

Код: 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.
Function GetSummaryInfo(strPropName As String) As String
    Dim dbs As Database, cnt As Container
    Dim doc As Document, prp As Property

     ' Property not found error. 
    Const conPropertyNotFound =  3270 
    On Error GoTo GetSummary_Err
    Set dbs = CurrentDb
    Set cnt = dbs.Containers!Databases
    Set doc = cnt.Documents!SummaryInfo
    doc.Properties.Refresh
    GetSummaryInfo = doc.Properties(strPropName)

GetSummary_Bye:
    Exit Function

GetSummary_Err:
    If Err = conPropertyNotFound Then
        Set prp = doc.CreateProperty(strPropName, dbText, "None")
         ' Append to collection. 
        doc.Properties.Append prp
        Resume
    Else
         ' Unknown error. 
        GetSummaryInfo = ""
        Resume GetSummary_Bye
    End If
End Function

Запись свойства проходит без ошибок, а попытка чтения - выдает отказ, такого свойства нет )))))
В чем тут проблема?
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715486
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется такой рабочий комплект:
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Public Function AddAppProperty(strName As String, varType As Variant, varValue As Variant, Optional db) As Integer
    Dim dbs As Database, prp As Property
    Const conPropNotFoundError =  3270 
    If IsMissing(db) Then Set dbs = CurrentDb Else Set dbs = db
    On Error GoTo AddProp_Err
    If dbs.Properties(strName) <> varValue Then
        dbs.Properties(strName) = varValue
    End If
AddAppProperty = True
AddProp_Bye:
    Exit Function
AddProp_Err:
    If Err = conPropNotFoundError Then
        Set prp = dbs.CreateProperty(strName, varType, varValue)
        dbs.Properties.Append prp
        Resume
    Else
        AddAppProperty = False
        Resume AddProp_Bye
    End If
End Function

Public Function GetAppProperty(prop, Optional db)
    Dim dbs As Database
    If IsMissing(db) Then Set dbs = CurrentDb Else Set dbs = db
    On Error GoTo GetAppProperty_err
    GetAppProperty = dbs.Properties(prop)
    Exit Function
GetAppProperty_err:
    GetAppProperty = Null
    Exit Function
End Function

Public Function DumpProperties(Optional db)
    Dim p  As Property
    Dim dbs As Database
    Dim s As String
    s = ""
    If IsMissing(db) Then Set dbs = CurrentDb Else Set dbs = db
    For Each p In dbs.Properties
        If p.Type =  0  Then
            s = s & p.Name & "{" & p.Type & "}" & vbCrLf
        Else
            s = s & p.Name & "{" & p.Type & "}= " & p.Value & vbCrLf
        End If
    Next p
    DumpProperties = s
End Function
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715491
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работающие функции:

Код: 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.
36.
37.
38.
39.
40.
41.
42.
Создать (добавить) Property
Public Sub CreaProperty(obj As Object, nmp As String, tpp As Integer, Optional vl)
On Error Resume Next

    Dim prp As Property
   
    Set prp = obj.CreateProperty()
   
    prp.Name = nmp
    prp.Type = tpp
    If Not IsMissing(vl) Then prp.Value = vl Else prp.Value = Null
    obj.Properties.Append prp
    If Err =  3367  Then     'Can't append.  An object with that name already exists in the collection. 
        If Not IsMissing(vl) Then
            obj.Properties(nmp) = vl
        End If
    End If
    
End Sub

Установить значение существующему (созданному) Property
Public Function SetValProp(db As Database, nmp As String, valp As Variant) As Integer
On Error GoTo err_SetValProp
    
    SetValProp = False
    
    db.Properties(nmp) = valp
    
    SetValProp = True
    
err_SetValProp:
End Function

Взять значение существующего (созданного) Property
Public Function GetValProp(db As Database, nmp)
On Error GoTo err_GetValProp
    
    GetValProp = Null
    
    GetValProp = db.Properties(nmp)
    
err_GetValProp:
End Function
...
Рейтинг: 0 / 0
Где наскоро сохранить параметр?
    #32715501
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, то, что доктор прописал.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Где наскоро сохранить параметр?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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