Caros amigos, como vão!?
Peço, mais uma vez, ajuda a vocês.
No meu projeto de biblioteca pessoal há um problema que não sei como contornar.
Para o formulário de cadastro "livros" usei o comando "DoCmd.GoToRecord , , acNewRec" ao abrir. Assim, ele sempre abre pronto para se digitar um novo cadastro.
Nesse formulário há botões para abrir formulários de inclusão de coisas específicas como "só Autor", "só Editora" e "só catalogação". Criei esses botões para o caso de ao começar a cadastrar um livro e perceber que não tem, por exemplo, determinado Autor na lista de autores, eu possa fazer o cadastro do Autor no formulário específico e voltar para completar o cadastro no formulário "livros".
Ocorrências de dificuldades na sequência disso:
1 - Quando eu fecho o formulário "Incluir só Autor", preciso dar um F5, ou seja, um refresh, para que o nome incluído apareça na lista de autores do formulário "livros". Mas, quando teclo o F5 o formulário é recarregado com o primeiro registro e não com o que eu estava trabalhando. Com isso eu tenho que pesquisar o cadastro que estava fazendo para conclui-lo
2 - Para não precisar teclar F5 usei um artifício: Ao clicar no botão para abrir "Incluir só Autor" inseri uma macro para fechar o formulário "livros" e quando sair do formulário de cadastro do autor ele reabre o formulário "livros". Assim consegui dispensei o F5, mas como o formulário "livros" está "programado" com "DoCmd.GoToRecord , , acNewRec", ele abre pronto para um novo registro. O que me faz ter que pesquisar o cadastro que está incompleto e completá-lo.
3 - Cheguei substituir "DoCmd.GoToRecord , , acNewRec" por "DoCmd.GoToRecord , , acLast" (que pesquisei aqui no fórum), mas ele me dá o último da ordem alfabética que configurei e não o último ID gerado, que para efeitos de completar dados é o que me interessará. Além do mais ao usar "DoCmd.GoToRecord , , acLast" no lugar de "DoCmd.GoToRecord , , acNewRec" perco o benefício de abrir o formulário de inclusão sempre pronto para uma nova inclusão, e, por outro lado, não atinjo o meu propósito que é de ao voltar do formulário "Incluir só Autor" abrir o registro do último ID lançado.
O meu propósito:
1 - Manter o formulário "livros" abrindo sempre em um "Novo Registro", que é o que ocorre, atualmente, quando vou iniciar um cadastro de livros diretamente nele.
2 - Excetuar esse procedimento, apenas quando se tratar de uma "volta" dos formulários "só Autor", "só Editora" e "só catalogação", para, em vez de abrir em um novo registro, ele recuperar o registro do último ID gerado, para que seja completado o cadastramento.
A solução que estava pensado:
1 - Criar um botão em cada um dos três formulários de inclusões isoladas: "só Autor", "só Editora" e "só catalogação", que contenha uma MACRO ou VBA que serviria para (quando eu fizer a inclusão específica neles) fechá-los individualmente e reabrir o formulário "livros" no registro referente ao último ID, que será, via de regra, o registro que eu estava cadastrando antes de ir para um dos outros três formulários citados.
O código para o botão executar a funcionalidade pretendida é a parte que não estou sabendo fazer!
ANEXEI o banco para melhor estudo do caso!
Gratos,
Valdomiro.
Peço, mais uma vez, ajuda a vocês.
No meu projeto de biblioteca pessoal há um problema que não sei como contornar.
Para o formulário de cadastro "livros" usei o comando "DoCmd.GoToRecord , , acNewRec" ao abrir. Assim, ele sempre abre pronto para se digitar um novo cadastro.
Nesse formulário há botões para abrir formulários de inclusão de coisas específicas como "só Autor", "só Editora" e "só catalogação". Criei esses botões para o caso de ao começar a cadastrar um livro e perceber que não tem, por exemplo, determinado Autor na lista de autores, eu possa fazer o cadastro do Autor no formulário específico e voltar para completar o cadastro no formulário "livros".
Ocorrências de dificuldades na sequência disso:
1 - Quando eu fecho o formulário "Incluir só Autor", preciso dar um F5, ou seja, um refresh, para que o nome incluído apareça na lista de autores do formulário "livros". Mas, quando teclo o F5 o formulário é recarregado com o primeiro registro e não com o que eu estava trabalhando. Com isso eu tenho que pesquisar o cadastro que estava fazendo para conclui-lo
2 - Para não precisar teclar F5 usei um artifício: Ao clicar no botão para abrir "Incluir só Autor" inseri uma macro para fechar o formulário "livros" e quando sair do formulário de cadastro do autor ele reabre o formulário "livros". Assim consegui dispensei o F5, mas como o formulário "livros" está "programado" com "DoCmd.GoToRecord , , acNewRec", ele abre pronto para um novo registro. O que me faz ter que pesquisar o cadastro que está incompleto e completá-lo.
3 - Cheguei substituir "DoCmd.GoToRecord , , acNewRec" por "DoCmd.GoToRecord , , acLast" (que pesquisei aqui no fórum), mas ele me dá o último da ordem alfabética que configurei e não o último ID gerado, que para efeitos de completar dados é o que me interessará. Além do mais ao usar "DoCmd.GoToRecord , , acLast" no lugar de "DoCmd.GoToRecord , , acNewRec" perco o benefício de abrir o formulário de inclusão sempre pronto para uma nova inclusão, e, por outro lado, não atinjo o meu propósito que é de ao voltar do formulário "Incluir só Autor" abrir o registro do último ID lançado.
O meu propósito:
1 - Manter o formulário "livros" abrindo sempre em um "Novo Registro", que é o que ocorre, atualmente, quando vou iniciar um cadastro de livros diretamente nele.
2 - Excetuar esse procedimento, apenas quando se tratar de uma "volta" dos formulários "só Autor", "só Editora" e "só catalogação", para, em vez de abrir em um novo registro, ele recuperar o registro do último ID gerado, para que seja completado o cadastramento.
A solução que estava pensado:
1 - Criar um botão em cada um dos três formulários de inclusões isoladas: "só Autor", "só Editora" e "só catalogação", que contenha uma MACRO ou VBA que serviria para (quando eu fizer a inclusão específica neles) fechá-los individualmente e reabrir o formulário "livros" no registro referente ao último ID, que será, via de regra, o registro que eu estava cadastrando antes de ir para um dos outros três formulários citados.
O código para o botão executar a funcionalidade pretendida é a parte que não estou sabendo fazer!
ANEXEI o banco para melhor estudo do caso!
Gratos,
Valdomiro.
Última edição por Valdomiro em 30/1/2015, 20:53, editado 1 vez(es)