Pergunta : O comando ou a ação “DeleteRecord” não estão disponível agora.

No acesso 2007, I've começ uma função em um módulo que suprimisse do registro atualmente selecionado quando o artigo de menu do registro da supressão é selecionado.   Nas versões anteriores do acesso, nós usamos SendKeys “{SUPRESSÃO}”, retificamos - que não faz nada agora a não ser que fazer o sujo record (editar o ícone aparece).  Assim, eu comutei ao acCmdDeleteRecord de DoCmd.RunCommand.  Esse causa ao erro “o comando ou a ação DeleteRecord não está disponível agora”. o

I confirmou que o formulário permite os apagamentos, feitos um undo se o formulário está sujo, certificado que o formulário não está lido somente. Não é um subform, é um formulário contínuo autônomo, e o problema igualmente ocorre com o único forms.

I am furado - todas as idéias que qualquer um começ seja apreciado muito.  Thanks.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
função >Public notpretty DeleteRecord " do class= " do id= " codeSnippet808021 do
 0 de Err.Number então
      ExitRoutine empreendedores
   Terminar se
   No erro ErrorHandler empreendedores
   
   'Se o formulário não tem nenhum RecordSource, nenhuma necessidade de continuar.
   Se Format$ (frm.RecordSource) = "" então
      ExitRoutine empreendedores
   Terminar se
   
   'Se este é um novo recorda, nenhuma necessidade de continuar.
   Se frm.NewRecord então
      ExitRoutine empreendedores
   Terminar se
   
   'Tudo se bem, fazer assim o que nós viemos aqui fazer.
   gstrActiveFormForDeleteRecord = frm. Nome
   
   'Emitir o F2 para assegurar-se de que o usuário não selecione todos os registros.
   SendKeys “{F2}”, verdadeiro
   
   'Selecionar o registro atual (e se assegurar de que somente um esteja selecionado!)
   No erro recomeçar em seguida
   acCmdSelectRecord de RunCommand
   Se <> 0 de Err.Number então
      ExitRoutine empreendedores
   Terminar se
   No erro ErrorHandler empreendedores
   
   'Fazer a opção Record do menu da “supressão regular”.
   'No resumo do erro em seguida
   
   Se frm. Sujo = retificar então
    frm. Undo
   Terminar se
   
 
   acCmdDeleteRecord de DoCmd.RunCommand
   'SendKeys “{SUPRESSÃO}”, verdadeira

   gobjLastError.Save erram, strProcedureName
   No erro ErrorHandler empreendedores
   Selecionar o caso gobjLastError.Number
      Não encaixotar 0 'nenhuns erros
         'Não fazer nada
      Encaixotar mais
         'Dar um erro de sistema para qualquer outra coisa.
         gobjLastError.Raise gobjLastError.Number & “: ” & gobjLastError.Description
   Extremidade seleta
   
ExitRoutine:
   No resumo do erro em seguida
   gstrActiveFormForDeleteRecord = ""
   Retirar a função
ErrorHandler:
   gobjLastError.Save erram, strProcedureName
   Selecionar o caso gobjLastError.Number
      Encaixotar mais
         gobjLastError.Show
         Recomeçar ExitRoutine
   Terminar seleto
Terminar a função
class= do

Resposta : O comando ou a ação “DeleteRecord” não estão disponível agora.

Usar isto preferivelmente
1:
2:
3:
4:
   Escurecer rs como Recordset
   Ajustar rs = frm. Recordset
   rs. Supressão
   rs. Requery
Outras soluções  
 
programming4us programming4us