JUNTAR DADOS EM UMA STRING

IRENKO 12/04/2013 10:00:54
#421836
Não sei se é possivel, mas não custa tentar.

Em uma tabela tenho os campos DADOS e ID, sendo:

DADOS ID

Carlos 13
Pedro 1
Pedro 15
Pedro 10
Pedro 3
Carlos 1
Carlos 20
Em uma Select quero pegar os ID[ô]s referente à Pedro e jogar dentro de uma variavel string em sequencia ou em uma array. è possivel???
GANDA.NICK 12/04/2013 10:19:09
#421839
Resposta escolhida
Olá

Dim myarr() As Variant

sql = [Ô]select id from sua_tabela where dados = [ô] [Ô] & strpesquisa & [Ô] [ô] order by id[Ô]

myRS.Open sql, myCon, adOpenForwardOnly, adLockReadOnly, adCmdText

myarr= myRS.GetRows



não testei, mas não deve estar longe disto...

LEANDROVIP 12/04/2013 11:58:05
#421849
Seguindo a lógica do colega GANDA_NICK

Para você trabalhar com eles através de um [Ô]For[Ô] seria o seguinte..

   
dim i as integer
for i = 0 to UBound(myarr,2)
msgbox [Ô]Este é o id: [Ô] & myarr(0,i)
next


Até mais :)
IRENKO 12/04/2013 13:16:03
#421850
estou tentando isso:

Private Sub CarregaID()
Dim myarr() As Variant
Set RdsGeral = New ADODB.Recordset

If RdsGeral.State = 1 Then RdsGeral.Close
sql = [Ô]select Representante,id from Entrada where Representante = [ô] [Ô] & QuardaRepresentante & [Ô] [ô] order by id[Ô]

RdsGeral.Open sql, ConexaoContrato, adOpenForwardOnly, adLockReadOnly, adCmdText
Do While RdsGeral.EOF = False
myarr() = RdsGeral.GetRows

Loop
Label1.Caption = myarr()
End Sub

Porem tá dando erro: Type Mismatch acima em negrito
IRENKO 12/04/2013 13:42:36
#421857
Com um Collection como ficaria? Tentei isso mas não funciona!!

Private Sub CarregaID()
Dim Lista As New Collection
Set RdsGeral = New ADODB.Recordset

If RdsGeral.State = 1 Then RdsGeral.Close
sql = [Ô]select Representante,id from Entrada where Representante = [ô] [Ô] & QuardaRepresentante & [Ô] [ô] order by id[Ô]

RdsGeral.Open sql, ConexaoContrato, adOpenForwardOnly, adLockReadOnly, adCmdText
Do While RdsGeral.EOF = False
Lista.Add !ID
Loop
Label1.Caption = Lista
End Sub
GANDA.NICK 12/04/2013 15:02:33
#421865
vc não precisa de fazer um loop usando o .getrows

é só verificar se o recordset não esta vazio

If Not RdsGeral.EOF Then myarr() = RdsGeral.GetRows




ou então usando o loop passando um a um:



Dim myarr() As Variant


If Not RdsGeral.EOF Then
RdsGeral.MoveFirst
While Not RdsGeral.EOF
ReDim Preserve myarr(i)
myarr(i) = RdsGeral.Fields(0)
RdsGeral.MoveNext
i = i + 1
Wend
End If



no seu select coloque primeiro o ID e depois o representante, vc nem necessita do Representante se só quiser o ID



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