CODIGO AUTO-INCREMENTO NOVATO
Ai pessoal eu so novo em programação mas eu to querendo em um cadastro de cliente por exemplo, eu tenho o codigo de clientes eu quero que o vb quando abro a tela de cadastro já me coloque o codigo de clientes atual a ser digitado exemplo, eu digitei o codigo 1 que foi o primeiro cadastro, eu gostaria que aparece o 2 quando eu abrisse o form.... e quando eu gravasse fizesse um incremento do codigo e tb colocasse no compo de codigo exemplo, eu salvei o 2 e já me aparecesse o proximo... alguem poderia me ajudar ai eu já procurei e não achei nada, fico grato ai a todos e espero contribuir ai com todos com o que eu apreender também... um grande abraço
Vc usa Datacontrol, DAO ou ADO??
Access com ADO, faça:
Use no Form_Activate o código abaixo:
'consulta pra vc pegar o último código inserido no BD
cSQL = "SELECT TOP 1 * from Geral ORDER BY AProtocolo desc, NProtocolo desc"
Dados.rsGeral.Open cSQL, , adOpenDynamic, adLockOptimistic
'jogue o resultado numa variável publica (num módulo).
tpDados.vNProt = Dados.rsGeral!NProtocolo
'jogue em seu textbox, label, etc.
Text1.text = (tpDados.vNProt + 1)
'é o próximo código (o diponÃÂÂvel para uso, pq somado de 1)
Dados.rsGeral.Close 'feche o BD
Depois do seu código, grave a o valor da variável e em outro evento, incremente 1, para ser novamente utilizado.
Use no Form_Activate o código abaixo:
'consulta pra vc pegar o último código inserido no BD
cSQL = "SELECT TOP 1 * from Geral ORDER BY AProtocolo desc, NProtocolo desc"
Dados.rsGeral.Open cSQL, , adOpenDynamic, adLockOptimistic
'jogue o resultado numa variável publica (num módulo).
tpDados.vNProt = Dados.rsGeral!NProtocolo
'jogue em seu textbox, label, etc.
Text1.text = (tpDados.vNProt + 1)
'é o próximo código (o diponÃÂÂvel para uso, pq somado de 1)
Dados.rsGeral.Close 'feche o BD
Depois do seu código, grave a o valor da variável e em outro evento, incremente 1, para ser novamente utilizado.
ai Alexandre é ADO, creio que o nosso amigo VB6 Master já me deu uma ideia de como se faz, como eu so muito cru ainda eu não consegui entender muito o que ele quiz me passar, se vc puder ser um pouco mais especifico amigo eu agraço muito, e ah agradeço ai pela atenção aos dois que leram ao meu topico, valeu mesmo pela ajuda... espero anciosamente a mais respostas, quem puder me ajudar desde agora eu agraço ai pessoal
um grande abraço
um grande abraço
Camarada eu faço o seguinte, usando controle adodc:
ponho no RecordSource do ADODC_ultimo_cod
SELECT MAX(COD) FROM TABELA
então ligo uma textbox (TextULTIMOCOD) a este ADODC_ultimo_cod, então ela irá me retornar senmpre o ultimo código inserido
quando vou inserir ponho no botão de inserir novo registro:
ponho no RecordSource do ADODC_ultimo_cod
SELECT MAX(COD) FROM TABELA
então ligo uma textbox (TextULTIMOCOD) a este ADODC_ultimo_cod, então ela irá me retornar senmpre o ultimo código inserido
quando vou inserir ponho no botão de inserir novo registro:
Private Sub Command1_Click()
AdodcClientes.Recordset.AddNew
TextCOD.Text = TextULTIMOCOD + 1
então a textbox do código sempre irá inserir o ultimo código acrescido de 1
no botão salvar ponho o seguinte:
AdodcClientes.Recordset.Update
Dim vOK As Integer
vOK = MsgBox("Registro incluÃÂÂdo com sucesso", vbOKOnly, "Salvar registro")
If vOK = vbOK Then
ADODC_ultimo_cod.Refresh
note que salvo o registo com o update e depois atualizo o ADODC_ultimo_cod com o refresh para que ele faça novamente a busca e traga este ultimo código inserido.
Beleza? espero que te ajude a pensar
ai amigão, muito obrigado pela resposta, ainda estou aberto a mais respostas quem quizer me dar uma força ai eu agradeço... grande abraço a todos
KAUPOA..
vc ta usando Access? se for...pq vc n cria já o campo como auto-numeração na tabela...?
sinkertec,
cara eu pensei nisso, só que ai ele não me coloca na tela o proximo codigo ou o codigo depois que eu salvar e o objetivo é que o vb sempre me coloque no campo o proximo codigo que vai ser salvo no banco.
mas mesmo assim eu agradeço ai pela atenção um grande abraço amigão...!
cara eu pensei nisso, só que ai ele não me coloca na tela o proximo codigo ou o codigo depois que eu salvar e o objetivo é que o vb sempre me coloque no campo o proximo codigo que vai ser salvo no banco.
mas mesmo assim eu agradeço ai pela atenção um grande abraço amigão...!
Entendi..sua necessidade é mostrar o código...então..blz
acho q os códigos acima..resolverão seu problema!!
boa sorte
Sinkertec,
olha eu tentei usar o exemplo dos nossos amigos acima, só como eu falei anteriormente, eu ainda so muito cru no ramo do progracao em VB, nao entendi muito bem o que os amigos me passaram, teria um jeito mais simples que uma pessoa que esta iniciando poderia absorver de uma maneira mais intuitiva... eu agradeço pela atenção....
olha eu tentei usar o exemplo dos nossos amigos acima, só como eu falei anteriormente, eu ainda so muito cru no ramo do progracao em VB, nao entendi muito bem o que os amigos me passaram, teria um jeito mais simples que uma pessoa que esta iniciando poderia absorver de uma maneira mais intuitiva... eu agradeço pela atenção....
Seguinte:
Do jeito que você está querendo, quando seu sistema estiver instalado em vários micros em uma mesma empresa, e mais de um usuário estiver trabalhando na mesma tela, vai aparecer o mesmo código para eles, em novos cadastros diferentes. Ou seja, vai parecer mais um sistema monousuário do que multi-usuário.
Você TEM que fazer o que o SINKERTEC disse. Deixar isso para o banco de dados.
Se for um cadastro novo o que vai diferenciar em mostrar ou não o código ? Em nada meu amigo.
Que tal dois usuários tentando salvar dois cadastros com o mesmo código ? Vai ter sorte quem salvar por último, pois quem salvar primeiro vai ter seus dados alterados quando o último salvar no banco. Ou seja, o primeiro cadastro foi pro beleléu.
Depois que você salvar no banco de dados, aàvocê traz o código brother.
Do jeito que você está querendo, quando seu sistema estiver instalado em vários micros em uma mesma empresa, e mais de um usuário estiver trabalhando na mesma tela, vai aparecer o mesmo código para eles, em novos cadastros diferentes. Ou seja, vai parecer mais um sistema monousuário do que multi-usuário.
Você TEM que fazer o que o SINKERTEC disse. Deixar isso para o banco de dados.
Se for um cadastro novo o que vai diferenciar em mostrar ou não o código ? Em nada meu amigo.
Que tal dois usuários tentando salvar dois cadastros com o mesmo código ? Vai ter sorte quem salvar por último, pois quem salvar primeiro vai ter seus dados alterados quando o último salvar no banco. Ou seja, o primeiro cadastro foi pro beleléu.
Depois que você salvar no banco de dados, aàvocê traz o código brother.
Tópico encerrado , respostas não são mais permitidas