바라건대, 나는이 질문을 가능한 정확하고 이해하기 쉽도록 만들 것입니다.하지만 제가하지 못하면 말해 줄 수 있습니다! 미리 감사드립니다.글로벌 변수 조회
첫째, 약간의 배경과 내가 찾은 것, 그리고 내가 일을 할 수없는 작은 변화에 대한 것입니다. 전체 코드를 사용하는 대신, 먼저 올바르게 시작한 것을 이해할 수 있도록 충분한 정보를 제공하는 스 니펫을 사용했습니다.
사용자가 사용하고자하는 문구에 따라 변경해야하는 정보를 저장하는 추가 필드가있는 메뉴 시스템 (터보 차지 버전의 원래 MS 버전)을 사용하므로 필드 제품 이름을 지정할 수 있습니다. 반면에 사용자는 물품 또는 물건 또는 물건 또는 원하는 것을 무엇이든 부를 수 있습니다! 그래서 나는 사용자 환경 설정을 별도의 테이블에 저장한다 (우리는 tblWORDS라고 부를 것이다). ItemText, Command & 인수 일반적으로이 메뉴는 ItemText의 텍스트를 표시합니다.이 텍스트는 내가 사용하는 ItemText의 텍스트를 표시합니다. 그러나 VBA 코드는 레이블을 원하는대로 서식을 지정할 수 없기 때문에 SWITCHBOARD 테이블에 CAPTION이라는 새로운 필드를 추가했습니다. 따라서 VBA 코드는 레이블에 대한 ItemText를 레코드 세트에서 읽으면 | (파이프), 내 추가 된 VBA 코드는 다음 캡션 필드에 문자열을 찾습니다. 바라기를, 충분한 배경 정보 !! ?? .
이것은 완벽하게 작동 (포함 EVERYTHING)
""&을 DLookup ("fldProduct", "tblWORDS") &을 ""! :
[배전반] [캡션]는 원래 다음을 포함 하지만 ...
WORD가 필요할 때마다 조회를 수행하는 대신 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
개정 :
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 칸 있으며 코드와 일반 텍스트 사이에 빈 줄이 있습니다. 안드레 (Andre)가 말했듯이, 공백을 얻는 빠른 방법은 코드를 선택하고 Ctrl + K를 누르거나 입력 상자의 상단에있는 {{}'모양의 버튼을 클릭하는 것입니다. 별도의 단락을 원한다면 단락 사이의 빈 줄은 줄 끝의 두 칸보다 약간 더 멋지게됩니다. – jonhopkins