Ir para conteúdo
Entre para seguir isso  
StonerX

Visual Basic + Access

Publicações recomendadas

Boa noite pessoal,

 

Foi-me proposto que criasse um programa em VB que se complementasse com uma BD em Access. Já consegui fazer um "Inserir" e um "Listar", mas dá-me erro a fazer o "Alterar" e o "Eliminar". Alguém me pode ajudar? Este é o código que tenho para o alterar:

 

Dim myConn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection("Provider= Microsoft.ACE.OLEDB.12.0 ;Data Source= C:\Users\Afonso\Desktop\Projecto Empresa\VB - Empresa\VB - Empresa\bin\Debug\BD Empresa.accdb")

 

Dim n As Integer

 

n = tb1.Text

 

Dim MySQL As String = "Update TabelaGeral Set [NomeProduto] = @NomeProduto, [PrecoUnitario] = @PrecoUnitario, [iVA] = @IVA, [QuantidadeStock] = @QuantidadeStock Where " & n & " = @Codigo Produto"

 

Dim Cmd As New Data.OleDb.OleDbCommand(MySQL, myConn)

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@CodigoProduto", tb1.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@NomeProduto", TextBox1.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@PrecoUnitario", TextBox2.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@IVA", TextBox3.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@QuantidadeStock", TextBox4.Text))

 

myConn.Open()

 

Cmd.ExecuteNonQuery() --------- Quanto está a ler dá erro aqui! ---------

 

myConn.Close()

 

MsgBox("O produto - " & TextBox1.Text & " - foi alterado com êxito.")

 

Obrigado!

Editado por StonerX

Compartilhar este post


Link para o post

Dim MySQL As String = "Update TabelaGeral Set [NomeProduto] = @NomeProduto, [PrecoUnitario] = @PrecoUnitario, [iVA] = @IVA, [QuantidadeStock] = @QuantidadeStock Where " & n & " = @Codigo Produto"

 

esta linha tens no fim @Codigo Produto separado por espaço penso que seja esse o problema coloca @CodigoProduto...

Compartilhar este post


Link para o post

Dá este erro na mesma:

Tipo de dados incorrecto na expressão de critérios.

Compartilhar este post


Link para o post
Guest Masha

Tu nunca chegas a usar a variavel "n" que declaraste?

Compartilhar este post


Link para o post

Neste caso uso, mas acho que não é preciso, dá para fazer de diferentes maneiras, mas sempre que tento dá-me este erro... Não sei resolvê-lo :confuso:

Compartilhar este post


Link para o post

tenta colocar os campos @codigoproduto como "@codigoproduto" ou '@codigoproduto'

Editado por FMmaniac

Compartilhar este post


Link para o post

Não sei se isto é melhor ou pior, mas agora já diz que foi alterado mas não altera nada :facepalm: O código neste momento está assim:

 

Dim myConn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection("Provider= Microsoft.ACE.OLEDB.12.0 ;Data Source= C:\Users\Afonso\Desktop\Projecto Empresa\VB - Empresa\VB - Empresa\bin\Debug\BD Empresa.accdb")

 

Dim n As Integer = tb1.Text

 

Dim MySQL As String = "Update TabelaGeral Set [NomeProduto] = '@NomeProduto', [PrecoUnitario] = @PrecoUnitario, [iVA] = @IVA, [QuantidadeStock] = @QuantidadeStock Where " & n & " = @CodigoProduto"

 

Dim Cmd As New Data.OleDb.OleDbCommand(MySQL, myConn)

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@CodigoProduto", tb1.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("'@NomeProduto'", TextBox1.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@PrecoUnitario", TextBox2.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@IVA", TextBox3.Text))

 

Cmd.Parameters.Add(New Data.OleDb.OleDbParameter("@QuantidadeStock", TextBox4.Text))

 

myConn.Open()

 

Cmd.ExecuteNonQuery()

 

myConn.Close()

 

MsgBox("O produto - " & TextBox1.Text & " - foi alterado com êxito.")

Compartilhar este post


Link para o post

Dim MySQL As String = "Update TabelaGeral Set [NomeProduto] = '@NomeProduto', [PrecoUnitario] = @PrecoUnitario, [iVA] = @IVA, [QuantidadeStock] = @QuantidadeStock Where " & n & " = @CodigoProduto"

 

substitui por isto

Dim MySQL As String = "Update TabelaGeral Set NomeProduto = "@NomeProduto", PrecoUnitario = "@PrecoUnitario", IVA = "@IVA", QuantidadeStock = "@QuantidadeStock" Where " & n & " =" @CodigoProduto"

Compartilhar este post


Link para o post

Já tentei, dá erro, acho que é por na sintaxe do update, é com aspas até ao fim, ou senão posso tentar de outra maneira, mas tenho de por "&" em todo o lado

Compartilhar este post


Link para o post

Crie uma conta ou entre para comentar

Você precisa de ser membro desta comunidade para poder comentar

Criar uma conta

Registe-se na nossa comunidade. É fácil!

Criar nova conta

Entrar

Já tem uma conta? Faça o login.

Autentique-se agora
Entre para seguir isso  

  • Todo o Mundial 2026 no CMPT
  • Outros membros neste tópico

    Nenhum utilizador registado está a visualizar esta página.

×
×
  • Criar Novo...