Jump to content
Fórum Script Brasil
  • 0

Ado.recordset.update Run-time Error '-2147217887


Guest --Leila --
 Share

Question

Guest --Leila --

Eu havia colocado essa mensagem no forum errado.

All,

Embora esse erro já tenha sido discutido no forum, não vi nenhuma solução que me atendesse.

Já tentei ver os status da cada field do recordset MsgBox Ado.Recordset!fields(0).status ( estão todos com status 0),

Já tentei ver se o tamanho do conteúdo é superior ao describe da coluna da tabela (não é),

O que mais pode ser?

Trata-se de um datagrid1 cujo o datasource é o ADO onde o record source é a query da tabela

(SELECT * FROM ITENS WHERE HEADER = 0).

Alguma idéia para me ajudar?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
Guest --Leila --

kuroi essa é a mensagem:

Run-time erro '-2147217887 (80040e21):

Operação de várias etapas gerou erros. Verifique cada valor de status.

O erro ocorre neste comando

AdoItem.Recordset.Update

Link to comment
Share on other sites

  • 0
Guest --LEILA --

kuroi,

O CODIGO DO EVENTO GRAVAITEM

Private Sub cmdGravaITEM_Click()

Screen.MousePointer = vbHourglass

If Trim(txtCodProduto.Text) = "" Then

MsgBox "Código do Produto Vazio"

Screen.MousePointer = vbDefault

txtCodProduto.SetFocus

Exit Sub

End If

If CCur(txtTotal.Text) = 0 And txtIndCancel.Text = "N" Then

MsgBox "Valor Total = 0, Verificar Quantidade e Preço"

Screen.MousePointer = vbDefault

txtQTD.SetFocus

Exit Sub

End If

' Obtém usuário logado

m$ = Space$(255)

i% = GetUserName(m$, Len(m$))

AdoITEM.Recordset!wma_user = Left(m$, InStr(m$, Chr(0)) - 1) & " - " & Date & " - " & Time

AdoITEM.Recordset.Update

AdoITEM.RecordSource = "select * from itfin_ITEM_sobras where wmaid_dof = " & Str(WMAID_DOF_Inclusao) & " order by num_item"

AdoITEM.Refresh

ControlaBotoesITEM

Screen.MousePointer = vbDefault

cmdIncITEM.SetFocus

End Sub

A AGORA O DESCRIBE DA TABELA ITEM. Eu não gravo todos os campos, somente os do data grid.(13 campos que estão formatados com General nas propriedades.)

'CODIGO_EST' 'VARCHAR2' 50 'Y'

'E_S' 'VARCHAR2' 1 'Y'

'CODIGO_TIPO_DOC' 'VARCHAR2' 50 'Y'

'SERIE_SUBSERIE' 'VARCHAR2' 50 'Y'

'NUMERO' 'VARCHAR2' 50 'Y'

'DT_EMISSAO' 'DATE' 7 'Y'

'CODIGO_PFJ_DESTINATARIO' 'VARCHAR2' 50 'Y'

'CODIGO_PFJ_EMITENTE' 'VARCHAR2' 50 'Y'

'ALIQ_IPI' 'NUMBER' 22 7 'Y'

'ALIQ_ISS' 'NUMBER' 22 7 'Y'

'ALIQ_ICMS' 'NUMBER' 22 7 'Y'

'ALIQ_ICMS_DIFERENCA' 'NUMBER' 22 7 'Y'

'CODIGO_CUSTO' 'VARCHAR2' 50 'Y'

'CGC_REMETENTE' 'VARCHAR2' 255 'Y'

'CGC_TRANSPORTADOR' 'VARCHAR2' 255 'Y'

'CGC_DESTINATARIO' 'VARCHAR2' 255 'Y'

'CODIGO_NBM' 'VARCHAR2' 20 'Y'

'SUBCLASSE_IDF' 'VARCHAR2' 1 'Y'

'CLASSIFICACAO_PRODUTO' 'VARCHAR2' 4 'Y'

'CODIGO_PRODUTO' 'VARCHAR2' 50 'Y'

'CODIGO_SERVICO' 'VARCHAR2' 50 'Y'

'CODIGO_CFOP' 'VARCHAR2' 50 'Y'

'CODIGO_NATUREZA' 'VARCHAR2' 50 'Y'

'DT_NF_REMETENTE' 'DATE' 7 'Y'

'DT_ROMANEIO' 'DATE' 7 'Y'

'DESC_COMPL_PRODUTO' 'VARCHAR2' 255 'Y'

'DESC_COMPL_SERVICO' 'VARCHAR2' 255 'Y'

'CODIGO_VOLUME' 'VARCHAR2' 50 'Y'

'IND_ICMS' 'VARCHAR2' 1 'Y'

'IND_IPI' 'VARCHAR2' 1 'Y'

'CODIGO_FRETE' 'VARCHAR2' 50 'Y'

'NUM_NF_REMETENTE' 'VARCHAR2' 50 'Y'

'NUM_CONTRATO_SERVICO' 'VARCHAR2' 50 'Y'

'NUM_ITEM' 'NUMBER' 22 6 'N'

'NUM_ROMANEIO_REF' 'VARCHAR2' 50 'Y'

'PESO_BRUTO' 'NUMBER' 22 19 'Y'

'PESO_LIQUIDO' 'NUMBER' 22 19 'Y'

'QTD_VOLUMES' 'NUMBER' 22 19 'Y'

'QTD' 'NUMBER' 22 19 'Y'

'SERIE_SUBSERIE_NF_REMETE' 'VARCHAR2' 50 'Y'

'CODIGO_STE_A' 'VARCHAR2' 50 'Y'

'CODIGO_STE_B' 'VARCHAR2' 50 'Y'

'CODIGO_STF' 'VARCHAR2' 50 'Y'

'CODIGO_UNIDADE' 'VARCHAR2' 10 'Y'

'CODIGO_UNIDADE_PADRAO' 'VARCHAR2' 10 'Y'

'VL_BASE_SUBSTITUICAO' 'NUMBER' 22 17 'Y'

'VL_BASE_ICMS' 'NUMBER' 22 17 'Y'

'VL_BASE_IPI' 'NUMBER' 22 17 'Y'

'VL_BASE_ISS' 'NUMBER' 22 17 'Y'

'VL_BASE_REDUCAO_IPI' 'NUMBER' 22 17 'Y'

'VL_RED_BASE_ICMS' 'NUMBER' 22 17 'Y'

'VL_FRETE' 'NUMBER' 22 17 'Y'

'VL_SEGURO' 'NUMBER' 22 17 'Y'

'VL_DESCONTO' 'NUMBER' 22 17 'Y'

'VL_DESCONTO_SERVICO' 'NUMBER' 22 17 'Y'

'VL_ICMS' 'NUMBER' 22 17 'Y'

'VL_ICMS_SUBST' 'NUMBER' 22 17 'Y'

'VL_IPI' 'NUMBER' 22 17 'Y'

'VL_ISS' 'NUMBER' 22 17 'Y'

'VL_PRECO_UNIT' 'NUMBER' 22 17 'Y'

'VL_SERVICO' 'NUMBER' 22 17 'Y'

'VL_OUTRAS_DESPESAS' 'NUMBER' 22 17 'Y'

'VL_PRECO_TOTAL_ITEM' 'NUMBER' 22 17 'Y'

'VL_TOTAL_NF_REMETE' 'NUMBER' 22 17 'Y'

'CODIGO_TRANSPORTE' 'VARCHAR2' 50 'Y'

'CTRL_INSTRUCAO' 'VARCHAR2' 1 'Y'

'MSG_CRITICA' 'VARCHAR2' 2000 'Y'

'DH_CRITICA' 'DATE' 7 'Y'

'CTRL_CRITICA' 'NUMBER' 22 3 'Y'

'COD_PROD_NF' 'VARCHAR2' 50 'Y'

'NUM_CAD_BENS' 'VARCHAR2' 30 'Y'

'QTD_PROD_ESTOQUE' 'NUMBER' 22 19 'Y'

'NOP_CODIGO' 'VARCHAR2' 20 'Y'

'CHAVE_ORIGEM' 'VARCHAR2' 255 'Y'

'ORIGEM' 'VARCHAR2' 30 'Y'

'VL_OUTROS_ICMS' 'NUMBER' 22 19 'Y'

'VL_OUTROS_IPI' 'NUMBER' 22 19 'Y'

'VL_ISENTO_ICMS' 'NUMBER' 22 19 'Y'

'VL_ISENTO_IPI' 'NUMBER' 22 19 'Y'

'IND_ESCRITURACAO' 'VARCHAR2' 1 'Y'

'CHAVE_LOTE' 'VARCHAR2' 30 'Y'

'ANEXO' 'VARCHAR2' 10 'Y'

'ALIQ_IPI_CONV' 'NUMBER' 22 19 'Y'

'VL_BASE_ICMS_CONV' 'NUMBER' 22 19 'Y'

'VL_ICMS_CONV' 'NUMBER' 22 19 'Y'

'ALIQ_ICMS_CONV' 'NUMBER' 22 19 'Y'

'VL_BASE_IPI_CONV' 'NUMBER' 22 19 'Y'

'VL_IPI_CONV' 'NUMBER' 22 19 'Y'

'VL_CONT_ICMS_CONV' 'NUMBER' 22 19 'Y'

'VL_CONT_IPI_CONV' 'NUMBER' 22 19 'Y'

'WMAID_DOF' 'NUMBER' 22 15 'N'

'WMAID_IDF' 'NUMBER' 22 15 'Y'

'WMA_USER' 'VARCHAR2' 100 'Y'

'WMA_STATUS' 'VARCHAR2' 10 'Y'

Link to comment
Share on other sites

  • 0

hum... talvez no grid o campo esteja com um formato q no banco ele não vai aceitar. algum campo numerico ou data talvez.

tenta fazer o seguinte. va testando o update cada vez com um campo a menos. tipo, tire um campo e veja se da certo. se não, tira outro e veja se da certo, ate descobrir qual campo exatamente ta causando esse erro. apesar q podem ser mais de um, o esquema é descobrir o q causa esse erro.

tente isso q eu falei, qualquer coisa poste ai.

Link to comment
Share on other sites

  • 0
Guest --LEILA --

kuroi, segui sua sugestão e parece que encontrei o problema. No lostfocus dos campos de valores havia a formataçao .Text = Format(.Text, "########0.00") eu substitui uma para ver se funcionava para .Text = Format(.Text, "########0,00") e passou, agora a minha dúvida é se isso é problema de configuração da máquina. Será que após eu gerar o executável e rodar em uma máquina que o separador de decimais for ponto, irá gerar problemas ou isso acompanha o banco? Eu vou testar. Pelo menos já me encontrei com o problema.

Obrigada pela dica!

Link to comment
Share on other sites

  • 0

acho q não vai ter problema não, você fazendo a formatacao, a configuracao do pc não importa. mas se você acabar tendo algum problema com isso, pode fazer a formatacao na string na mao mesmo, na hora de gravar, usando replace pra trocar virgula por ponto e etc.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...