ARRAY EM SQL
tenho uma array motatada exemplo:
Nomes = Array([Ô]Mané[Ô], [Ô]Pedro[Ô], [Ô]Ferreira[Ô], [Ô]Geraldo[Ô])
Como jogo esses nomes em uma variavel para utilizar em uma where de uma consulta Sql? Ou seja,
mSql = [Ô]SELECT Dados.* FROM Dados where Nomes= [Ô][Ô][Ô] + Nomes + [Ô][Ô][Ô] Order By Usuario;[Ô]
Eu vou montar um grid com os dados referentes aos nome contidos na variavel, isso é possivel?
Nomes = Array([Ô]Mané[Ô], [Ô]Pedro[Ô], [Ô]Ferreira[Ô], [Ô]Geraldo[Ô])
Como jogo esses nomes em uma variavel para utilizar em uma where de uma consulta Sql? Ou seja,
mSql = [Ô]SELECT Dados.* FROM Dados where Nomes= [Ô][Ô][Ô] + Nomes + [Ô][Ô][Ô] Order By Usuario;[Ô]
Eu vou montar um grid com os dados referentes aos nome contidos na variavel, isso é possivel?
utiliza o IN
SELECT Dados.* FROM Dados where Nomes IN ([ô][Ô] & nomes & [Ô][ô]) Order By Usuario[Ô]
SELECT Dados.* FROM Dados where Nomes IN ([ô][Ô] & nomes & [Ô][ô]) Order By Usuario[Ô]
não deu!
For I = 1 To .Rows - 1
nomes = nomes & [Ô],[Ô] & Variável de registros ou sei lá campo onde contém as variáveis
Next I
Daà depois é só usar a SQL
SELECT * FROM Dados where Nomes IN ([Ô] & nomes & [Ô])
nomes = nomes & [Ô],[Ô] & Variável de registros ou sei lá campo onde contém as variáveis
Next I
Daà depois é só usar a SQL
SELECT * FROM Dados where Nomes IN ([Ô] & nomes & [Ô])
Explicado melhor.
Em uma Sql normal seria assim:
mSql = [Ô]SELECT Dados.* FROM Dados where Nome= [ô]Mané[ô] or Nome= [ô]Pedro[ô] or Nome= [ô]Ferreira[ô] or Nome= Geraldo[ô] Order By Nome;[Ô]
para evitar um where estenso pois vai haver varios nomes, queria juntar todos em uma variavel, ou em uma array e jogar para uma variavel string e depois chama-la na sql, ficaria assim:
mSql = [Ô]SELECT Dados.* FROM Dados where Nome= [Ô][Ô][Ô] + Variavel + [Ô][Ô][Ô] Order By Nome;[Ô]
isso é possivel?
Em uma Sql normal seria assim:
mSql = [Ô]SELECT Dados.* FROM Dados where Nome= [ô]Mané[ô] or Nome= [ô]Pedro[ô] or Nome= [ô]Ferreira[ô] or Nome= Geraldo[ô] Order By Nome;[Ô]
para evitar um where estenso pois vai haver varios nomes, queria juntar todos em uma variavel, ou em uma array e jogar para uma variavel string e depois chama-la na sql, ficaria assim:
mSql = [Ô]SELECT Dados.* FROM Dados where Nome= [Ô][Ô][Ô] + Variavel + [Ô][Ô][Ô] Order By Nome;[Ô]
isso é possivel?
Como o usuário irá consultar?
Poste um PRINT pra gente ter uma idéia.
Poste um PRINT pra gente ter uma idéia.
a forma que o colega TRSOFTWARES postou é a correta, porém vc não poderá usar array como usou
ou seja não poderá fazer assim
Nomes = Array([Ô]Mané[Ô], [Ô]Pedro[Ô], [Ô]Ferreira[Ô], [Ô]Geraldo[Ô])[ô]forma errada
a forma correta seria esta
veja se funciona
ou seja não poderá fazer assim
Nomes = Array([Ô]Mané[Ô], [Ô]Pedro[Ô], [Ô]Ferreira[Ô], [Ô]Geraldo[Ô])[ô]forma errada
a forma correta seria esta
Nomes = [Ô]([ô]Mané[ô],[ô]Pedro[ô],[ô]Ferreira[ô],[ô]Geraldo[ô])[Ô]
Sql = [Ô]SELECT Dados.* FROM Dados where Nomes IN [Ô] + Nomes + [Ô] Order By Usuario;[Ô]
veja se funciona
Pessoal, estou insistino por curiosidade. Conforme abaixo consegui juntar os nomes em uma variavel.
Dim X() As String
Dim Card As String
X() = Split([Ô]Mané,Pedro,Ferreira,Geraldo[Ô], [Ô],[Ô])
Card = [Ô][ô][Ô] & Join(X, [Ô][ô],[Ô] & [Ô][ô][Ô]) & [Ô][ô][Ô]
Meu Select:
mSql = [Ô]SELECT Dados.* FROM Dados where Credor In ( [Ô][Ô][Ô] + Card + [Ô][Ô][Ô]) Order By Usuario;[Ô]
Veja o Debug.Print do mSql abaixo:
Debug.Print
SELECT Dados.* FROM Dados where Credor In ( [Ô][ô]Mané[ô],[ô]Pedro[ô],[ô]Ferreira[ô],[ô]Geraldo[ô][Ô]) Order By Usuario;
o problema é as aspas duplas q aparece na variavel, como tirar as mesmas para o (IN) funcionar?
Dim X() As String
Dim Card As String
X() = Split([Ô]Mané,Pedro,Ferreira,Geraldo[Ô], [Ô],[Ô])
Card = [Ô][ô][Ô] & Join(X, [Ô][ô],[Ô] & [Ô][ô][Ô]) & [Ô][ô][Ô]
Meu Select:
mSql = [Ô]SELECT Dados.* FROM Dados where Credor In ( [Ô][Ô][Ô] + Card + [Ô][Ô][Ô]) Order By Usuario;[Ô]
Veja o Debug.Print do mSql abaixo:
Debug.Print
SELECT Dados.* FROM Dados where Credor In ( [Ô][ô]Mané[ô],[ô]Pedro[ô],[ô]Ferreira[ô],[ô]Geraldo[ô][Ô]) Order By Usuario;
o problema é as aspas duplas q aparece na variavel, como tirar as mesmas para o (IN) funcionar?
tente assim
tente
mSql = [Ô]SELECT Dados.* FROM Dados where Credor In ([Ô] + Card + [Ô]) Order By Usuario;[Ô]
tente
Tópico encerrado , respostas não são mais permitidas