ERRO AO TENTAR ALTERAR REGISTROS DO BANCO DE DADOS

ENGALEXANDRE 11/06/2010 12:30:59
#344604
Ok MARCELO-TREZE! Uma vez criei um comando parecido com esse que estamos discutindo e por não ter colocado sql = [Ô][Ô] na primeira linha dava erro. De qualquer forma, valeu pela observação.

Alexandre
MACKEY 11/06/2010 13:14:26
#344609
é jovens 'parece que esta complicado....tentei de todas as formas que sugeriram e em todas deu erro....agora ficou assim:

Private Sub alterar()
Dim comandsql As String
Set rec = New ADODB.Recordset
comandsql = comandsql & [Ô]UPDATE tblprodutos SET [Ô]
comandsql = comandsql & [Ô]descricao = [ô][Ô] & TxtDescProd.Text & [Ô][ô],[Ô]
comandsql = comandsql & [Ô]valor = [ô][Ô] & TxtPrecProd.Text & [Ô][ô],[Ô]
comandsql = comandsql & [Ô]idsetor = [ô][Ô] & TxtSetProd.Text & [Ô][ô],[Ô]
comandsql = comandsql & [Ô]imposto = [ô][Ô] & TxtImpProd.Text & [Ô][ô],[Ô]
comandsql = comandsql & [Ô]categoriaimposto = [ô][Ô] & TxtCatImpProd.Text & [Ô][ô],[Ô]
comandsql = comandsql & [Ô] where idproduto = [Ô] & TxtCodProd.Text & [Ô][Ô]
rec.open comandsql, cnnsoftpark, adOpenStatic, adLockOptimistic, adCmdTable
MsgBox [Ô]Alteraçao realizada.[Ô], vbInformation + vbOKOnly, [Ô]Alteração[Ô]
End Sub

e continua com o mesmo erro na clausula from
MACKEY 11/06/2010 13:17:54
#344610
tambem tentei com o comandsql = [Ô][Ô] e ai da erro no update
ENGALEXANDRE 11/06/2010 14:09:38
#344616
Olá MACKEY! Tem um erro na rotina que é o seguinte: os campos texto são separados por aspas simples ([ô]), só que no código enviado a você as aspas simples estão depois do sinal de igual (=). Estas aspas simples devem estar dentro de aspas duplas ([Ô] [ô] [Ô]) e agregadas com o &. Abaixo seguem as alterações que eu realizei no código que tu colocou acima:

Set rec = New ADODB.Recordset
comandsql = [Ô][Ô]
comandsql = comandsql & [Ô]UPDATE tblprodutos SET [Ô]
comandsql = comandsql & [Ô]descricao = [Ô] & [Ô] [ô] [Ô] & TxtDescProd.Text & [Ô] [ô] [Ô] & [Ô],[Ô]
comandsql = comandsql & [Ô]valor = [Ô] & [Ô] [ô] [Ô] & TxtPrecProd.Text & [Ô] [ô] [Ô] & [Ô],[Ô]
comandsql = comandsql & [Ô]idsetor = [Ô] & TxtSetProd.Text & [Ô],[Ô]
comandsql = comandsql & [Ô]imposto = [Ô] & [Ô] [ô] [Ô] & TxtImpProd.Text & [Ô] [ô] [Ô] & [Ô],[Ô]
comandsql = comandsql & [Ô]categoriaimposto = [Ô] & [Ô] [ô] [Ô] & TxtCatImpProd.Text & [Ô] [ô] [Ô] & [Ô],[Ô]
comandsql = comandsql & [Ô] where idproduto = [Ô] & TxtCodProd.Text
rec.open comandsql, cnnsoftpark, adOpenStatic, adLockOptimistic, adCmdTable
MsgBox [Ô]Alteraçao realizada.[Ô], vbInformation + vbOKOnly, [Ô]Alteração[Ô]
End Sub

Fiz as seguintes considerações:

Campo descrição = string
Campo valor = string
Campo idsetor = integer
Campo imposto = string
Campo categoriaimposto = string
Campo idproduto = integer

Se algum desses campo que eu mencionei for integer ao invés de string, então remova as aspas simples e um dos & (e comercial).

Ao final da cláusula WHERE, após o Txt... não vai nenhum tipo de aspas, nem duplas nem simples.

As aspas simples estão em NEGRITO.

Alexandre
MSMJUDAS 11/06/2010 14:25:08
#344619
Resposta escolhida
Tenta assim:

Dim Rs As New ADODB.Recordset
Rs.Open [Ô]SELECT * FROM tblprodutos WHERE idproduto = [Ô] & Val(TxtCodProd.Text) & [Ô][Ô], cnnsoftpark, adOpenKeySet, adLockOptimistic
Rs!descricao = Trim(TxtDescProd.Text
Rs!valor = Trim((TxtPrecProd.Text)
Rs!idsetor = Val(TxtSetProd.Text)
Rs!imposto = Trim(TxtImpProd.Text)
Rs!categoriaimposto = Trim(TxtCatImpProd.Text)
Rs.Update
Rs.Close: Set Rs = Nothing

MsgBox [Ô]Alteraçao realizada.[Ô], vbInformation + vbOKOnly, [Ô]Alteração[Ô]
MACKEY 11/06/2010 18:03:00
#344646
jovens obrigado jovens esse ultimo topico funcionou obrigado....
Página 3 de 3 [26 registro(s)]
Tópico encerrado , respostas não são mais permitidas