jppcoelho Posted February 23, 2012 Report Share Posted February 23, 2012 Boa Tarde Estou a desenvolver uma aplicação em VB.Net com Visual Studio 2005 com Ms Access 2010 numa share de network. Esta aplicação precisa de: 1º)obter o maximo valor de um campo integer (ID) 2º)-inserir um registo na mesma tabela com o maximo ID+1. Esta aplicação pode ser usada no máximo por 10 utilizadores, mas é pouco provavel que ocorram muitos acessos em simultaneo. Mesmo assim, receio que aconteca 2 utilizadores a inserirem registos com o mesmo ID Queria saber como é que posso fazer isto com MsAccess 2010. ou Acham que deva gerir os acessos com outra tabela. ex: O primeiro a aceder ao Acess insere 1 registo. Quando acabar, apaga o registo. Se houverem registos nessa tabela as outras aplicações esperam. Cumprimentos Link to comment Share on other sites More sharing options...
Caça Posted February 23, 2012 Report Share Posted February 23, 2012 Usa um campo de Auto Incrementação. Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
jppcoelho Posted February 23, 2012 Author Report Share Posted February 23, 2012 Boa Tarde Infelizmente, não posso usar o campo de Autoincrementação. Este ID é auto incrementado por Ano e por tipo de documento. Obrigado pela resposta, tens mais alguma ideia ou achas que devo gerir os acessos com o auxilio de uma tabela? Cumprimentos Link to comment Share on other sites More sharing options...
Caça Posted February 23, 2012 Report Share Posted February 23, 2012 Podes fazer algo deste género, não sei é se o Access suporta INSERT INTO TABELA (ID, DESCR) VALUES ((SELECT MAX(ID) + 1 FROM TABELA), 'AAA') Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
jppcoelho Posted February 23, 2012 Author Report Share Posted February 23, 2012 Pedro Obrigado pela resposta, mas tambem não posso fazer assim. Primeiro tenho que apanhar o ID, depois na aplicação com esse ID+1 e mais alguma informação tenho que gerar uma assinatura com uma chave privada e só depois é que posso fazer o insert do ID+1, mais alguns dados e a assinatura. Se tiveres mais alguma ideia, agradeço. Cumprimentos Link to comment Share on other sites More sharing options...
Caça Posted February 23, 2012 Report Share Posted February 23, 2012 Eu não uso Access, não sei se tem alguma coisa que facilite isso, mas no entanto podes sempre usar uma transacção. Quando tens uma Transacção aberta sobre uma tabela, a mesma é bloqueada ate que a transacção seja terminada, até la mais ninguém consegue fazer nada nela. Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now