Alvaro Teixeira 30/8/2014, 11:07
Olá,
1º se abrir o diretamente o formulário
frmOrdem e carregar no botão
Novo,
está a dar erro, deve corrigir.
- Código:
Private Sub btnNovo_Click()
Me.txtIdentCliente.Locked = False
Me.txtEndereco.Locked = False
Me.txtIdentCliente.Enabled = True
Me.txtEndereco.Enabled = True
'--------------------
Me.txtIdentCliente.SetFocus
'----------------------
Me.btnNovo.Enabled = False
Me.btnAlterar.Enabled = False
Me.btnSalvar.Enabled = True
DoCmd.GoToRecord acForm, "frmOrdem", acNewRec
Me.IdentCriador.Value = "EU"
Me.DtCriacao.Value = Now()
End Sub
O erro ocorria porque não pode desativar um controlo quando está no foco (selecionado e activo), sendo resolvido em alterar o foco para o campo
txtIdentCliente2º Considerando que o frmOrdem pode ser aberto nountra situação e pretenda que abra no 1º registo, podemos controlar quando queremos que abra com o botão novo activado, para isso podemos usar o OpenArgs (argumentos de abertura). Colocando assim:
no frmPrincipal:
- Código:
Private Sub btnNovaOrdem_Click()
DoCmd.OpenForm "frmOrdem", , , , , , 1
'MsgBox "Agora falta ativar o evento do botão novo"
End Sub
O argumento que estou a utilizar neste exemplo é o
1no frmOrdem:
- Código:
Private Sub Form_Open(Cancel As Integer)
If OpenArgs = 1 Then Call btnNovo_Click
End Sub
Assim controlamos ao abrir se tiver o argumento
1 vai chamar a Sub
btnNovo_ClickApenas mais uma nota, de boas práticas ao postar uma base de dados:
Compactar e Reparar Base de dados e criar ficheiro
ZIP, assim poupas a tua cota de espaço.
Ficamos aguardar retorno.
Abraço