Надеюсь, я постараюсь сделать этот вопрос максимально точным и понятным, но вы скажете мне, если я этого не сделаю! Заранее спасибо.Глобальный поиск переменных
Во-первых, небольшой фон и то, что я нашел, что работает, затем на небольшое изменение, которое я не могу заставить работать. Вместо того, чтобы использовать весь код, я использовал фрагменты, которые должны дать достаточно информации для вас, чтобы понять, что я сначала начал вещи правильно.
Я использую систему меню (версия с турбонаддувом оригинальной MS), в которой есть дополнительные поля для хранения информации, необходимой для внесения изменений, в зависимости от того, какую формулировку пользователь хочет использовать, поэтому я могу назвать поле Product, в то время как пользователь может захотеть назвать это «Товары» или «Товары» или «Настроить» или что угодно, что он хочет! Поэтому я сохраняю пользовательские настройки в отдельной таблице (назовем это tblWORDS). Когда меню заполнено (помните, что он работает аналогично стандартным SwitchBoard) с данными из полей: ItemText, Command & Аргумент меню обычно отображает текст из ItemText, который я использую. Но, я добавил новое поле под названием CAPTION в таблице SWITCHBOARD, потому что код VBA не позволяет форматировать ярлыки, как я их хочу. Итак, когда код VBA читает ItemText для метки, из набора записей, и он сталкивается с | (pipe), мой добавленный код VBA затем смотрит в поле Caption для строки. Надеюсь, достаточно фоновой информации !! ?? .
[Switchboard] [Подпись] первоначально содержал следующее: (все включено)
"" & DLookup ("fldProduct", "tblWORDS") & ""
Это работало отлично !! Но ...
Вместо того чтобы выполнять поиск каждый раз, когда мне нужно СЛОВО, я решил создать GLOBAL VARIABLES, поэтому у меня есть глобальная переменная glProduct, которая правильно получает слово из таблицы tblWORDS и сохраняет это просто отлично , Затем это доступно на протяжении всего сеанса.
Я заменил строку выше для чтения глобальной переменной вместо выполнения поиска в каждый раз, чтобы: (опять же, ВСЁ ВКЛЮЧЕНО)
«» & glProduct & «»
Итак, мой код выглядит следующим образом:
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
'MY PIPE DEVIATION
If Left(Trim(rs![ItemText] & ""), 1) = "|" Then
'THIS LINE WORKS JUST FINE
'DISPLAYS CORRECTLY (rs!Caption = "" & dlookup("fldProduct","tblWORDS") & "")
szTemp = DLookup(rs![Caption], "tblWORDS")
'AS DOES THIS (but, I'm explicitly naming the variable in code! Only entered this line to show that the variable is working!)
szTemp = "" & glbProduct & ""
'THIS DOES TOO (Just a BYREF function for testing)
szTemp = fnGetValue(DLookup(rs![Caption], "tblWORDS"))
Me("Option" & rs![ItemNumber]).Caption = szTemp
Else
If rs![ItemNumber] = 0 Then
Me("OptionLabel" & rs![ItemNumber]).Caption = VBA.Trim(rs![ItemText] & " (" & rs![SwitchboardID] & ")")
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("Option" & rs![ItemNumber]).Visible = False
Else
Me("Option" & rs![ItemNumber]).Caption = VBA.Trim(rs![ItemText] & "")
End If
End If
rs.MoveNext
Wend
REVISED К:
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
'MY PIPE DEVIATION
If Left(Trim(rs![ItemText] & ""), 1) = "|" Then
'THIS WORKS (but, I'm explicitly naming the variable in code! Only entered this line to show that the variable is working!)
szTemp = "" & glbProduct & ""
'THIS DOES NOT (FYI: rs!Caption = "" & glbProduct & "")
szTemp = rs!Caption
'NOR DOES THIS (Just a BYREF function for testing)
szTemp = fnGetValue(rs!Caption)
Me("Option" & rs![ItemNumber]).Caption = szTemp
Else
If rs![ItemNumber] = 0 Then
Me("OptionLabel" & rs![ItemNumber]).Caption = VBA.Trim(rs![ItemText] & " (" & rs![SwitchboardID] & ")")
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("Option" & rs![ItemNumber]).Visible = False
Else
Me("Option" & rs![ItemNumber]).Caption = VBA.Trim(rs![ItemText] & "")
End If
End If
rs.MoveNext
Wend
Что IS отображается буквальная строка, как указано ("" _glProduct "), а не Продукт, как это было до моего пересмотра!
OK, поэтому я не знаю, как создать читаемый макет для кода - я ввел его с вкладками, интервалом, и все это выглядело отлично, пока оно не было опубликовано !! Почему сайты не могут уважать ваши вкладки, интервал и т. Д.? Я понимаю, что это будет простое изменение, но почему это становится болезненным? – TimesMoney
Привет, Извините, ребята !! Если все остальное не прочитает инструкции, и я все это проведу, и jonhopkins сделал это КРАСИВО. Спасибо за это. Это было то, на что это было похоже, когда я вставил его изначально! – TimesMoney
Нет проблем. У меня были проблемы с ним и в начале. Хитрость составляет 4 пробела перед каждой строкой кода и имеет пустую строку между кодом и любым обычным текстом. Быстрый способ получить пробелы, как отметил Андре, - выбрать код и нажать Ctrl + K или нажать кнопку в верхней части окна ввода, которая выглядит как '{}'. Если вы хотите отдельный абзац, пустая строка между абзацами немного лучше двух пробелов в конце строки. – jonhopkins