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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Criar um seq tabela access conforme numero
Roberto
não registrado
Postada em 25/10/2005 17:30 hs   
Pessoal , preciso de uma ajuda tenho uma Tabela no Access que
registra Numero contrato Exemplo

7535 - 12/01 a 11/02
7535 - 12/02 a 11/03
7536 - 12/01 a 11/02
7537 - 15/01 a 14/02
7537 - 15/02 a 14/03

so que preciso criar uma seq.

ou seja
      seq.
7535 - 1    12/01 a 11/02
7535 - 2    12/02 a 11/03
7536 - 1    12/01 a 11/02
7537 - 1    15/01 a 14/02
7537 - 2    15/02 a 14/03

Tentei desta forma, mas nao consegui,

Set cqsl2 = BDados.OpenRecordset("select max(seq) as soma2  from ContasPagar where (numerocontrato) like (numerocontrato)")


Roberto
     
MARCONE
Pontos: 2843
BRASÍLIA
DF - BRASIL
Postada em 25/10/2005 18:23 hs            
Você terá que fazer esse controle na hora de inserir o número do contrato, ou seja, antes de gravar o número do contrato, você varre a tabela para localizar se já há alguma sequência registrada; caso haja, faça um SELECT MAX e acrescente mais 1 ao resultado. Aí, é só gravar o contrato com sua sequência devidamente calculada.
 
(...)
' Considerando que o campo Contrato seja do tipo Texto; se for número, tire o último & da consulta sql:
 
Dim iProximaSeq as Long
sSql = "SELECT MAX(Seq) as Soma2 FROM ContasPagar WHERE Contrato ='" & Me.txtContrato.Text & "'"
rs.Open sSql, cnBd, adOpenKeyset, adLockOptimistic
If rs.Bof AND rs.Eof Then 'Se ainda não houver registros começa a sequencia
iProximaSeq=1
else
iProximaSeq = rs("Soma2") + 1
End If
(...)
rs.AddNew
rs!Contrato=txtContrato.Text
rs!Seq=iProximaSeq
rs.Update
msgbox "Registro Gravado"

MarconeEmoções

 

     
Roberto
não registrado
Postada em 25/10/2005 20:07 hs   
Oi Marcone , se você tiver um tempo para analisar segue meu codigo completo
ele é todo enrolado mais funciona, Obrigado





Dim cqsl As Recordset
Dim cqsl1 As Recordset
Dim cqsl2 As Recordset
Dim soma2 As Integer
Dim dtf As String
Dim iProximaSeq As Long



dtf = txtdata.Text

Set cqsl2 = BDados.OpenRecordset("select max(seq) as soma2  from ContasPagar where  (numerocontrato) like (numerocontrato)")
Set cqsl1 = BDados.OpenRecordset("ContasPagar", dbOpenDynaset)
Set cqsl = BDados.OpenRecordset("Contrato", dbOpenDynaset)

If cqsl2.BOF And cqsl2.EOF Then 'Se ainda não houver registros começa a sequencia
iProximaSeq = 1
Else
iProximaSeq = cqsl2("Soma2") + 1
End If

With cqsl
    
    MSFlexGrid1.AddItem entry
    .MoveMin
    While Not .EOF
        If !dataproximo2 = dtf And !Status = "Andamento" Then
                    
         mcodcli = !dataproximo2
         mdata = !dataproximo1
         mnumerocontrato = !numerocontrato
         mcodcliente = !Codigo
         mnome = !nome
         mseq = !dias
         mfrete = !frete
         mvalor = !valorlocacao
         meq = Val(mseq) + CDate(mcodcli)
         cqsl.edit
         cqsl("dataproximo1") = Format(mcodcli, "dd/mm/yyyy")
         cqsl("dataproximo2") = Format(meq, "dd/mm/yyyy")
         cqsl.Update
         cqsl1.AddNew
         cqsl1("seq") = iProximaSeq
         cqsl1("datageracao") = txtdata.Text
         cqsl1("numerocontrato") = mnumerocontrato
         cqsl1("Codigo") = mcodcliente
         cqsl1("Nome") = mnome
         cqsl1("datainicio") = mdata
         cqsl1("datafinal") = mcodcli
         cqsl1("dias") = mseq
         If IsNumeric(mfrete) = 0 Or Empty Then
         mfrete = 0
         cqsl1("frete") = mfrete
         End If
         cqsl1("valorgerado") = mvalor
         cqsl1.Update
        
         entry = mnumerocontrato & Chr(9) & mcodcli & Chr(9) & mnome & Chr(9) & mseq & Chr(9) '& magencia & Chr(9) & mnome & Chr(9) & mconta & Chr(9) & mserie & Chr(9) & mnumerocheque & Chr(9) & mvalor & Chr(9) & mdatadeposito & Chr(9) & mforma
        
        
MSFlexGrid1.AddItem entry

            End If
        .MoveNext
        
        
    Wend
End With

  

MsgBox "Atualização efetuada!"
     
Página(s): 1/1    


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