PROBLEMA DATAGRID E TEXTBOX
Bom dia a todos , bom pessoal estou com uma duvida criei um grid utilizando os comandos sql.. meu banco é em .mbd
Certo. Ele carregou direitinho quando abro o form ele esta la corretamente.. porém quando eu clico no grid em um registro as textbox que estão acima nao trocam.. elas nao se posicionam naquele registro . não sei se consegui expressar direito aqui. vou mostrar um exemplo ..
textbox1 o texto dela é 123
ai no grid aparece
123
456
789
se eu clicar no 456 a textbox1 nao carrega o texto 456..
ela fica com o 123 estático pq ele éo primeiro registro ..
por favor se alguem puder me ajudar..
Obrigado
Certo. Ele carregou direitinho quando abro o form ele esta la corretamente.. porém quando eu clico no grid em um registro as textbox que estão acima nao trocam.. elas nao se posicionam naquele registro . não sei se consegui expressar direito aqui. vou mostrar um exemplo ..
textbox1 o texto dela é 123
ai no grid aparece
123
456
789
se eu clicar no 456 a textbox1 nao carrega o texto 456..
ela fica com o 123 estático pq ele éo primeiro registro ..
por favor se alguem puder me ajudar..
Obrigado
Bom dia,
Simples assim:
Simples assim:
Private Sub DataGridView1_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter
Me.TextBox1.Text = DataGridView1.CurrentRow.Cells([Ô]ID[Ô]).Value
End Sub
altair vou testar , post o o resultado aqui ja .
altair nao funcionou .. oq acontece ..
quando eu faço isto os dados foram para as texts.. porém .. quando eu clico em atualizar.. eu mudo os valores e aperto salvar.. ele nao altera o registro que escolhi , ele altera o primeiro registro que está la.. aii quando eu fecho o form e abro ele novamente. ele duplica todos os registros .. ex. eu tenho 4 registros la.. clico no terceiro e altero... quando eu abro ele de novo .. ele alterou o primeiro . e a tabela esta com 8 registros ..
quando eu faço isto os dados foram para as texts.. porém .. quando eu clico em atualizar.. eu mudo os valores e aperto salvar.. ele nao altera o registro que escolhi , ele altera o primeiro registro que está la.. aii quando eu fecho o form e abro ele novamente. ele duplica todos os registros .. ex. eu tenho 4 registros la.. clico no terceiro e altero... quando eu abro ele de novo .. ele alterou o primeiro . e a tabela esta com 8 registros ..
Dim conn As New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\bd_coifa1.mdb[Ô])
Dim da As OleDbDataAdapter
Dim dt As New DataTable
Public sql As String
Public Sub CarregaTexto()
Me.txtdata.Value = dgvprojetos.CurrentRow.Cells(1).Value
Me.txtrazao.Text = dgvprojetos.CurrentRow.Cells(2).Value
Me.txtcontato.Text = dgvprojetos.CurrentRow.Cells(4).Value
Me.txtemail.Text = dgvprojetos.CurrentRow.Cells(3).Value
Me.txttelefone.Text = dgvprojetos.CurrentRow.Cells(5).Value
Me.txtdescricao.Text = dgvprojetos.CurrentRow.Cells(6).Value
Me.cmbstatus.Text = dgvprojetos.CurrentRow.Cells(7).Value
Me.txtos.Text = dgvprojetos.CurrentRow.Cells(8).Value
End Sub
Public Sub ChamaTabela()
dgvprojetos.Refresh()
sql = ([Ô]SELECT Controle_projetos.Código, Controle_projetos.data, Controle_projetos.cod_cliente, Controle_projetos.email, Controle_projetos.contato, Controle_projetos.telefone, Controle_projetos.descricao, Status_projetos.Status, Controle_projetos.OS FROM (Status_projetos INNER JOIN Controle_projetos ON Status_projetos.Código = Controle_projetos.cod_status)[Ô])
da = New OleDbDataAdapter(sql, conn)
da.Fill(dt)
dgvprojetos.Refresh()
dgvprojetos.DataSource = dt
da.Dispose()
conn.Close()
End Sub
Private Sub btnalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnalterar.Click
If Me.Controle_projetosBindingSource.Count = 0 Then
MsgBox([Ô]Não existe dados a serem alterados![Ô])
Else
tratarBotoes()
TratarEdits()
EDITAR = 1
End If
[ô]dgvassist.Enabled = False
[ô]txtpesquisa.Enabled = False
txtpesquisa.Clear()
End Sub
Private Sub btnsalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalvar.Click
If cmbstatus.SelectedValue = Nothing Then
MsgBox([Ô]Selecione o Status![Ô])
ElseIf EDITAR = 1 Then
Me.Validate()
Me.Controle_projetosBindingSource.EndEdit()
Me.Controle_projetosTableAdapter.Update(Me.Bd_coifa1DataSet.Controle_projetos)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
EDITAR = 0
NOVO = 0
MsgBox([Ô]Alterado com sucesso![Ô])
ElseIf PRIMEIRO = 1 Then
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
PRIMEIRO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
Else
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
End If
txtpesquisa.Clear()
Me.Controle_projetosBindingSource.RemoveFilter()
Me.Dt_projetosBindingSource.RemoveFilter()
End Sub
Private Sub dgvprojetos_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvprojetos.CellEnter
CarregaTexto()
End Sub
Postei os códigos .. se puder me ajudar por favor.. Obrigado
Dim da As OleDbDataAdapter
Dim dt As New DataTable
Public sql As String
Public Sub CarregaTexto()
Me.txtdata.Value = dgvprojetos.CurrentRow.Cells(1).Value
Me.txtrazao.Text = dgvprojetos.CurrentRow.Cells(2).Value
Me.txtcontato.Text = dgvprojetos.CurrentRow.Cells(4).Value
Me.txtemail.Text = dgvprojetos.CurrentRow.Cells(3).Value
Me.txttelefone.Text = dgvprojetos.CurrentRow.Cells(5).Value
Me.txtdescricao.Text = dgvprojetos.CurrentRow.Cells(6).Value
Me.cmbstatus.Text = dgvprojetos.CurrentRow.Cells(7).Value
Me.txtos.Text = dgvprojetos.CurrentRow.Cells(8).Value
End Sub
Public Sub ChamaTabela()
dgvprojetos.Refresh()
sql = ([Ô]SELECT Controle_projetos.Código, Controle_projetos.data, Controle_projetos.cod_cliente, Controle_projetos.email, Controle_projetos.contato, Controle_projetos.telefone, Controle_projetos.descricao, Status_projetos.Status, Controle_projetos.OS FROM (Status_projetos INNER JOIN Controle_projetos ON Status_projetos.Código = Controle_projetos.cod_status)[Ô])
da = New OleDbDataAdapter(sql, conn)
da.Fill(dt)
dgvprojetos.Refresh()
dgvprojetos.DataSource = dt
da.Dispose()
conn.Close()
End Sub
Private Sub btnalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnalterar.Click
If Me.Controle_projetosBindingSource.Count = 0 Then
MsgBox([Ô]Não existe dados a serem alterados![Ô])
Else
tratarBotoes()
TratarEdits()
EDITAR = 1
End If
[ô]dgvassist.Enabled = False
[ô]txtpesquisa.Enabled = False
txtpesquisa.Clear()
End Sub
Private Sub btnsalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalvar.Click
If cmbstatus.SelectedValue = Nothing Then
MsgBox([Ô]Selecione o Status![Ô])
ElseIf EDITAR = 1 Then
Me.Validate()
Me.Controle_projetosBindingSource.EndEdit()
Me.Controle_projetosTableAdapter.Update(Me.Bd_coifa1DataSet.Controle_projetos)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
EDITAR = 0
NOVO = 0
MsgBox([Ô]Alterado com sucesso![Ô])
ElseIf PRIMEIRO = 1 Then
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
PRIMEIRO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
Else
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
End If
txtpesquisa.Clear()
Me.Controle_projetosBindingSource.RemoveFilter()
Me.Dt_projetosBindingSource.RemoveFilter()
End Sub
Private Sub dgvprojetos_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvprojetos.CellEnter
CarregaTexto()
End Sub
Postei os códigos .. se puder me ajudar por favor.. Obrigado
Boa tarde,
Aparentemente o erro seria no trecho abaixo.
Debugue o seu código e verifique se quando você manda alterar, se você esta entrando dentro desse IF. Provavelmente você esta entrando dentro dessa condição e por isso ele esta duplicando os registros.
Aparentemente o erro seria no trecho abaixo.
ElseIf PRIMEIRO = 1 Then
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Debugue o seu código e verifique se quando você manda alterar, se você esta entrando dentro desse IF. Provavelmente você esta entrando dentro dessa condição e por isso ele esta duplicando os registros.
mais pq ele nao altera o registro clicado ... ele altera a primeira posicao ???
Tenta o código abaixo.
Dim conn As New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\bd_coifa1.mdb[Ô])
Dim da As OleDbDataAdapter
Dim dt As New DataTable
Public sql As String
Public Sub CarregaTexto()
Me.txtdata.Value = dgvprojetos.CurrentRow.Cells(1).Value
Me.txtrazao.Text = dgvprojetos.CurrentRow.Cells(2).Value
Me.txtcontato.Text = dgvprojetos.CurrentRow.Cells(4).Value
Me.txtemail.Text = dgvprojetos.CurrentRow.Cells(3).Value
Me.txttelefone.Text = dgvprojetos.CurrentRow.Cells(5).Value
Me.txtdescricao.Text = dgvprojetos.CurrentRow.Cells(6).Value
Me.cmbstatus.Text = dgvprojetos.CurrentRow.Cells(7).Value
Me.txtos.Text = dgvprojetos.CurrentRow.Cells(8).Value
End Sub
Public Sub ChamaTabela()
dgvprojetos.Refresh()
sql = ([Ô]SELECT Controle_projetos.Código, Controle_projetos.data, Controle_projetos.cod_cliente, Controle_projetos.email, Controle_projetos.contato, Controle_projetos.telefone, Controle_projetos.descricao, Status_projetos.Status, Controle_projetos.OS FROM (Status_projetos INNER JOIN Controle_projetos ON Status_projetos.Código = Controle_projetos.cod_status)[Ô])
da = New OleDbDataAdapter(sql, conn)
da.Fill(dt)
dgvprojetos.Refresh()
dgvprojetos.DataSource = dt
da.Dispose()
conn.Close()
End Sub
Private Sub btnalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnalterar.Click
If Me.Controle_projetosBindingSource.Count = 0 Then
MsgBox([Ô]Não existe dados a serem alterados![Ô])
Else
tratarBotoes()
TratarEdits()
EDITAR = 1
End If
[ô]dgvassist.Enabled = False
[ô]txtpesquisa.Enabled = False
txtpesquisa.Clear()
End Sub
Private Sub btnsalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalvar.Click
If cmbstatus.SelectedValue = Nothing Then
MsgBox([Ô]Selecione o Status![Ô])
ElseIf EDITAR = 1 Then
Me.Validate()
Me.Controle_projetosBindingSource.EndEdit()
Me.Controle_projetosTableAdapter.Updatet(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
EDITAR = 0
NOVO = 0
MsgBox([Ô]Alterado com sucesso![Ô])
ElseIf PRIMEIRO = 1 Then
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
PRIMEIRO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
Else
Me.Controle_projetosTableAdapter.Insert(txtdata.Value, txtrazao.Text, txtcontato.Text, txtemail.Text, txttelefone.Text, txtdescricao.Text, cmbstatus.SelectedValue, txtos.Text)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
Me.Controle_projetosTableAdapter.Fill(Me.Bd_coifa1DataSet.Controle_projetos)
tratarBotoes()
TratarEdits()
NOVO = 0
MsgBox([Ô]Gravado com sucesso![Ô])
End If
txtpesquisa.Clear()
Me.Controle_projetosBindingSource.RemoveFilter()
Me.Dt_projetosBindingSource.RemoveFilter()
End Sub
Private Sub dgvprojetos_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvprojetos.CellEnter
CarregaTexto()
End Sub
altair nao funcionou cara.. nao sei mais oq faço...
vc ainda tem aquela con.. pelo teamviewer eu ainda estou com aqueele mesmo msn se vc tiver um tempo para dar uma olhada cara.. ta dificil mto complicado mesmo
vc ainda tem aquela con.. pelo teamviewer eu ainda estou com aqueele mesmo msn se vc tiver um tempo para dar uma olhada cara.. ta dificil mto complicado mesmo
Eu posso dar uma olhada somente a noite.
vamos ver se conseguimos entao .. eu vou para a faculdade ... aii tentamos se der pra vc cara.. to desesperado nao aguento mais tentar tentar tentar tentar e nada ...
tentei ja umas mil possibilidades .. nao sei pq ele esta puxando o primeiro registro e alterando ele .. isso q eh o mais estranho de tudo ..
ele deveria estar posicionando no registro certo po estranho mesmo isso .. eu clicar no registro alterar e salvar .. ele valida com AKELE alterado e nao o primeiro da tabela
tentei ja umas mil possibilidades .. nao sei pq ele esta puxando o primeiro registro e alterando ele .. isso q eh o mais estranho de tudo ..
ele deveria estar posicionando no registro certo po estranho mesmo isso .. eu clicar no registro alterar e salvar .. ele valida com AKELE alterado e nao o primeiro da tabela
Tópico encerrado , respostas não são mais permitidas