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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Fantasminha
José
não registrado
Postada em 23/03/2005 10:41 hs   
Bom Dia galera do VB
 
   Olha meu problema. Tenho um select bem simples (SELECT * FROM Monografia WHERE autores LIKE '%autor%' ORDER BY titulo) que tem que me chamar um resultado para ser adicionado em um Listview. Quando ele executa o SQL, acha o valor que eu quero, mas quando eu vou colocar no Listview,ele some e mostra que está NULL, incrivel, voce passa o mouse uma vez e ve o resultado, movimenta o mouse e coloca sobre o mesmo lugar e fica null, como isso pode acontecer, mistério!!!
O engraçado é que não são todas as linhas que estão com este problema, só algumas, pelo amor de Deus, alguém tem aí um caça-fantasmas para me explicar o que pode ser????
 
Exemplo de uma das Linhas com problema: Quando passa o mouse no rstfonte aparece, passo novamente some,MISTÉRIO ou não, HELP-ME
 
If rstFonte.Fields(1) <> "" Then Lista.SubItems(2) = Replace(Replace(Trim(rstFonte.Fields(1)), "´", "'"), vbNewLine, "; ") 'autor
 
 
Valew Galera
 
     
Maxcim
GUARULHOS
SP - BRASIL
Postada em 23/03/2005 10:57 hs            
Voçe já verificou se não há realmente valores nulos na sua tabela,
execute esta pesquisa diretamente no banco de dados e veja o resultado se não ficau compos Nulos
 
ou tente isto aqui...
Public Function nulo(str As Variant, Optional Sust As Variant) As String
Sust = IIf(IsEmpty(Sust) = False, Sust, " ")
Sust = IIf(IsMissing(Sust) = False, Sust, " ")
nulo = IIf(IsNull(str) = True, Sust, str)
End Function
 para chamar use...
Lista.SubItems(2) = Replace(Replace(Trim(nulo(rstFonte.Fields(1))), "´", "'"), vbNewLine, "; ") 'autor
 
esta funcaonzinha pega o recordsete verifica o valor se é nulo e renorna o Valor da mesma ou qualquer string que voce colocar
     
José
não registrado
Postada em 23/03/2005 11:02 hs   
E ai blz Maxcim
 
Olha só. Eu verifiquei tb no banco através do Query Analyser e realmente os dados estão no BD, mas não aparecem. Essa função eu já fiz uma parecida e dá na mesma.
 
 
 
     
Maxcim
GUARULHOS
SP - BRASIL
Postada em 23/03/2005 11:31 hs            
José, poste a parte do codigo desde a pesquisa  até a que insere dados no listview
     
José
não registrado
Postada em 23/03/2005 11:37 hs   
Ai vai
 
resp = resp & "%"
    resp = Replace(Trim(resp), "'", "´")
   
    Select Case Result
        Case 1: Sql = "SELECT * FROM Monografia WHERE autores LIKE '%" & resp & "' ORDER BY titulo"
     
        Case 2: Sql = "SELECT * FROM Monografia WHERE titulo LIKE '%" & resp & "' ORDER BY titulo"
       
        Case 3: Sql = "SELECT * FROM Monografia WHERE assunto LIKE '%" & resp & "' ORDER BY assunto"
       
        Case 4: Sql = "SELECT * FROM Monografia WHERE tombo LIKE '" & resp & "' ORDER BY tombo"
       
        Case 5: Sql = "SELECT * FROM Monografia WHERE  titulo LIKE '%" & resp & "' or notas LIKE '%" & resp & "' or assunto LIKE '%" & resp & "'ORDER BY tombo"
       
    End Select
   
    Set rstFonte = ADOConn.Execute(Sql)

    'limpa a lista de itens
    lstResultado.ListItems.Clear
    Set Lista = Nothing
   
    ' Carregar ListView
    If Senha = 1 Then
        If rstFonte.EOF = False And rstFonte.BOF = False Then
            rstFonte.MoveMin
            While Not rstFonte.EOF
                Set Lista = lstResultado.ListItems.Add
                If rstFonte.Fields(1) <> "" Then Lista.SubItems(1) = Replace(Replace(Trim(rstFonte.Fields(1)), "´", "'"), vbNewLine, "; ") 'autores
                If rstFonte.Fields(2) <> "" Then Lista.SubItems(2) = Replace(Replace(Trim(rstFonte.Fields(2)), "´", "'"), vbNewLine, "; ") 'titulo
                If rstFonte.Fields(8) <> "" Then Lista.SubItems(3) = Replace(Replace(Trim(rstFonte.Fields(8)), "´", "'"), vbNewLine, "; ") 'assunto
                rstFonte.MoveNext
            Wend
        End If
        If rstFonte.EOF = True And rstFonte.BOF = True Then
                MsgBox "Item não Cadastrado", vbInformation + vbOKOnly, "Aviso do Sistema"
                cmdSeleciona.Enabled = False
                Call MarcaTexto(txtResult)
        End If
    Else
        If rstFonte.EOF = False And rstFonte.BOF = False Then
            cmdSeleciona.Enabled = True
            rstFonte.MoveMin
            While Not rstFonte.EOF
                Set Lista = lstResultado.ListItems.Add
                If rstFonte.Fields(0) <> "" Then Lista.SubItems(1) = Replace(Trim(rstFonte.Fields(0)), "´", "'") 'tombo
                If rstFonte.Fields(1) <> "" Then Lista.SubItems(2) = Replace(Replace(Trim(rstFonte.Fields(1)), "´", "'"), vbNewLine, "; ") 'autor
                Lista.SubItems(2) = Trim(rstFonte.Fields("Autores")) 'autor
                If rstFonte.Fields(2) <> "" Then Lista.SubItems(3) = Replace(Replace(Trim(rstFonte.Fields(2)), "´", "'"), vbNewLine, "; ") 'titulo
                If rstFonte.Fields(3) <> "" Then Lista.SubItems(4) = Replace(Trim(rstFonte.Fields(3)), "´", "'") 'instituicao
                If rstFonte.Fields(4) <> "" Then Lista.SubItems(5) = Replace(Replace(Trim(rstFonte.Fields(4)), "´", "'"), vbNewLine, "; ") 'orientador
                If rstFonte.Fields(5) <> "" Then Lista.SubItems(6) = Replace(Trim(rstFonte.Fields(5)), "´", "'") 'local
                If rstFonte.Fields(6) <> "" Then Lista.SubItems(7) = Replace(Trim(rstFonte.Fields(6)), "´", "'") 'data
                If rstFonte.Fields(9) <> "" Then Lista.SubItems(8) = Replace(Trim(rstFonte.Fields(9)), "´", "'") 'paginas
                Lista.SubItems(9) = Replace(Trim(rstFonte.Fields(7)), "´", "'") 'doacao
                Lista.SubItems(10) = Replace(Trim(rstFonte.Fields(8)), "´", "'") 'assunto
                If rstFonte.Fields(10) <> Null Then Lista.SubItems(11) = Replace(Replace(Trim(rstFonte.Fields(10)), "´", "'"), vbNewLine, "; ") 'notas
                If rstFonte.Fields(10) <> Null Then Lista.SubItems(11) = Trim(rstFonte.Fields(10)) 'notas
                rstFonte.MoveNext
            Wend
        End If
        If rstFonte.EOF = True And rstFonte.BOF = True Then
                MsgBox "Itens não Cadastrados", vbInformation + vbOKOnly, "Aviso do Sistema"
                cmdSeleciona.Enabled = False
                Call MarcaTexto(txtResult)
        End If
 
 
Valew
     
Maxcim
GUARULHOS
SP - BRASIL
Postada em 23/03/2005 12:32 hs            
 
troque        If rstFonte.EOF = False And rstFonte.BOF = False Then
            cmdSeleciona.Enabled = True
            rstFonte.MoveMin
            While Not rstFonte.EOF
por
       If rstFonte.EOF = False And rstFonte.BOF = False Then
            cmdSeleciona.Enabled = True
            rstFonte.Move f i r s t ( tudo junto)
            While Not rstFonte.EOF
 
foi aunica coisa diferente que percibiem seu codigo
TÓPICO EDITADO
   
Página(s): 1/3      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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