USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Numero vago
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 10/05/2008 15:02 hs            
Essa parece dificil!!

Existe maneira de buscar na tabela um número faltante em uma sequencia?

Tenho gravado no campo (Numero) de uma tabela os números:

1-2-3-4-5-7-8-9-10

como posso fazer um select e buscar o faltante, no caso o (6)? Uso access(ADO)

obs. esse numeros são gravados como texto.
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 10/05/2008 18:14 hs            
pergunta os numeros são separados ou a sequencia está em apenas um campo?
 
     
Ama
Pontos: 2843
UBERLÂNDIA
MG - BRASIL
ENUNCIADA !
Postada em 11/05/2008 01:12 hs         
esta função funciona mas o campo tem que ser numerico para ficar ordenado de forma crescente
 
Function FindBlank()
   Dim mx As Integer
   Dim cn As ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim rsVal As String
Set cn = New ADODB.Connection
  With cn
     ' especifica o provedor Jet
    .Provider = "Microsoft.Jet.OLEDB.4.0"
     ' Leitura/gravaçao
    .Mode = adModeReadWrite
    .CursorLocation = adUseClient
    .ConnectionString = "data source=c:     empd1.mdb ;Jet OLEDB:Database Password= " & Senha
    .Open
  End With
Set rs = New ADODB.Recordset
rs.ActiveConnection = cn
rs.Open "Select * from tabela1 order by tabela1.idtxt"
   rs.MoveMin
   mx = 1
   ' Loop to make sure you have the maximum number.
   Do While Not rs.EOF
      rsVal = rs.Fields("IDtxt").Value
      If rsVal > mx Then
         Exit Do
      End If
      rs.MoveNext
      mx = mx + 1
   Loop
   FindBlank = mx
   rs.Close
   cn.Close
   Set rs = Nothing
   Set db = Nothing
End Function
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 12/05/2008 10:29 hs            
Com este codigo independe da ordem da sequencia
dim MaiorValor as integer 'esta variavel receberá o maior valor da sua sequencia
dim lista as variant
 
agora é  só fazer um loop
redim lista(MaiorValor) as integer
j=0
for i= 1 to maior valor
           ssql = " select count from tabela where campo =" & i
           coloca aki a consulta de do ADO
           'n=tabela.recordcount
           if n= 0 then ' se o numero não estiver na tabela, armazena na lista
                 j=j+1
                 lista(j)= i     
            else
            endif
    next i
' para saber os numeros q faltam é só fazer um loop na lista
for i=1 to j
       printer.print lista(i)
next i
 
     
Jose Ari
MANAUS
AM - BRASIL
Postada em 13/05/2008 23:26 hs            
se fosse eu faria assim:
 
dim ValorFalta() as integer
dim i as integer
dim Contagem as integer
 
'abre teu banco aqui
'abre a tabela aqui
 
Tabela.MoveMin
 
Contagem = 1
 
Do While Tabela.EOF
   i = Tabela!codigo
   if i <> Contagem then
      redim preserve ValorFalta(Contagem)
      ValorFalta(Contagem) = Contagem
      Contagem = Contagem + 1
  end if
      Contagem = Contagem + 1
      Tabela.MoveNext
Loop
 
No final os valores que faltam vao ficar assim, por exemplo:
ValorFalta(6) = 6
ValorFalta(15) = 15
... e assim por diante....
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página