ARRAY EM SQL

IRENKO 01/04/2011 12:49:00
#370063
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?
TRTNCG 01/04/2011 12:59:23
#370064
utiliza o IN

SELECT Dados.* FROM Dados where Nomes IN ([ô][Ô] & nomes & [Ô][ô]) Order By Usuario[Ô]
IRENKO 01/04/2011 13:12:30
#370067
não deu!
TRTNCG 01/04/2011 13:26:05
#370070
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 & [Ô])
IRENKO 01/04/2011 15:02:32
#370092
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?
TECLA 01/04/2011 21:14:03
#370130
Como o usuário irá consultar?
Poste um PRINT pra gente ter uma idéia.
MARCELO.TREZE 02/04/2011 03:34:44
#370176
Resposta escolhida
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

Nomes = [Ô]([ô]Mané[ô],[ô]Pedro[ô],[ô]Ferreira[ô],[ô]Geraldo[ô])[Ô]
Sql = [Ô]SELECT Dados.* FROM Dados where Nomes IN [Ô] + Nomes + [Ô] Order By Usuario;[Ô]


veja se funciona




IRENKO 07/04/2011 08:27:46
#370707
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?
MARCELO.TREZE 07/04/2011 18:54:34
#370774
tente assim

mSql = [Ô]SELECT Dados.* FROM Dados where Credor In ([Ô] + Card + [Ô]) Order By Usuario;[Ô]

tente

Tópico encerrado , respostas não são mais permitidas