JUNTAR DADOS EM UMA STRING
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???
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???
Olá
não testei, mas não deve estar longe disto...
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...
Seguindo a lógica do colega GANDA_NICK
Para você trabalhar com eles através de um [Ô]For[Ô] seria o seguinte..
Até mais :)
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 :)
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
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
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
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
vc não precisa de fazer um loop usando o .getrows
é só verificar se o recordset não esta vazio
ou então usando o loop passando um a um:
no seu select coloque primeiro o ID e depois o representante, vc nem necessita do Representante se só quiser o ID
é 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