Hoffentlich werde ich diese Frage so präzise und verständlich wie möglich machen - aber Sie werden mir sagen, wenn ich es nicht tue! Danke im Voraus.Globale Variable Lookup
Erstens, ein wenig Hintergrund und was ich gefunden habe, funktioniert, dann auf eine kleine Veränderung, die ich nicht zur Arbeit bekommen kann. Anstatt den gesamten Code zu verwenden, habe ich Schnipsel verwendet, die genügend Informationen enthalten sollten, damit Sie verstehen, dass ich die Dinge zuerst richtig initiiert habe.
Ich benutze ein Menüsystem (eine Turbo-Version der ursprünglichen MS), die zusätzliche Felder enthält, um Informationen zu speichern, die erforderlich sind, um Änderungen vorzunehmen, je nachdem, welche Formulierung der Benutzer verwenden möchte, damit ich ein Feld Produkt nennen kann. während ein Benutzer es möglicherweise Waren oder Gegenstände oder Sachen oder was immer er wünscht nennen möchte! Also speichere ich die Benutzereinstellungen in einer separaten Tabelle (wir nennen das tblWORDS). Wenn das Menü ausgefüllt ist (denken Sie daran, dass es in ähnlicher Weise wie das Standard-SwitchBoard funktioniert) mit den Daten aus Feldern: ItemText, Command & Argument das Menü zeigt normalerweise den Text von ItemText, den ich verwende. Aber ich habe ein neues Feld mit dem Namen CAPTION in der Tabelle SWITCHBOARD hinzugefügt, weil der VBA-Code das Formatieren der Beschriftungen nicht erlaubt, wie ich sie möchte. Wenn der VBA-Code ItemText für das Label aus dem Recordset liest, wird ein | (pipe), dann sucht mein hinzugefügter VBA-Code nach dem Feld Caption nach einer Zeichenkette. Hoffentlich genug Hintergrundinfo !! ?? .
[Switchboard] [Bildunterschrift] enthielt ursprünglich die folgenden: (alles inklusive)
"" & dlookup ("fldProduct", "tblWORDS") & ""
Das funktionierte perfekt !! Aber ...
Anstatt jedes Mal, wenn ich das WORD brauche, eine Suche durchzuführen, entschied ich GLOBAL VARIABLES zu erstellen, also habe ich eine globale Variable von glProduct, die das Wort aus der Tabelle tblWORDS korrekt erhält und gut behält . Dies ist dann während der gesamten Sitzung verfügbar.
ich die Zeichenfolge ersetzt haben über die globale Variable zu lesen, anstatt eine Lookup jedes Mal durchzuführen, um: (wieder, alles inklusive)
„“ & glProduct & „“
Also, mein Code ist als folgt:
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
überarbeitet:
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
Was IS angezeigt wird, ist der Literal String wie eingegeben ("" _glProduct "") Produkt nicht wie vor meiner Überarbeitung!
OK, also weiß ich nicht, wie man ein lesbares Layout für den Code erstellt - ich habe es mit Tabs, Abständen eingegeben und alles sah großartig aus, bis es veröffentlicht wurde !! Warum können Websites Ihre Tabs, Abstände usw. nicht respektieren? Ich weiß, es wird eine einfache Veränderung sein, aber warum sollte es schmerzhaft sein? – TimesMoney
Hallo, Sorry Jungs !! Wenn alles andere fehlschlägt, lesen Sie die Anweisungen und ich gehe durch die Bearbeitung alles und Jonhopkins machte es schön - Danke dafür. So sah es aus, als ich es ursprünglich eingefügt habe !! – TimesMoney
Kein Problem. Ich hatte auch am Anfang Probleme damit. Der Trick besteht aus 4 Leerzeichen vor jeder Codezeile und zwischen dem Code und einem normalen Text befindet sich eine Leerzeile. Wie Andre schon erwähnt hat, ist es ein schneller Weg, um die Leerzeichen zu bekommen, indem man den Code auswählt und Strg + K drückt, oder auf den Knopf oben im Eingabefeld, das wie folgt aussieht, schreibt: '{}'. Wenn Sie einen separaten Absatz möchten, ist eine leere Zeile zwischen den Absätzen ein bisschen schöner als zwei Leerzeichen am Ende der Zeile. – jonhopkins