ник: АлексейЕ
Вот так в лоб реализовать не получится. А вот с помощью «маневрирования» можно очень даже неплохие способы найти.
Способ 1. С использованием класса
Создаем класс КлассПараметров
Option Compare Database
Option Explicit
Private strFIRMA_NAME As String
Private strFIRMA_ADRES As String
Public Property Get FIRMA_NAME() As String
FIRMA_NAME = strFIRMA_NAME
End Property
Public Property Let FIRMA_NAME(ByVal vNewValue As String)
strFIRMA_NAME = vNewValue
End Property
'=========
Public Property Get FIRMA_ADRES() As String
FIRMA_ADRES = strFIRMA_ADRES
End Property
Public Property Let FIRMA_ADRES(ByVal vNewValue As String)
strFIRMA_ADRES = vNewValue
End Property
|
Заполнять теперь будем таким образом.
Public ПараметрыКонтрагента As New КлассПараметров
CallByName ПараметрыКонтрагента, "FIRMA_ADRES", VbLet, "ЗначениеАдрес"
CallByName ПараметрыКонтрагента, "FIRMA_NAME", VbLet, "ЗначениеИмя"
|
Читаем значения
?ПараметрыКонтрагента.FIRMA_ADRES
ЗначениеАдрес
?ПараметрыКонтрагента.FIRMA_NAME
ЗначениеИмя
|
Очень удобный способ для разработчика, т.к. при таком структурировании надо помнить лишь имя класса, а ограниченный список параметров сам выпадет в контекстное меню.
Можно создавать тематические группы параметров.
Если параметр не существует, то следует ловить ошибку при заполнении
Способ 2 Использование коллекции
Объявление и заполнение
Public КоллекцияПараметров As New Collection
КоллекцияПараметров.Add Item:="АдресФирмы", Key:="FIRMA_ADRES"
КоллекцияПараметров.Add Item:="НаименованиеФирмы", Key:="FIRMA_NAME"
|
Чтение
?КоллекцияПараметров.Item("FIRMA_NAME")
НаименованиеФирмы
?КоллекцияПараметров.Item("FIRMA_ADRES")
АдресФирмы
|
Удобен тем, что список параметров не ограничен, просто ввели в таблице новый параметр, и он автоматом заполнится в коллекцию.
Только при считывании ловим ошибку при обращении к несуществующему ключу