LENDO DADOS SEPARADOS POR VIRGULA
Possuo uma serie de numeros gravados em um campo e separados por vÃrgula da seguinte forma:
17, 26, 38, 44, 12
Cada um destes números é o código de um cliente. Como ler estes dados em uma sequência e a cada leitura indicar uma ação?
Agradecido,
Gardel
17, 26, 38, 44, 12
Cada um destes números é o código de um cliente. Como ler estes dados em uma sequência e a cada leitura indicar uma ação?
Agradecido,
Gardel
Cara você terá que fazer uma função vou fazer aqui e já te mando
é o seguinte não sei se tua sequência sempre vai ser com 2 digitos entre as virgulas e sem espaço. Se for faça assim:
Dim a, qtd, c
a = [Ô]12,13,56,26,12,85,69,25,41,25[Ô] [ô]ex.: da sequência sem espaço entre virgulas e números
qtd = Len(a)
For i = 1 To qtd
If Mid(a, i, 1) <> [Ô],[Ô] Then
c = c & Mid(a, i, 1)
End If
If Len(c) = 2 Then [ô]quantidade de digitos para o código ser mostrado
MsgBox c
[ô]faça o select para buscar no banco de dados que você está utilizando
[ô]ex: access
[ô]Data1.RecordSource = [Ô]Select * from Clientes where int(codigo) = [ô][Ô] & Int(c) & [Ô][ô][Ô]
[ô]Data1.Refresh
c = [Ô][Ô]
End If
Next i
Se tiver espaço entre número e as virgulas ou se ocorreu de ter código com mais digitos acima de 2 é só você adaptar.
A idéia é essa ai.
Ver se te ajuda?
Dim a, qtd, c
a = [Ô]12,13,56,26,12,85,69,25,41,25[Ô] [ô]ex.: da sequência sem espaço entre virgulas e números
qtd = Len(a)
For i = 1 To qtd
If Mid(a, i, 1) <> [Ô],[Ô] Then
c = c & Mid(a, i, 1)
End If
If Len(c) = 2 Then [ô]quantidade de digitos para o código ser mostrado
MsgBox c
[ô]faça o select para buscar no banco de dados que você está utilizando
[ô]ex: access
[ô]Data1.RecordSource = [Ô]Select * from Clientes where int(codigo) = [ô][Ô] & Int(c) & [Ô][ô][Ô]
[ô]Data1.Refresh
c = [Ô][Ô]
End If
Next i
Se tiver espaço entre número e as virgulas ou se ocorreu de ter código com mais digitos acima de 2 é só você adaptar.
A idéia é essa ai.
Ver se te ajuda?
O código é praticamente o mesmo mas com um recurso da linguagem:
a = [Ô]12,13,56,26,12,85,69,25,41,25[Ô]
Matriz = split(a,[Ô],[Ô]) [ô]cria a matriz com os valores entre as vÃrgulas
Wtotal = 0.00
for Wx = 0 to bound(Matriz)
Wvalor = cdbl(replace(Matriz(Wx),[Ô] [Ô],[Ô][Ô])
Wtotal = Wtotal + Wvalor
next Wx
a = [Ô]12,13,56,26,12,85,69,25,41,25[Ô]
Matriz = split(a,[Ô],[Ô]) [ô]cria a matriz com os valores entre as vÃrgulas
Wtotal = 0.00
for Wx = 0 to bound(Matriz)
Wvalor = cdbl(replace(Matriz(Wx),[Ô] [Ô],[Ô][Ô])
Wtotal = Wtotal + Wvalor
next Wx
Private Sub Command1_Click()
Dim matrizcodClientes() As String
Dim campoComOsCodigos As String
campoComOsCodigos = [Ô]17, 26, 38, 44, 12[Ô] [ô]exemplo
matrizcodClientes = Split(campoComOsCodigos, [Ô],[Ô])
For i = LBound(matrizcodClientes) To UBound(matrizcodClientes)
[ô]aqui dentro é recuperado todos os codigos existentes dentro da variavel campoComOsCodigos em ordem sequencial
MsgBox matrizcodClientes(i)
Next i
End Sub
Dim matrizcodClientes() As String
Dim campoComOsCodigos As String
campoComOsCodigos = [Ô]17, 26, 38, 44, 12[Ô] [ô]exemplo
matrizcodClientes = Split(campoComOsCodigos, [Ô],[Ô])
For i = LBound(matrizcodClientes) To UBound(matrizcodClientes)
[ô]aqui dentro é recuperado todos os codigos existentes dentro da variavel campoComOsCodigos em ordem sequencial
MsgBox matrizcodClientes(i)
Next i
End Sub
obrigado, amigos
Vou testar
Vou testar
Todas as respostas foram muito boas, obrigado pela atenção
Tópico encerrado , respostas não são mais permitidas