ID do artigo: 208184 - Última revisão: quarta-feira, 30 de junho de 2004 - Revisão: 2.0

ACC2000: Ação consulta confirmações alterações para dados quando cancelada

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Iniciante: Requer conhecimento da interface do usuário em computadores de usuário único.

Quando você executa uma consulta ação e responde a solicitação para confirmar as alterações clicando no , as alterações são confirmadas assim mesmo.

Causa

Propriedade de UseTransaction da consulta ação está definida como não.

Resolução

Defina a propriedade UseTransaction como Sim antes de executar a consulta ação.

Mais Informações

A propriedade UseTransaction Especifica se uma consulta ação é executada como uma única transação. Quando a propriedade UseTransaction é definida como Sim, os resultados da consulta são armazenados em um cache ou banco de dados temporário e não são gravados no banco de dados atual, até que você confirme se deseja confirmar as alterações. Quando a propriedade UseTransaction é definida como não, os resultados são gravados imediatamente ao banco de dados atual; a consulta é executada muito mais rápido porque ele não é disposto em uma única transação. No entanto, você não pode cancelar as alterações que fez a consulta, mesmo se você clicar em não quando for solicitado para confirmar as alterações.

Se você criar uma consulta na interface de usuário do Microsoft Access abrindo uma nova consulta no modo de design, o valor padrão da propriedade UseTransaction é Sim. No entanto, quando você usa DAO (Data Access Objects) para criar um QueryDef no Visual Basic para código de aplicativos, o valor padrão da propriedade UseTransaction é não.

No exemplo a seguir, o procedimento, CreateTransQuery, cria uma consulta de ação cuja propriedade UseTransaction está definida como Sim:

Observação : O código de exemplo neste artigo usa o Microsoft Data Access Objects. Para que este código seja executado corretamente, você deve fazer referência a Microsoft DAO 3.6 Object Library. Para fazer isso, clique em referências no menu Ferramentas no Editor do Visual Basic e veja que a caixa de seleção Microsoft DAO 3.6 Object Library está selecionada.

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Crie um módulo e digite a seguinte linha na seção Declarações caso ainda não estiver lá:
    Option Explicit
    					
  3. Digite o seguinte procedimento:
    Function CreateTransQuery()
    
       Dim db As DAO.Database
       Dim qd As DAO.QueryDef
       Dim prpUseTrans As Property
       Dim strSQLString As String
    
       strSQLString = "UPDATE Categories SET Categories.CategoryName"
       strSQLString = strSQLString & " = 'Drinks' WHERE"
       strSQLString = strSQLString & " Categories.CategoryID = 1;"
       Set db = CurrentDb
       Set qd = db.CreateQueryDef("qryUseTransTest", strSQLString)
       Set prpUseTrans = qd.CreateProperty("UseTransaction", dbBoolean, True)
       qd.Properties.Append prpUseTrans
    
    End Function
    					

Etapas para reproduzir o problema

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Abra a tabela clientes e exiba o primeiro registro. Observe que ele contém os seguintes dados:
          CustomerID:    CompanyName:
          -----------    --------------------
          ALFKI          Alfred's Futterkiste
    					
  3. Feche a tabela. Em seguida, crie uma nova consulta de atualização com base na tabela Customers, e adicione os seguintes campos:
          Query: qryUpdateCustomers
          -------------------------
          Type: Update Query
    
          Field: CustomerID
             Criteria: "ALFKI"
          Field: CompanyName
             Update To: "Alfred's Co."
    					
  4. Clique em qualquer lugar na parte superior da grade QBE. Em seguida, no menu Exibir , clique em Propriedades para exibir a caixa de propriedade da consulta.
  5. Definir a propriedade UseTransaction como não.
  6. No menu consulta , clique em Executar . Observe que você recebe a mensagem:
       You are about to update 1 row(s).
    
       Once you click Yes, you can't use the Undo command to reverse the
       changes. Are you sure you want to update these records?
    					
  7. Clique em não , indicando que você não deseja confirmar as alterações.
  8. Feche a consulta e salvá-lo como qryUpdateCustomers.
  9. Abra a tabela clientes e exiba o primeiro registro. Observe que agora os dados no campo NomeEmpresa contêm "De Alfred co."

Referências

Para obter mais informações sobre a propriedade UseTransaction, no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic no menu Ajuda , digite Propriedade UseTransaction no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir o tópico.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbprb kbusage KB208184 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 208184  (http://support.microsoft.com/kb/208184/en-us/ )