ERRO UPDATE

IRENKO 05/08/2009 14:32:53
#319004
Private Sub Alterar_LM()
Dim X As Integer
Set OP = New ADODB.Command
With OP
.ActiveConnection = Banco1
Select Case Bandeira
Case Is = [Ô]Lista[Ô]
For X = 1 To Linha
.CommandText = [Ô]UPDATE Movimento SET ID=[ô][Ô] & Me.Controls([Ô]A[Ô] & X) & [Ô][ô],Posicao=[ô][Ô] & Nnull(Me.Controls([Ô]B[Ô] & X)) & [Ô][ô],Quant=[ô][Ô] & Me.Controls([Ô]C[Ô] & X) & [Ô][ô],Disp=[ô][Ô] & Nnull(Me.Controls([Ô]D[Ô] & X)) & [Ô][ô],Desc=[ô][Ô] & ComApostrofo(Me.Controls([Ô]E[Ô] & X)) & [Ô][ô],Origem=[ô][Ô] & Nnull(Me.Controls([Ô]F[Ô] & X)) & [Ô][ô],Destino=[ô][Ô] & Nnull(Me.Controls([Ô]G[Ô] & X)) & [Ô][ô],OF=[ô][Ô] & Nnull(Me.Controls([Ô]H[Ô] & X)) & [Ô][ô],Obra=[ô][Ô] & Nnull(Me.Controls([Ô]I[Ô] & X)) & [Ô][ô],Fabrica=[ô][Ô] & Nnull(Me.Controls([Ô]J[Ô] & X)) & [Ô][ô] where NumeroLM = [ô][Ô] & NR_Copia & [Ô][ô][Ô]
Next
End Select
.Execute
End With
Set OP = Nothing
End Sub

Pessoal, a instrução acima esta dando erro:

(Erro de sintaxe na instrução UPDATE), já procurei e não acho!

Outra, onde coloco o Debug.Print nesse instrução?
ROBIU 05/08/2009 15:06:23
#319012
Resposta escolhida
1 - Primeiro, arrume sua instrução sql para facilitar a leitura.
2 - No seu caso, a instrução é alterada para cada linha, mas nada passa pelo banco. Somente depois de terminar o laço For... Next é que há uma tentativa de atualizar a tabela. Para corrigir isso, o .Execute deve ficar antes do Next.
3 - Também tem os casos das aspas simples, mas vejo que você já está tratando isso.
4 - Verifique se seus campos são todos Text. Esta instrução está considerando o campos Texts
5 - O Debug.Print deve ficar na linha q coloquei o msgbox
6 Você não informou a descrição do erro.

Segue um ajuste na sua rotina. Se não funcionar, analize as informações na Msgbox para vÊ se enconta algo:

Private Sub Alterar_LM()
Dim X As Integer
Dim Sql As String
Set OP = New ADODB.Command

With OP
.ActiveConnection = Banco1
Select Case Bandeira
Case Is = [Ô]Lista[Ô]
For X = 1 To Linha
Sql = [Ô]UPDATE Movimento SET ID=[ô][Ô] & Me.Controls([Ô]A[Ô] & X) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Posicao=[ô][Ô] & Nnull(Me.Controls([Ô]B[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Quant=[ô][Ô] & Me.Controls([Ô]C[Ô] & X) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Disp=[ô][Ô] & Nnull(Me.Controls([Ô]D[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Desc=[ô][Ô] & ComApostrofo(Me.Controls([Ô]E[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Origem=[ô][Ô] & Nnull(Me.Controls([Ô]F[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Destino=[ô][Ô] & Nnull(Me.Controls([Ô]G[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]OF=[ô][Ô] & Nnull(Me.Controls([Ô]H[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Obra=[ô][Ô] & Nnull(Me.Controls([Ô]I[Ô] & X)) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Fabrica=[ô][Ô] & Nnull(Me.Controls([Ô]J[Ô] & X)) & [Ô][ô][Ô]
Sql = Sql & [Ô]where NumeroLM = [ô][Ô] & NR_Copia & [Ô][ô][Ô]
.CommandText = Sql
MsgBox Sql
.Execute
Next
End Select
End With
Set OP = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas