Curso Completo Base de datos

Cambiar numeracion de factura a 1 cuando cambia a nuevo año

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Cambiar numeracion de factura a 1 cuando cambia a nuevo año

    Buenos dias tengo un dilema como hago para hacer la consulta para verificar el año y si cambio me puede generar nuevamente la factura a numero 001. Ya hice algo simple para generar los numeros de facturas y se guardan en acces con la fecha en que fue creada. o no se si se les ocurre otra solucion mas facil. Por que analizando tendria que verificar la fecha del sistema con la ultima fecha guardada y si cambia comenzar con la nueva numeracion. espero sus respuestas saludos

  • #2
    Mira, yo hago esto
    Código:
            SQL = "Select Max(Factura) As cUltF From Movimi Where Right(Factura,3) = '." & cAnu & "'"
            .Open SQL, dbConex2, adOpenStatic, adLockOptimistic
            If IsNull(!cUltF) Then
                nFact = 1
            Else
                nFact = Int(Val(!cUltF)) + 1
            End If
    Lo que quiere decir, que busco la factura última (la que tiene máximo valor) de la tabla que controla los movimientos de venta en el AÑO ACTUAL.
    Si existen facturas, la próxima tomará el valor de la máxima más 1.
    Si no existe ninguna factura (año nuevo), el valor de la factura será 1.

    Sobre el dato "cAnu", es así porque yo numero las facturas como "1.18" - "127436.18" para el año 2018; por eso busco las que terminan en ".18"; tú tendrás que filtrar los movimientos del año en curso, dependiendo del campo en que grabes la fecha de la factura.

    José María Movilla Cuadrado
    ______________________
    Normas del foro
    www.foro.vb-mundo.com
    www.vb-mundo.com

    Comentario


    • #3
      Gracias Movilla con eso ya tengo una idea para hacer la consulta. otra cosita el codigo que tengo para imprimir o pasar un documento a word me da un error cuando lo capturo pero si le quito el codigo que captura el error funciona bien en la maquina donde hago el programa. pero lo instalo en otra y el programa se me cierra cuando le doy imprimir aqui le muestro el codigo que tengo.

      Código:
      Private Sub cmdImprimir_Click()
      Dim objWord As New Word.Application
      Dim docW As Word.Document
      Dim RutaDesktop As String
      Dim FinalID As String
      Dim directorC As String
      Dim directCedu As String
      Dim DirectCargo As String
      Dim DirectDesig As String
      
      
      On Local Error Resume Next
      
          If cbUsuario.Text = "" Then MsgBox "Debe Seleccionar Al Director", vbInformation, "Aviso": cbUsuario.SetFocus: Exit Sub
                  With rsDirector
                      If .State = 1 Then .Close
                  End With
              directCedu = cbUsuario.Text
          rsDirector.Open sqlDirector, Conexion, 1, 1
                  With rsDirector
                          .Requery
                          .Find "nombres= '" & directCedu & " ' "
                          directorC = !cedula
                          DirectCargo = !cargo
                          DirectDesig = !designado
                  End With
      
      
      
          
      MousePointer = vbHourglass
      
      Set docW = objWord.Documents.Open(txtOrigen.Text)
      
      
          docW.Bookmarks.Item("NOMBRES").Range = txtNombres.Caption
          docW.Bookmarks.Item("CEDULA").Range = txtCedula.Caption
          docW.Bookmarks.Item("DIRECCION").Range = txtDireccion.Caption
          docW.Bookmarks.Item("NOMENCLATURA").Range = txtNomenclatura.Caption
          docW.Bookmarks.Item("COSTON").Range = txtCosto.Caption
          docW.Bookmarks.Item("COSTOLETRAS").Range = txtLetrasD.Text
          docW.Bookmarks.Item("REFERENCIA").Range = txtNDeposito.Caption
          docW.Bookmarks.Item("FECHAP").Range = lblFPago.Caption
          docW.Bookmarks.Item("PAGADONUMERO").Range = lblDepositado.Caption
          docW.Bookmarks.Item("PAGADOLETRA").Range = txtPagoL.Text
          docW.Bookmarks.Item("SERIAL").Range = txtSerial.Caption
          docW.Bookmarks.Item("DIA").Range = txtDia.Text
          docW.Bookmarks.Item("MES").Range = txtMes.Text
          docW.Bookmarks.Item("AÑO").Range = txtAño.Text
          docW.Bookmarks.Item("NOMBREDELDIRECTOR").Range = cbUsuario.Text
          docW.Bookmarks.Item("cargo").Range = DirectCargo
          docW.Bookmarks.Item("resolucion").Range = DirectDesig
          
          docW.Bookmarks.Item("NUM").Range = lblConst.Caption
          
      
              objWord.ActiveDocument.PrintOut Background:=False
              objWord.ActiveDocument.Close savechanges:=wdDoNotSaveChanges
              objWord.Quit
              
      Set objWord = Nothing
      MousePointer = vbDefault
      
      
              Preguntas = MsgBox("Desea Guardar Los Cambios de " & txtNombres.Caption, vbYesNo + vbExclamation, "Aviso")
              
              If Preguntas = vbYes Then
          
      
                                      
      
                  Conexion.Execute sqlGrabarNumConst(CodigoRegistros, lblConst.Caption, Date)
                                          
      
              Else
              
              End If
      
      Limpiar
      
      If Error <> 0 Then
      MsgBox "ha ocurrido el siguiente error" & Err, vbInformation, "error"
      End If
      
      End Sub
      eso una constancia para las personas que cancelan sus viviendas. y me da la opcion de guardar el archivo en pdf. otra cosa yo tengo la fecha y el numero de constancia en dos campos de la tabla donde estan todos los datos de los clientes. los dejo alli o es recomendable crear una tabla a parte y las relaciono?
      Última edición por jtrillo; 12-11-2018, 05:47 PM.

      Comentario


      • #4
        No veo dónde puede producirse el error ni de qué error se trata.

        En lugar de On Error Resume Next, yo pondría On Error Goto VerError

        Y justo detrás de Limpiar, pondría

        Código:
        Exit Sub
        VerError:
        A ver si esto te aclara qué está pasando.
        José María Movilla Cuadrado
        ______________________
        Normas del foro
        www.foro.vb-mundo.com
        www.vb-mundo.com

        Comentario


        • #5
          gracias. el miercoles continuo con eso y comento que hoy es feriado y la aplicacion la deje en la oficina

          Comentario

          Trabajando...
          X