Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Caulfield

[Resolvido] DataGrid

Recommended Posts

Bom dia Galera,

É o seguinte, eu quero exibir os dados em um datagrid de acordo com o que eu digitar em um Text. O problema é o seguinte. Por exemplo, quando eu digito "1" o data aparece todos os registros que que começam com 1. E eu só queria que aparecesse o registro "1", entenderam? Como faço para que apareça somente os registros que os valores forem exatamente iguais?

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso esteja falando de SQL, para que apareça apenas o item procurado envolva-o com %, como no exemplo:

 

select NOME from tabela where MOME like "'% VARIALVEL %'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso esteja falando de SQL, para que apareça apenas o item procurado envolva-o com %, como no exemplo:

 

select NOME from tabela where MOME like "'% VARIALVEL %'"

 

 

para registros iguais seria o operador "=" ao invés do "like"

 

 

select * from tabela where campo = 1

 

 

Posta seu código para darmos uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Caso esteja falando de SQL, para que apareça apenas o item procurado envolva-o com %, como no exemplo:

 

select NOME from tabela where MOME like "'% VARIALVEL %'"

 

 

para registros iguais seria o operador "=" ao invés do "like"

 

 

select * from tabela where campo = 1

 

 

Posta seu código para darmos uma olhada.

 

 

Então, eu estava usando esse código:

 

If cboPesquisa.Text = "Por Número" Then
    adcFilmes.RecordSource = "SELECT Numero, Portugues, Ingles FROM Filmes WHERE (Numero) like '" & UCase(txtPesquisa.Text) & "%' ORDER BY Numero"
    End If

Dai tirei o % e funcionou do jeito que eu queria.

 

Agora o problema é outro. Sempre que acrescento uma nova observação(estou usando o access como banco de dados) não consigo fazer o Datagrid atualizar. Qual o código que eu posso utilizar para fazer ele atualizar assim que eu acrescentar.

 

Eu tô usando esse código:

 

With adcObser
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & App.Path & "\OrdemdeDesenvolvimento.mdb"
    .RecordSource = "Select Obser, Data FROM Obser WHERE NumeroOrdem like '" & txtNumero.Text & "' ORDER BY Data"
End With

Set dtaObser.DataSource = adcObser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do select.

Use o operador "=" ao invés do like. O resultado vai ser o mesmo, mas cada um serve para coisas diferentes.

 

 

Não tem um .Refresh ou .Databind no grid ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do select.

Use o operador "=" ao invés do like. O resultado vai ser o mesmo, mas cada um serve para coisas diferentes.

 

 

Não tem um .Refresh ou .Databind no grid ?

 

 

Não funciona... Alguma outra sugestão?

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece algum erro ? Poste o erro se aparecer algum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que estranho Caulfiled se não funcionou deveria aparecer algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que estranho Caulfiled se não funcionou deveria aparecer algum erro.

 

 

Se eu uso .refresh não aparece nenhum erro e se uso .databindings aparece "compile error: invalid use of property"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está inserindo um novo valor na tabela?

 

Pelo execute da conexao ou pelo recordset com addnew e update?

 

Caso seja a primeira opção, dar apenas um .refresh no grid não adiantará, pois nem seu recordset sabe que sua tabela foi alterada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está inserindo um novo valor na tabela?

 

Pelo execute da conexao ou pelo recordset com addnew e update?

 

Caso seja a primeira opção, dar apenas um .refresh no grid não adiantará, pois nem seu recordset sabe que sua tabela foi alterada.

 

 

Pelo addnew e update.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo eu tenho um exemplo mais usei data1

 

Private Sub txtDescricao_Change()
If cboCampo = "Nome" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Nome like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Nome = '" & Trim$(txtDescricao) & "'"
    End If
End If
If cboCampo = "Data de Entrada" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Entrada like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Entrada = '" & Trim$(txtDescricao) & "'"
    End If
End If
If cboCampo = "Código" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where ID2 like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where ID2 = '" & Trim$(txtDescricao) & "'"
    End If
End If
Data1.Refresh
End Sub

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo eu tenho um exemplo mais usei data1

 

Private Sub txtDescricao_Change()
If cboCampo = "Nome" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Nome like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Nome = '" & Trim$(txtDescricao) & "'"
    End If
End If
If cboCampo = "Data de Entrada" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Entrada like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where Entrada = '" & Trim$(txtDescricao) & "'"
    End If
End If
If cboCampo = "Código" Then
    If cboRelacionamento = "Aprox." Then
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where ID2 like '" & Trim$(txtDescricao) & "*'"
    Else
      Data1.RecordSource = "select ID2, Nome, Endereço, Bairro, Cep, Telefone, Celular, Descrição, Entrada, Saida, Preço, Pago from " & _
      "Pedidos where ID2 = '" & Trim$(txtDescricao) & "'"
    End If
End If
Data1.Refresh
End Sub

espero ter ajudado

 

Isso que você fez é pra ele atualizar de acordo com o valor que eu digito na caixa de texto, correto? Isso eu consigo fazer o que não dá certo é o seguinte.

 

Eu tenho uma tabela onde vai o nome do cliente, trabalho e OD. E tenho uma outra tabela onde são armazenadas as Observações da OD. Então quando eu acrescento alguma informação o grid não atualiza. A nova observação não aparece na hora. Eu tenho que fechar o form e abri-lo novamente para ver a observação. Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Finalmente consegui. Só que achei que não está bem feito, pois para dar certo tive que fazer da seguinte maneira:

 

Abrir as conexões quando o form abre. Fechar as conexões. Quando o usuário dá um novo ele abre de novo e quando salva fecha.

 

O que acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom isso não está né. Mas se de outras formas não deu certo, começo a achar que o VB não conseguirá resolver se não assim.

Mas acho que não precisa fechar e abrir tantas vezes. Pode manter aberta no load do form, e quando adicionar um novo, fecha e abre de novo em seguida, ai carrega o grid.

 

Tenta assim, ve se vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou. Valew.

 

Agora uma outra dúvida. Eu pedi pra mostra os valores em ordem por data. Tem como a Ordem ser decrescente e pela data inteira? (tipo data e hora)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.