VBA String as commandtext (строка без кавычек) - PullRequest
0 голосов
/ 31 октября 2018

У меня есть Sub, который имеет строку параметров и включит ее в текст команды. Моя проблема заключается в том, что выполнение не принимает строку (из-за кавычек) в командной строке. Можно ли сравнить командный текст со строкой и заставить систему не учитывать кавычки? Спасибо

Public Sub CreatView(ByVal NomeView As String)
NomeView ="View1" 'example

Dim Com As String
Dim Comando As Command
Set Comando = New Command
Com = "StringView_123.Value"
Com = Replace(Com, "123", NomeView)
Comando.CommandText = Com 'Don't work
Comando.CommandText = StringView_View1.Value 'Work fine

Aplicacao.BSO.DSO.BDAPL.Execute (Comando.CommandText)


End Sub

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я заменил «commandtext» на CallByName, мой бой был в «value» (он был плохо позиционирован).

Public Sub CreatView(ByVal NomeView As String)
NomeView ="View1" 'example

Dim Com As String
Com = "StringView_123"
Com = Replace(Com, "123", NomeView)
Aplicacao.BSO.DSO.BDAPL.Execute (CallByName(Me, Com, VbMethod).Value)

End Sub
0 голосов
/ 31 октября 2018

Это строковые переменные (NomeView, Com):

NomeView ="View1" Com = "StringView_123.Value"

Это строковое свойство (CommandText является текстовым свойством объекта Comando):

Comando.CommandText = Com

StringView_123 выглядит как имя элемента управления (возможно, текстовое поле?) И имеет свойство Value.

Похоже, эти строки нужно изменить:

Com = "StringView_123.Value" Com = Replace(Com, "123", NomeView)

до:

Com = StringView_123.Value Com = Replace(Com, "123", NomeView)

Кавычки, которые имеются вокруг имени и свойства элемента управления, означают, что вы работаете со строковым значением («StringView_123.Value»), а не с именем элемента управления (StringView_123)

...