Ir para conteúdo
Fórum Script Brasil
  • 0

duvidas com VB 6


GilbertoB

Pergunta

Mais um problema ^^

tenho um frm de cadastro e cada cadastro recebe um codigo começando do 1 e seguindo a sequencia o problema é que o campo tem que preencher atomatico ou seja quando eu abrir o frm pra fazer um novo cadastro vai te la a Label já preenchida com o codigo, já me sugeriram usa o Auto Incremente do baco de dado que é no access mas tenho 3 tabels no mesmo baco de dados ai ele conta as outras tabela também e mesmo escluindo todos registros ele não volta no 1 mas continua da onde parou aqui ta no 28 ;) , mas eu quero fazer de otro jeito, eu pensei em fazer uma pesquisa verificando se tem algum codigo registrado se não tiver nenhum então colocaria uma imputbox perguntando que numero eu gostaria de começar a contar o codigo, ai iria gravar o numero no banco de dados e nos procimos cadastro era só verificar qual o ultimo numero do campo codigo e colocar + 1, só não fiz ainda porque não sei como faz uma pesquisa que verifique qual o ultimo numero do campo codigo e nem a pesquisa que verifica se tem algum codigo salvo, sera que podem me ajudar.

Se não entenderam perguntem que eu esplico melhor ^^

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Cara... esse autonumber geralmente é só pra indexação e chave primaria..... mas se você quiser q repita, você pode mandar ele ir verificando numero por numero.. por exemplo...

x=1

se x = rsdados("Codigo") então x=x+1, se não codigo pode ser x...

A logica acho q seria essa

Abraço :D

Link para o comentário
Compartilhar em outros sites

  • 0
Cara... esse autonumber geralmente é só pra indexação e chave primaria..... mas se você quiser q repita, você pode mandar ele ir verificando numero por numero.. por exemplo...

x=1

se x = rsdados("Codigo") então x=x+1, se não codigo pode ser x...

A logica acho q seria essa

Abraço :D

Primeiramente vlw Matheus.

Sim mas ai no caso o primeiro codigo seria 1 o os codigos que forem sendo adicionados seriam todos 2, eu precisava de algo para verificar qual é o ultimo numero do campo codigo da tabela e também de algo pra verificar se tem algum codigo salvo na tabela ou seja verificar todos codigos, se não encontrar nenhum então seguiria um caminho ou colocaria 1, caso encontre teria que me retornar o ultimo numero ou seja o numero mais alto.

Link para o comentário
Compartilhar em outros sites

  • 0

Me fala uma coisa...esses dados colocados no Banco, serão perpetuos ou há possibilidade de "excluir" algum registro ?

Pois, certa vez tentei criar meu próprio "auto-increment" da seguinte forma:

-Criei uma rotina onde ele contava o numero de registro no Banco

X = Rs.RecordCount   ' Conta o numero de registro retornando um valor inteiro.
-Pegava esse valor e acrescentava 1:
X = X + 1
-Na hora de salvar no banco, alocava esse resultado no campo de "Controle de Registro".
Con.Execute "INSERT INTO Tabela(Controle,aaa,sss,ddd)" & "Values('" & X & "','" & aaa & "','" & sss & "','" & ddd & "'"

Se for algo que nunca irá ser excluido, há controle sim...mas se for precisar "excluir", dependendo do registro, será gerado um número repetitivo...acho que por isso o "Auto-Increment" prefere sempre adicionar 1 ao invés de "zerar" o controle.

Exemplo visual:

finalre.png

1+1 = 3 pois está contando com o valor adicionado ao resultado da contagem dos registros do banco...

Espero que dê para entender :)

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0
Me fala uma coisa...esses dados colocados no Banco, serão perpetuos ou há possibilidade de "excluir" algum registro ?

Pois, certa vez tentei criar meu próprio "auto-increment" da seguinte forma:

-Criei uma rotina onde ele contava o numero de registro no Banco

X = Rs.RecordCount   ' Conta o numero de registro retornando um valor inteiro.
-Pegava esse valor e acrescentava 1:
X = X + 1
-Na hora de salvar no banco, alocava esse resultado no campo de "Controle de Registro".
Con.Execute "INSERT INTO Tabela(Controle,aaa,sss,ddd)" & "Values('" & X & "','" & aaa & "','" & sss & "','" & ddd & "'"

Se for algo que nunca irá ser excluido, há controle sim...mas se for precisar "excluir", dependendo do registro, será gerado um número repetitivo...acho que por isso o "Auto-Increment" prefere sempre adicionar 1 ao invés de "zerar" o controle.

Exemplo visual:

finalre.png

1+1 = 3 pois está contando com o valor adicionado ao resultado da contagem dos registros do banco...

Espero que dê para entender :)

Entendi sim até tentei faze aki mas fica que nem você falou quando exclui o cadastro 1 ai fica 2 cadastro 3 por isso falei de fazer alguma coisa pra saber qual foi o ultimo numero que foi salvo ou o maior numero para dar sequencia já que não pode ter 2 cadastro com mesmo codigo

Link para o comentário
Compartilhar em outros sites

  • 0

dim existe as boolean
dim numero as integer
dim contador as integer
contator=1
existe=false
set rsdados = new adodb.recordset
rsdados.open "select * from TABELA",rsdados
do while rsdados.eof=false and existe=false
if rsdados("Codigo") = contador then
existe=true
numero = contador
else
rsdados.movenext
contador=contador+1
end if
loop

Vai por essa logica.....

Abraço :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...