COMANDO LOCALIZAR

KELVINCD 17/01/2013 02:06:13
#417588
Tenho no banco uma coluna que esta sendo salva da seguinte maneira:
Banco FireBird
1-3-4-5-6-7-8-9-10-11-12-13-14-15
[Ô]salva somente 15 números[Ô]

quando digitar algum valor em um text1.text por exemplo

1-3-5-7-9-2-4-6-7-15-23-22-21

Verificar no banco todos os registros que contenham esses números e retorna-los em um listview.
como monto isso.
MARCELO.TREZE 17/01/2013 08:12:35
#417591
não entendi explica isso com um exemplo.
KELVINCD 17/01/2013 08:36:27
#417592
tenho um registro com 15 números.
na busca vo digitar 11,12,13,14,15 números ai quero verificar todos sos registros salvos com esses números.
Exemplo;
tenho salvo.
1-3-4-5-6-8-9-10-11-13-14-15-19-22-25
1-3-4-5-6-8-9-10-16-13-14-15-19-22-25
1-3-4-5-6-8-9-10-17-13-14-15-19-22-25
1-3-4-5-6-8-9-10-18-13-14-15-19-22-25
1-3-4-5-6-8-9-10-11-13-14-15-21-22-25

e eu localizasse com os valores
1-3-4-5-6-8-9-10-13-14-15-19

teria que me trazer todos os registros que contenham esses valores.
to tentando monta um esquema onde vejo todas as possibilidades de jogar
uma certa sequencia e tentaria localizar pelo ultimo sorteio ai eu saberia quantas vezes eu ganharia
LUIZCOMINO 17/01/2013 08:41:30
#417594
[Ô]Select Campo From Tabala Where Campo in([ô][Ô] & replace([Ô]1-3-4-5-6-7-8-9-10-11-12-13-14-15[Ô],[Ô]-[Ô],[Ô],[Ô]) & [Ô][ô])[Ô]

resultado final fica

Select Campo From Tabala Where Campo in([ô]1,3,4,5,6,7,8,9,10,11,12,13,14,15[ô])
KELVINCD 17/01/2013 08:54:48
#417596
assim?
[Ô]Select Campo From Tabala Where Campo in([ô][Ô] & replace [ô][Ô] & ucase(text1.text) & [ô][Ô])[Ô]

LUIZCOMINO 17/01/2013 09:20:49
#417598
[Ô]Select Campo From Tabala Where Campo in([ô][Ô] & replace(text1.text,[Ô]-[Ô],[Ô],[Ô]) & [ô][Ô])[Ô]
KELVINCD 17/01/2013 10:24:18
#417605
Testei seu cogigo mas diz que não contem nenhum registro com esse valor

Acho que me expressei mal.
tenho 15 números distinto no banco de dados salvos da seguinte maneira.
x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x

preciso localizar nos registros todos os registros que contenham esses valores
x-x-x-x-x-x-x-x-x-x-x-x-x-x-x

Ex:
1-3-4-5-6-8-9-10-11-13-14-15-19-22-25
1-3-4-5-6-8-9-10-16-13-14-15-19-22-25
1-3-4-5-6-8-9-10-17-13-14-15-19-22-25
1-3-4-5-6-8-9-10-18-13-14-15-19-22-25
1-3-4-5-6-8-9-10-11-13-14-15-21-22-25

localizar
1-3-8-9-11-14-15-16-19-21-22

Mais não na ordem digitada pra busca, terei que verificar todo os registros e se conter algum desses ou todos eles me retorna-no.

ceio que o comando contendo seria melhor.mas n sei montalo
ALVAROVB2009 17/01/2013 12:24:52
#417620
Resposta escolhida
KELVINCD como que ficou o seu código, posta ai para a gente dar uma olhada, pois o que o nosso amigo LUIZCOMINO esta correto.

Alguma observações
Primeiro como que será feita essa busca, o usuário vai digitar o código no text e vai ser feita a busca individualmente?
Segundo o seu campo código é do tipo número?
Se a resposta for sim para os dois itens, o seu código não precisa do replace ele ficaria dessa forma
[Ô]Select * from tabela where codigo = [Ô] & text1.text
Caso a resposta seja não para a segunda pergunta
[Ô]Select * from tabela where codigo = [ô][Ô] & text1.text & [Ô][ô][Ô]

Caso a busca não seja feita individualmente, use o código do LUIZCOMINO, más tenha o cuidado com o seguinte, o comando IN aceita apenas a separação feita por vírgula e se por acaso o usuário usar ; no lugar de -, o comando não irá funcionar

Eu estava lendo novamente e se no seu campo estiver cadastrado dessa forma 1-3-4-5-6-8-9-10-11-13-14-15-19-22-25
faça uma mudança no comando, use o LIKE, ficaria assim

[Ô]Select * from tabela where codigo LIKE [ô][Ô] & text1.text & [Ô]%[ô][Ô]
Dessa forma a cada número digitado ele fará a busca, más tome cuidado com o a separação dos número, caso use ; no lugar de - não vai trazer nada que venha depois do ; ex:
1-3-4-5-6-8-9-10-11-13-14-15-19-22-25
1-3-4-5-6-8-9-10-16-13-14-15-19-22-25
1-3-4-5-6-8-9-10-17-13-14-15-19-22-25
1-3-4-5-6-8-9-10-18-13-14-15-19-22-25
1-3-4-5-6-8-9-10-11-13-14-15-21-22-25

Caso digite
1;3;8;9;11;14;15;16;19;21;22
Ele vai trazer todos, porque vai encontrar o primeiro caracter 1

Qqer coisa posta ai

KELVINCD 17/01/2013 14:46:45
#417633
Aqui vai meu codigo:
lembrando uso banco firebird os dados são gravados da seguinte maneira:
Campo no banco se chama jogo do tipo varchar, nome da tabela teste
1 - 3 - 4 - 5 - 6 - 8 - 9 - 10 - 11 - 13 - 14 - 15 - 19 - 22 - 25

Private Sub Text17_lostfocus()
Text17 = Replace(Text17, [Ô]-[Ô], [Ô];[Ô]) [ô] posso formatar aqui da maneira que precisar ser no banco
End Sub


Private Sub Command2_Click()
Call locajogo
End Sub

Private Sub locajogo()
Dim item As ListItem
Dim aSQL As String
aSQL = ([Ô]Select * from teste where jogo LIKE [ô][Ô] & Text17.Text & [Ô]%[ô][Ô])
ListView1.ListItems.Clear
Set rsDados = New ADODB.Recordset
rsDados.CursorLocation = vCursorLocation
rsDados.CursorType = vCursorType
rsDados.LockType = vLockTypeLeitura
rsDados.Source = aSQL
rsDados.ActiveConnection = dados
Debug.Print (aSQL)
rsDados.Open
If rsDados.EOF = False Or rsDados.BOF = False Then
Do While Not rsDados.EOF
Set item = ListView1.ListItems.Add(, , (rsDados([Ô]jogo[Ô])))
rsDados.MoveNext
Loop
ListView1.Enabled = True
Else
MsgBox [Ô]Nenhum registro foi encontrado. Tente novamente![Ô], vbInformation, [Ô]Procurando...[Ô]
ListView1.Enabled = False
End If
rsDados.Clone
Set rsDados = Nothing
End Sub
MARCELO.TREZE 17/01/2013 15:08:09
#417636
acredito que o IN seja o caminho teste assim

[Ô]Select Campo From Tabala Where Campo in([ô]1[Ô],[ô]3[ô],[ô]4[ô],[ô]5[ô],[ô]6[ô],[ô]8[ô],[ô]9[ô],[ô]10[ô],[ô]13[ô],[ô]14[ô],[ô]15[ô],[ô]19[ô])[Ô]


repare que coloquei cada valor diretamente na query teste assim e veja se retorna o resultado esperado, dando certo resolveremos o resto
KELVINCD 17/01/2013 15:14:25
#417637
Não retorna nenhum valor.
So queria que localizase no banco os campos que contenham os valores que digitar mas não necessariamente na ordem na ordem digitada
Página 1 de 2 [17 registro(s)]
Tópico encerrado , respostas não são mais permitidas