ATUALIZAR MSFLEXGRID

DOUGLASGARCIA 08/11/2011 13:25:30
#388711
boa tarde

Estou com uma duvida, tenho um formulario que tem textbox e tambem um msflexgrid, ao atualizar um dado no textbox gostaria que atualizasse tambem no
msflexgrid.
Para isso acontecer tenho que sair e entrar no formulario de novo

Existe alguma forma de atualizar junto com o txtbox?

obrigado

JULIANOPAN 08/11/2011 13:32:15
#388713
é so chamar o evento que atualiza o msflexgrid na hora de trocar as letras do textbox

Private Sub TFiltro_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TFiltro.TextChanged
[ô]aqui vc coloca o evento que atualiza o flexgrid
End Sub

ou
[ô]aqui quando o usuario apertar o enter
Private Sub TFiltro_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TFiltro.KeyDown
If e.KeyCode = Keys.Enter Then
[ô]aqui vc coloca o evento que atualiza o flexgrid
End If
End Sub
Private Sub TFiltro_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TFiltro.TextChanged
AtualizaGrid()
End Sub
OMAR2011 08/11/2011 13:48:49
#388718
Paraou para pensar o abre fecha no TFiltro_TextChanged.Acho não muito convencional.Douglas explica melhor,[Ô]Atulizar um dado noTextbox[Ô]?
DOUGLASGARCIA 08/11/2011 15:05:35
#388732
Na verdade não expliquei direito;
tenho um formulario no qual tem varias textbox e tambem um msflexgrid. quando faço um novo cadastro, este novo cadastro não aparece no msflexgrid a não ser que feche o formulario e abra novamente.

qual o codigo para atualizar o msflexgrid?


FILMAN 08/11/2011 15:36:39
#388739
Vamos lá:

Quando você abre o FORM você coloca uma rotina no FORM_LOAD correto? é por isso que seu FLEX atualiza quando abre o form

Faça o seguinte após o usuário digitar todas as informações necessárias para o cadastro:
Citação:

1 AGRAVE OS DADOS NA TABELA
2 FECHA A CONEXÃO COM AS TABELAS E COM O BANCO
3 REABRA AS CONEXÕES NOVAMENTE
4 CHAME A ROTINA QUE VOCÊ UTILIZA NO FORM_LOAD AO ABRIR O FORM




Qualquer duvida posta ai.
OMAR2011 08/11/2011 15:52:17
#388742
Resposta escolhida
Eu ainda sou do tipo, de dar uma dica fazendo você raciocinar.é assim que aprende.A dica do FILMAN é o ideal.Se não conseguir pede ajuda novamente sem medo.Mais uma,
use o [Ô]LISTVIEW[Ô].Mais rápido e bem melhor.
DOUGLASGARCIA 08/11/2011 19:09:20
#388756
entendi como fazer, mas não sei o codigo para fechar a conexão do msflexgrid, uso o seguintes codigos:

Private Sub carregar_msflexgrid()
grdPesquisa.ColWidth(0) = 1200
grdPesquisa.ColWidth(1) = 1200
grdPesquisa.ColWidth(2) = 7600
grdPesquisa.ColWidth(3) = 1200
grdPesquisa.ColWidth(4) = 1400
MontarLista

End Sub


Private Sub MontarLista()

Dim rs As New ADODB.Recordset
Dim sql As String
Dim Criterio As String

grdPesquisa.TextMatrix(0, 0) = [Ô]codpedido[Ô]
grdPesquisa.TextMatrix(0, 1) = [Ô]data[Ô]
grdPesquisa.TextMatrix(0, 2) = [Ô]local[Ô]
grdPesquisa.TextMatrix(0, 3) = [Ô]situação[Ô]
grdPesquisa.TextMatrix(0, 4) = [Ô]produzido[Ô]


Criterio = Chr$(39) & txtDadosPesquisa & [Ô]%[Ô] & Chr(39)

sql = [Ô]SELECT codigopedido, datapedido,cargas,situação,produzido FROM PEDIDO_VENDA WHERE PEDIDO_VENDA.codigopedido Like [Ô] & Criterio & [Ô] ORDER BY codigopedido[Ô]

On Error Resume Next

With rs

.Open sql, cnSQL, adOpenForwardOnly, adLockReadOnly

If .EOF Then

MsgBox [Ô]Registro não encontrado[Ô], vbExclamation, [Ô]Atenção[Ô]

Limpa
grdPesquisa.TextMatrix(1, 0) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 1) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 2) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 3) = [Ô][Ô]
grdPesquisa.TextMatrix(1, 4) = [Ô][Ô]
Else

Limpa

Do Until .EOF

grdPesquisa.AddItem rs(0) & vbTab & rs(1) & vbTab & rs(2) & vbTab & rs(3) & vbTab & rs(4)

.MoveNext
Loop

grdPesquisa.RemoveItem 1

End If

.Close

End With

End Sub

Private Sub Form_Load()

carregar_msflexgrid
End Sub
FILMAN 09/11/2011 00:31:52
#388765
Você ja esta fechando a conexão do FLEX na linha antes do End With

Agora só é necessário fechar o resto da conexão que esta trabalhando e reativa-la. após reabrila chama o procedimento
carregar_msflexgrid

Mais lembre-se do que o nosso amigo OMAR2011 disse
Seria mais vantajoso usar ListView é mais leve e mais rápido mais o Flex tambem é interessante vai da sua preferencia.

Qualquer duvida Poste ai.
DOUGLASGARCIA 09/11/2011 07:41:33
#388767
Obigado pela dica FILMAN

vc teria o codigo de um listview que carrega dados de uma tabela do access para me passar?


obrigado





FILMAN 09/11/2011 14:16:06
#388805
Use esse exemplo e adapte ele para o seu banco

macoratti
Tópico encerrado , respostas não são mais permitidas