como actualizar dados no Access com VB 2008
-
sexta-feira, 11 de junho de 2010 00:49
boas,
estou a desenvolver um programa de gestão para um clube de vídeo em VB 2008.
estou usar o access como base de dados...
para actualizar os clientes utilizei este código;
Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection() dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Manekas\Desktop\PAP moviemanager\Movie teste 1\Movie teste 1\BD2.mdb;" Dim strQuery As String = "select * From Clientes where @cod_cliente = '" & ComboBox1.Text & "'" Dim dbCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strQuery, dbConn) dbCmd = New OleDbCommand("UPDATE Clientes WHERE (cod_cliente =" & ComboBox1.Text & "AND nome =" & ComboBox2.Text & ")) set (morada =" & TextBox11.Text & ",", New OleDbConnection()) dbConn.Open() dbCmd.ExecuteNonQuery() dbCmd = Nothing MessageBox.Show("modificado registo com sucesso")
mas da-me um erro, diz que a "ExecuteNonQuery requer uma Ligação aberta e disponível. O estado actual da ligação é fechado"
não compreendo porque?
alguem me poderia ajudar!?
ate uma próxima...
Todas as Respostas
-
sexta-feira, 11 de junho de 2010 01:17
Oi, eu dei uma arrumada no seu código, quando for usar sql sempre use com parametros, vc não precisa fazer este select antes do update que vc esta fazendo, e a conexão que vc passou estava errada, veja abaixo como seria bom ficar:
Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection() dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Manekas\Desktop\PAP moviemanager\Movie teste 1\Movie teste 1\BD2.mdb;" dbConn.Open() Dim dbCmd As OleDbCommand dbCmd = New OleDbCommand("UPDATE Clientes set morada=@morada WHERE cod_cliente=@cod_cliente AND nome=@nome", dbConn) dbCmd.Parameters.AddWithValue("@morada", TextBox11.Text) dbCmd.Parameters.AddWithValue("@cod_cliente", ComboBox1.Text) dbCmd.Parameters.AddWithValue("@nome", ComboBox2.Text) dbCmd.ExecuteNonQuery() dbCmd = Nothing dbConn.Close() dbConn.Dispose() MessageBox.Show("modificado registo com sucesso")
MSN: poseidonfba@hotmail.com- Editado Poseydon Espilacopa sexta-feira, 11 de junho de 2010 01:19 x
- Editado Poseydon Espilacopa sexta-feira, 11 de junho de 2010 01:20 xx
- Sugerido como Resposta Levi DomingosMicrosoft Community Contributor, Moderator domingo, 13 de junho de 2010 22:27
- Marcado como Resposta manekas domingo, 13 de junho de 2010 22:55
-
sexta-feira, 11 de junho de 2010 12:34
Pode ser isso, vale a pena testar:
Verifique a permissão de leitura e escrita sobre o arquivo .MDB em questão.
Dê permissão de leitura/escrita ao usuário que está tentando acessar o .MDB (no caso, o usuário que está logado no Windows.)
att.
Anderson
-
domingo, 13 de junho de 2010 21:27
obrigadao!!!
ja deu....
ja agora para eliminar um registo.
-
domingo, 13 de junho de 2010 22:27Moderador
obrigadao!!!
ja deu....
ja agora para eliminar um registo.
segue o mesmo procedimento que o POSEIDON . deu-te. apenas usa o command Delete.Podes marcar como respondida.
Thanks
Just Be Humble Malange! -
domingo, 13 de junho de 2010 22:58
mas ainda tenho um problema, ja consigo inserir, alterar e excluir. mas tenho uma datagridview que tem sempre os mesmos dados desde que eu dou inicio á aplicação... Tipo se eu inserir mais um Cliente ele aparece na base de dados, mas nao aparece na DatagridView....

