USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Um campo de autonumeração ME AJUDEM.
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 11/12/2007 14:42 hs            
usando o código aí do treze, acrescenta ao seu campo autonum 2 casas...
o formato dele é.. 00001 ficaria 0000001... até aí moleza...
nas duas primeiras casas, vc acrescenta os dois digitos finais do ano....
0700001, 0700002.....
no ano seguinte é só restartar..
0800001,...e daí por diante
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 11/12/2007 16:52 hs            
Caro colega Henrique
 
Com um pouco de lógica e conhecimento do código consegui, e ficou legal
 
vamos fazer as seguintes alterações no código
 
primeiro altere a função AutoNum para esta:
 
Private Sub AutoNum()
        If REG.RecordCount <> 0 Then ' Se a tabela não estiver vazia...
           REG.MoveMax 'mova para o ultimo registro.....
           If Format(Date, "yy") > Val(Right(REG("codigo"), 2)) Then
           txtcod.Text = "0001" & "/" & Format(Date, "yy")
           Exit Sub
           End If
           txtcod.Text = Format(Val(Left(REG("codigo"), 4)) + 1, "0000") _
 & "/" & Format(Date, "yy") ' e adicione mais um a este.
        Else ' caso contrário...
            txtcod.Text = "0001" & "/" & Format(Date, "yy") ' acrescente o numero 0001
        End If
End Sub
 
agora alterar o botão excluir (btnexcluir) para o seguinte código:
 
Private Sub btnexcluir_Click()
btnsalvar.Enabled = True 'ativa salvar
btnalterar.Enabled = False 'desativa alterar
btnexcluir.Enabled = False 'desativa excluir
REG.Delete
LimpaCampos
REG.MoveNext
Do While Not REG.EOF ' enquanto não for fim  do arquivo
Navega
txtcod.Text = Format(Val(Left(REG("codigo"), 4)) - 1, "0000") & "/" &  _
Format(Date, "yy")
REG.Edit ' salve a alteração...
Salva
REG.Update
REG.MoveNext ' ...e continue até o ultimo registro
Loop
LimpaCampos
AutoNum
End Sub
 
agora seu código ficará da seguinte forma....
 
0001/07, 0002/07....0297/07
 
com a mudança do ano o numero resetará, ficando assim
 
0001/08, 0002/08.... e assim por diante
 
legal né
 
teste e me diga como ficou
 
até
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 11/12/2007 17:18 hs            
eu havia mandado meu e-mail errado eis aqui o certo
 
 
o da uol tambem ta valendo
 
até
     
SRick
LAVRAS
MG - BRASIL
ENUNCIADA !
Postada em 11/12/2007 17:19 hs            
Amigo, obrigado, vou testar o novo código, mas tenho certeza que funcionará, a lógica está clara.
 
Valeu mesmo.
 
Uma pergunta, gostei da maneira que você criou o Banco de dados, eu posso usar esta técnica para um banco de dados que tenha duas tabelas? Posso relacionar estas tabelas?
Obrigado pelas dicas, estou aprendendo muito com você.
 
Henrique.
 
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 11/12/2007 17:40 hs            
claro basta basta voce abrir as duas
 
é fácil não vou colocar um exemplo aqui poi ficará meio complexo
 
mas ja criei um banco onde relacionei 15 tabelas
 
vamos ver se vc entende , vc não criou uma tabela
 
nela foram usadas as seguintes abreviações:
 
DB para DATABASE
REG para RECORDSET
TB para TABLEDEF
FD para FIELD
IX para INDEX
 
ENTÃO SUPONHAMOS QUE VOCÊ QUEIRA CRIAR OUTRA TABELA TIPO PRODUTOS:
 
VC PODERIA FAZER DA SEGUINTE FORMA, COM A ANTERIOR SÓ QUE ALTERANDO SUAS ABREVIAÇÕES PARA IDENTIFICA-LAS ASSIM EX:
 
DB para DATABASE  este você não precisaria crialo varias vezes uma basta, a não ser que fa~ça em outro programa claro
 
a mudança acontece aqui
 
REG_PROD para RECORDSET
TB_PROD para TABLEDEF
FD_PROD para FIELD
IX_PROD para INDEX
 
E ASSIM TODOS OS OUTRO CÓDIGOS MUDARIAM
LEMBRANDO SÓ DE ABRI-LOS DEPOIS
 
DESTA FORMA
 
    Set DB = Workspaces(0).OpenDatabase("clientes.mdb") 
    Set REG = DB.OpenRecordset("tabclientes", dbOpenTable)
    SET REG_PROD=DBN.OpenRecordset("tabprodutos",dbOpenTable)
 
MAIS DETALHES SE PRECISAR ENVIAREI POR E-MAIL É MAIS FÁCIL
 
 
   
SRick
LAVRAS
MG - BRASIL
ENUNCIADA !
Postada em 11/12/2007 18:49 hs            
Cara valeu vou tentar pra ver se consigo, bom mas o meu primeiro programinha que você me ensinou a fazer está quase pronto, mas eu gostaria de incluir duas pesquisas nele:
a primeira pesquisa: Gostaria de pesquisar qualquer parte do campo nome através do sql e as informações da pesquisa jogar em um dbgrid.
 
A outra pesquisa seria pela inicial do nome e também o resultado resultado em dbgrid ou datagrid.
 
É possível na pesquisa aparecer todas as ocorrências em um dbgrid ou só é possível ocorência por ocorrência? Será que você me ajuda a terminar este pequeno programinha que estou adorando aprender?
 
Obrigado Henrique.
   
Página(s): 4/7     « ANTERIOR    PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página