Artigo: 208184 - Última revisão: quarta-feira, 30 de Junho de 2004 - Revisão: 2.0

ACC2000: Acção consulta consolidações de alterações de 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 | Reduzir tudo

Sintomas

Principiante: Requer conhecimentos da interface do utilizador em computadores individuais.

Quando executar uma consulta de acção e responder a pedido para aplicar as alterações clicando em não , as alterações são consolidadas na mesma.

Causa

Propriedade a consulta de acção de UseTransaction estiver definida para não.

Resolução

Defina a propriedade UseTransaction para ' Sim ' antes de executar a consulta de acção.

Mais Informação

A propriedade UseTransaction Especifica se uma consulta de acção é executada como uma única transacção. Quando a propriedade UseTransaction estiver definida para Sim, os resultados da consulta são armazenados numa base de dados temporária ou cache e não são escritos na base de dados actual até confirmar que pretende aplicar as alterações. Quando a propriedade UseTransaction estiver definida para não, os resultados são escritos imediatamente a base de dados actual; a consulta é executada muito mais rapidamente porque não é moldado numa única transacção. No entanto, não é possível cancelar as alterações que efectuou a consulta, mesmo se clicar em não quando lhe for pedido consolidar as alterações.

Se criar uma consulta na interface de utilizador do Microsoft Access abrindo uma nova consulta na vista de estrutura, o valor predefinido da propriedade UseTransaction é Sim. No entanto, quando utiliza o Data Access Objects (DAO) para criar um QueryDef no Visual Basic para aplicações de código, o valor predefinido da propriedade UseTransaction é não.

No exemplo seguinte, o procedimento, CreateTransQuery, cria uma consulta de acção cuja propriedade UseTransaction estiver definida para Sim:

Nota : O código de exemplo deste artigo utiliza Microsoft Data Access Objects. Para que este código seja executado correctamente, tem de referenciar a biblioteca Microsoft DAO 3.6 Object Library. Para o fazer, clique em References no menu Ferramentas no Editor do Visual Basic e certifique-se de que está seleccionada a caixa de verificação Microsoft DAO 3.6 Object Library .

  1. Abra a base de dados exemplo Adamastor.mdb.
  2. Crie um módulo e escreva a linha seguinte na secção Declarations, caso ainda não estiver escrito:
    Option Explicit
    					
  3. Escreva 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
    					

Passos para reproduzir o comportamento

  1. Abra a base de dados exemplo Adamastor.mdb.
  2. Abra a tabela clientes e visualize o primeiro registo. Nota que contém os seguintes dados:
          CustomerID:    CompanyName:
          -----------    --------------------
          ALFKI          Alfred's Futterkiste
    					
  3. Feche a tabela. Em seguida, crie uma nova consulta de actualização com base na tabela clientes 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 local na parte superior da grelha QBE. Em seguida, no menu Ver , clique em Propriedades para visualizar a caixa de propriedades da consulta.
  5. Defina a propriedade UseTransaction para não.
  6. No menu de consulta , clique em Executar . Nota que receberá 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 não pretender aplicar as alterações.
  8. Feche a consulta e guardá-lo como qryUpdateCustomers.
  9. Abra a tabela clientes e visualize o primeiro registo. Repare que agora os dados no campo NomeDaEmpresa contêm "De Alfreds 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 , escreva propriedade UseTransaction na Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )