Probblema con una chiamata call in un form

di il
5 risposte

Probblema con una chiamata call in un form

Salve a tutti,

ho un vecchissimo programma di contablita che gia all'epoca era fatto un po così
ma e sempre andato abastanza bene , ora ho apportato delle modifiche ma mi da
dei problemi/difetti/errori e tanto che non ci faccio piu nente quindi sono molto rugginoso
sarei enormemente grato se qualcuno mi potesse dare una mano.
in prati il difetto si svolge in due form:
uno e il preventivo
l'altro e il database degli articoli

praticamente normalente se prelevo l'aticolo poi mi viene inserito in una textbox
e poi posso copiarlo all interno del preventivo

se inserisco questa call che mi rchiama una routine che fa dei calcoli

in pratica mi fa tutta la procedura correttamente ma poi nella textbox non trovo nulla ..
non riesco a capire dove sta l'inghippo

iserisco il codice della parte interessata
questo e il form del preeventivo
la chiamata è CALL CALCOLI all 'interno di Form Activate


Option Compare Text
Dim salva As Boolean
Dim flag As Boolean
Dim T_IVA As Double, t_netto As Double
Dim attuale As Integer
 #If Win32 Then

      Private Declare Function SetBkMode Lib "gdi32" _
      (ByVal hDC As Long, ByVal nBkMode As Long) As Long

      Private iBKMode As Long

   #Else

      Private Declare Function SetBkMode Lib "GDI" (ByVal hDC As Integer _
       , ByVal nBkMode As Integer) As Integer

      Private iBKMode As Integer

   #End If

      Private Const TRANSPARENT = 1
      Private Const OPAQUE = 2
Public Sub riordino()
    DBGrid1.Columns(0).Visible = False
    DBGrid1.Columns(1).Visible = False
    DBGrid1.Columns(2).Visible = False
    DBGrid1.Columns(3).Width = 720
    DBGrid1.Columns(3).Alignment = 2
    DBGrid1.Columns(4).Width = 1120
    DBGrid1.Columns(4).Alignment = 2
    DBGrid1.Columns(5).Width = 5900
    DBGrid1.Columns(6).Width = 600
    DBGrid1.Columns(6).Alignment = 2
    DBGrid1.Columns(7).Width = 1100
    DBGrid1.Columns(7).Alignment = 2
    DBGrid1.Columns(8).Width = 1000
    DBGrid1.Columns(9).Width = 1000
    DBGrid1.Columns(10).Width = 1000
    DBGrid1.Columns(11).Width = 1000
    DBGrid1.Columns(12).Width = 1000
    DBGrid1.Columns(13).Width = 1000
    DBGrid1.Columns(14).Width = 1000
    DBGrid1.Columns(15).Width = 700
    DBGrid1.Columns(16).Width = 1000
'    DBGrid1.SetFocus
End Sub
Function dividi(descr As String, l As Integer) As String
Dim cont As Integer
Dim lung As Integer
Dim spazio As String
    ' Lunghezza stringa restituita
    lung = l
    If Len(descr) <= lung Then
        dividi = descr
    Else
        cont = lung
        spazio = Mid(descr, lung, 1)
        While Not spazio = " "
            cont = cont - 1
            spazio = Mid(descr, cont, 1)
        Wend
        dividi = Mid(descr, 1, cont)
    End If
End Function

Private Sub CANCELLA()
    Des.Text = ""
    Um.Text = ""
    Prunit.Text = ""
    Prscont.Text = ""
    Sconto.Text = ""
    iva.Text = ""
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
End Sub

Private Sub Stampa(pagina As Integer, stringa As String)
    If pagina = 0 Or pagina = attuale Then
        Printer.Print stringa
    End If
End Sub

Private Sub Bt_addnota_Click()
    If Not IsNull(DB_STOPRE.Recordset("NOTE")) Then
        Note.Text = DB_STOPRE.Recordset("NOTE")
    Else
        Note.Text = ""
    End If
    Note.Visible = True
    L_note.Visible = True
    BT_insnota.Visible = True
    Bt_annota.Visible = True
    BT_parz.Visible = False
    BT_forn.Visible = False
    BT_var.Visible = False
    Note.SetFocus
    Bt_addnota.Visible = False
    Call riordino
    'Call Calcoli
End Sub


Private Sub BT_AnNota_Click()
    Note.Visible = False
    L_note.Visible = False
    BT_insnota.Visible = False
    Bt_annota.Visible = False
    BT_parz.Visible = True
    BT_var.Visible = True
    Bt_addnota.Visible = True
    BT_forn.Visible = True
    DBGrid1.SetFocus
    Call riordino
    'Call Calcoli
End Sub

Private Sub BT_annvoce_Click()
    BT_var.Visible = True
    Bt_addnota.Visible = True
    BT_parz.Visible = True
    BT_newvoce.Visible = True
    BT_elart.Visible = False
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
    BT_modvoce.Visible = True
    BT_cancvoce.Visible = True
    BT_insvoce.Visible = False
    BT_sta.Visible = True
    scelta.Visible = False
    BT_annvoce.Visible = False
    BT_forn.Visible = True
    flag = False
    DB_PREV.Recordset.MoveLast
    DB_PREV.Recordset.Delete
    DB_PREV.Recordset.MoveLast
    DBGrid1.SetFocus
    Call riordino
    'Call Calcoli
End Sub

Private Sub Bt_cancVoce_Click()
Dim Msg As String
Dim tipo_finmsg As Integer
    If Not DB_PREV.Recordset.EOF Then
        tipo_finmsg = 4
        Msg = "Conferma la Cancellazione della voce dal documento ?"
        If MsgBox(Msg, tipo_finmsg, "Cancella da Documento") = 6 Then
            DB_PREV.Recordset.Delete
            DB_PREV.Recordset.MoveNext
            If DB_PREV.Recordset.EOF Then
                DB_PREV.Refresh
                If Not DB_PREV.Recordset.EOF Then DB_PREV.Recordset.MoveLast
            End If
            DBGrid1.SetFocus
           ' Me.Timer1.Enabled = True
           Call Calcoli
        Call riordino
          
        End If
    End If
    'Call riordino
    'Call Calcoli
End Sub

Private Sub BT_elart_Click()
    scelta.ZOrder 0
    scelta.Visible = True
End Sub

Private Sub BT_forn_Click()
    F_CAMFOR.cliente = DB_STOPRE.Recordset("CLIENTE")
    F_CAMFOR.NORD = NORD.Text
    F_CAMFOR.DATA = DATA.Text
    F_PREINS.Hide
    F_CAMFOR.Show
End Sub

Private Sub BT_insnota_Click()
    DB_STOPRE.Recordset.Edit
    DB_STOPRE.Recordset("NOTE") = Note.Text
    DB_STOPRE.Recordset.Update
    Note.Visible = False
    L_note.Visible = False
    BT_insnota.Visible = False
    Bt_annota.Visible = False
    BT_parz.Visible = True
    BT_var.Visible = True
    BT_forn.Visible = True
    Bt_addnota.Visible = True
    DBGrid1.SetFocus
End Sub

Private Sub BT_insvoce_Click()
    iva.Text = DB_STOPRE.Recordset("IVA")
    salva = True
    DB_PREV.Recordset.Edit
    DB_PREV.Recordset("NUMERO") = NORD.Text
    If Qty.Text <> "" And Prscont.Text <> "" Then
        DB_PREV.Recordset("IMPORTO") = Format((Qty.Text * Prscont.Text), F_MENU.FormatoEuro)
        End If
     If Qty.Text <> "" And UDC.Text <> "" Then
         DB_PREV.Recordset("Tot_UDC") = Format((Qty.Text * UDC.Text), F_MENU.FormatoEuro)
          End If
        If Qty.Text <> "" And MANOD.Text <> "" Then
         DB_PREV.Recordset("TMANOD") = Format((Qty.Text * MANOD.Text), F_MENU.FormatoEuro)
          End If
          
    DB_PREV.Recordset.Update
    salva = False
    BT_var.Visible = True
    Bt_addnota.Visible = True
    BT_parz.Visible = True
    BT_sta.Visible = True
    BT_newvoce.Visible = True
    BT_modvoce.Visible = True
    BT_cancvoce.Visible = True
    BT_elart.Visible = False
    scelta.Visible = False
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
    BT_insvoce.Visible = False
    BT_annvoce.Visible = False
    BT_forn.Visible = True
    DB_PREV.Recordset.MoveLast
    DBGrid1.SetFocus
    flag = False
    
    Call Calcoli
    Call riordino
    
   ' DBGrid1.SetFocus
        End Sub


Private Sub BT_modvoce_Click()
    If Not DB_PREV.Recordset.EOF Then
        salva = True
        DB_PREV.Recordset.Edit
        If Qty.Text <> "" And Prscont.Text <> "" Then
            DB_PREV.Recordset("IMPORTO") = Format((Qty.Text * Prscont.Text), F_MENU.FormatoEuro)
            End If
        If Qty.Text <> "" And UDC.Text <> "" Then
            DB_PREV.Recordset("TOT_UDC") = Format((Qty.Text * UDC.Text), F_MENU.FormatoEuro)
         End If
             If Qty.Text <> "" And MANOD.Text <> "" Then
            DB_PREV.Recordset("TMANOD") = Format((Qty.Text * MANOD.Text), F_MENU.FormatoEuro)
         End If
         
       DB_PREV.Recordset.Update
            salva = False
        DBGrid1.SetFocus
    End If
    Call Calcoli
    Call riordino
    
End Sub


Private Sub BT_newvoce_Click()
   ' flag = True
    DB_PREV.Recordset.AddNew
    DB_PREV.Recordset("NUMERO") = NORD.Text
    DB_PREV.Recordset.Update
    'con il seguente comando aggiunge voce sempre e solo alla fine del database
    DB_PREV.Recordset.MoveLast
    Casa.Text = ""
    Codice.Text = ""
    Des.Text = ""
    Um.Text = ""
    UDC.Text = ""
    Tot_UDC.Text = ""
    MANOD.Text = ""
    TMANOD.Text = ""
    Prunit.Text = ""
    Prscont.Text = ""
    Sconto.Text = ""
    iva.Text = ""
    BT_var.Visible = False
    BT_elart.Visible = True
    BT_sta.Visible = False
    BT_insnota.Visible = False
   flag = True
    Bt_annota.Visible = False
    L_note.Visible = False
    Note.Visible = False
    Bt_addnota.Visible = False
    BT_parz.Visible = False
    BT_newvoce.Visible = False
    BT_insvoce.Visible = True
    BT_annvoce.Visible = True
    BT_modvoce.Visible = False
    BT_forn.Visible = False
    BT_cancvoce.Visible = False
    Call riordino
    'Call Calcoli
    Casa.SetFocus
  
End Sub

Private Sub Calcoli()
Dim tipo_finmsg As String
Dim Msg As String
Dim IMPO, iva, TUDC, TMANOD As Double
    IMPO = 0
    TUDC = 0
    iva = 0
    TMANOD = 0
    TOT1 = 0
    UTIMP = 0
    DB_PREV.Refresh
    While Not DB_PREV.Recordset.EOF
        If Not IsNull(DB_PREV.Recordset("IMPORTO")) Then
            IMPO = IMPO + DB_PREV.Recordset("IMPORTO")
          End If
         
          If Not IsNull(DB_PREV.Recordset("TOT_UDC")) Then
             TUDC = TUDC + DB_PREV.Recordset("TOT_UDC")
         End If
       
        If Not IsNull(DB_PREV.Recordset("TMANOD")) Then
             TMANOD = TMANOD + DB_PREV.Recordset("TMANOD")
         End If
        DB_PREV.Recordset.MoveNext
        On Error GoTo errore
    Wend
    
    iva = IMPO * DB_STOPRE.Recordset("IVA") / 100
    TOT1 = TUDC + TMANOD
    UTIMP = IMPO - TOT1
    tipo_finmsg = 0
    
    tot.Caption = Format(IMPO, F_MENU.FormatoEuro)
    IVA1.Caption = Format(iva, F_MENU.FormatoEuro)
    impo1.Caption = Format(IMPO + iva, F_MENU.FormatoEuro)
    TUDC1.Caption = Format(TUDC, F_MENU.FormatoEuro)
    TMANOD1.Caption = Format(TMANOD, F_MENU.FormatoEuro)
    manodudc.Caption = Format(UTIMP + TMANOD, F_MENU.FormatoEuro)
    utilimp.Caption = Format(IMPO - TOT1, F_MENU.FormatoEuro)
    
    
   ' Msg = "IL TOTALE DEI CALCOLI DI PREVENTIVO é " & Chr$(13)
   ' Msg = Msg & Chr$(13)
   ' Msg = Msg & "IMPONIBILE : " & Chr$(32) & Format(IMPO, F_MENU.FormatoEuro) & Chr$(13)
   ' Msg = Msg & "IVA        : " & Format(IVA, F_MENU.FormatoEuro) & Chr$(13)
   ' Msg = Msg & "TOTALE     : " & Format(IMPO + IVA, F_MENU.FormatoEuro) & Chr$(13) & Chr$(13)
    
    
   ' Msg = Msg & "TOTALE U.D.C.   : " & Format(TUDC, F_MENU.FormatoEuro) & Chr$(13)
   ' Msg = Msg & "TOT. MANOD      : " & Format(TMANOD, F_MENU.FormatoEuro) & Chr$(13) & Chr$(13)
    
   ' Msg = Msg & "MANOD + UDC     : " & Format(TUDC + TMANOD, F_MENU.FormatoEuro) & Chr$(13)
   ' Msg = Msg & "UTILE IMP.      : " & Format(IMPO - TOT1, F_MENU.FormatoEuro) & Chr$(13) & Chr$(13)
    
   ' If MsgBox(Msg, tipo_finmsg, "CALCOLI PREVENTIVO") = 1 Then
    'End If
    DB_PREV.Refresh
    DB_PREV.Recordset.MoveLast
      salva = False
      
     ' Call riordino
   '  Me.Timer1.Enabled = True
Exit Sub
errore:
   MsgBox "è inrtervenuto un erroe !", vbExclamation
   On Error Resume Next
   
End Sub

Private Sub BT_sta_Click()
Dim I As Byte
    DB_STAMPANTI.DatabaseName = CurDir & "\SEA.mdb"
    DB_STAMPANTI.RecordSource = "db_stampanti"
    DB_STAMPANTI.Refresh
    I = DB_STAMPANTI.Recordset("IMPOSTATA")
    attualmente.Text = Printers(I).DeviceName
    For I = 0 To Printers.Count - 1
        stamp.AddItem Printers(I).DeviceName, I
    Next I
    st.ZOrder 0
    Contratto.Value = 0
    st.Visible = True
    Call riordino
    'Call Calcoli
End Sub

Private Sub BT_var_Click()
    variazione.ZOrder 0
    variazione.Visible = True
    var.Text = ""
    var.SetFocus
    Call riordino
    'Call Calcoli
End Sub

Private Sub Casa_LostFocus()
Dim esegui As Boolean
    Casa.Text = UCase(Casa.Text)
    esegui = True
    If Codice.Text <> "" And flag Then
        DB_ARTASS.RecordSource = "select * from db_artass where casa = " & Chr$(34) & Casa.Text & Chr$(34) & " and codice= " & Chr$(34) & Codice.Text & Chr$(34)
        DB_ARTASS.Refresh
        If Not DB_ARTASS.Recordset.EOF Then
            Casa = DB_ARTASS.Recordset("CASA")
            Codice = DB_ARTASS.Recordset("CODICE")
            Des = DB_ARTASS.Recordset("DESCRIZIONE")
            Um = DB_ARTASS.Recordset("UM")
            UDC = DB_ARTASS.Recordset("UDC")
            MANOD = DB_ARTASS.Recordset("Manod")
            Costo = DB_ARTASS.Recordset("COSTO")
            Ricarico = DB_ARTASS.Recordset("RICARICO")
            Prunit = DB_ARTASS.Recordset("LISTINO")
            Prscont = DB_ARTASS.Recordset("LISTINO")
            iva = DB_ARTASS.Recordset("IVA")
            L9.Visible = True
            L10.Visible = True
            Costo.Visible = True
            Ricarico.Visible = True
            Qty.Text = 1
            Sconto.Text = 0
            esegui = False
        Else
            Call CANCELLA
        End If
        If esegui Then
        DB_ARTICOLI.RecordSource = "select * from db_articoli where casa = " & Chr$(34) & Casa.Text & Chr$(34) & " and codice= " & Chr$(34) & Codice.Text & Chr$(34)
        DB_ARTICOLI.Refresh
        If Not DB_ARTICOLI.Recordset.EOF Then
            Casa = DB_ARTICOLI.Recordset("CASA")
            Codice = DB_ARTICOLI.Recordset("CODICE")
            Des = DB_ARTICOLI.Recordset("DESCRIZIONE")
            Um = DB_ARTICOLI.Recordset("UM")
            Costo = DB_ARTICOLI.Recordset("COSTO")
            UDC = DB_ARTICOLI.Recordset("costo")
            Ricarico = DB_ARTICOLI.Recordset("RICARICO")
            Prunit = DB_ARTICOLI.Recordset("LISTINO")
            Prscont = DB_ARTICOLI.Recordset("LISTINO")
            iva = DB_ARTICOLI.Recordset("IVA")
            L9.Visible = True
            L10.Visible = True
            Costo.Visible = True
            Ricarico.Visible = True
            Qty.Text = 1
            Sconto.Text = 0
            esegui = False
        Else
            Call CANCELLA
        End If
        End If
    End If
End Sub

Private Sub codice_LostFocus()
Dim esegui As Boolean
    Codice.Text = UCase(Codice.Text)
    esegui = True
    If Casa.Text <> "" And flag Then
        DB_ARTASS.RecordSource = "select * from db_artass where casa = " & Chr$(34) & Casa.Text & Chr$(34) & " and codice= " & Chr$(34) & Codice.Text & Chr$(34)
        DB_ARTASS.Refresh
        If Not DB_ARTASS.Recordset.EOF Then
            Casa = DB_ARTASS.Recordset("CASA")
            Codice = DB_ARTASS.Recordset("CODICE")
            Des = DB_ARTASS.Recordset("DESCRIZIONE")
            Um = DB_ARTASS.Recordset("UM")
            UDC = DB_ARTASS.Recordset("UDC")
            MANOD = DB_ARTASS.Recordset("Manod")
            Costo = DB_ARTASS.Recordset("COSTO")
            Ricarico = DB_ARTASS.Recordset("RICARICO")
            Prunit = DB_ARTASS.Recordset("LISTINO")
            Prscont = DB_ARTASS.Recordset("LISTINO")
            iva = DB_ARTASS.Recordset("IVA")
            L9.Visible = True
            L10.Visible = True
            Costo.Visible = True
            Ricarico.Visible = True
            Qty.Text = 1
            Sconto.Text = 0
            esegui = False
        Else
            Call CANCELLA
        End If
        If esegui Then
        DB_ARTICOLI.RecordSource = "select * from db_articoli where casa = " & Chr$(34) & Casa.Text & Chr$(34) & " and codice= " & Chr$(34) & Codice.Text & Chr$(34)
        DB_ARTICOLI.Refresh
        If Not DB_ARTICOLI.Recordset.EOF Then
            Casa = DB_ARTICOLI.Recordset("CASA")
            Codice = DB_ARTICOLI.Recordset("CODICE")
            Des = DB_ARTICOLI.Recordset("DESCRIZIONE")
            Um = DB_ARTICOLI.Recordset("UM")
            UDC = DB_ARTICOLI.Recordset("COSTO")
            Costo = DB_ARTICOLI.Recordset("COSTO")
            Ricarico = DB_ARTICOLI.Recordset("RICARICO")
            Prunit = DB_ARTICOLI.Recordset("LISTINO")
            Prscont = DB_ARTICOLI.Recordset("LISTINO")
            iva = DB_ARTICOLI.Recordset("IVA")
      
            L9.Visible = True
            L10.Visible = True
            Costo.Visible = True
            Ricarico.Visible = True
            Qty.Text = 1
            Sconto.Text = 0
            esegui = False
        Else
             Call CANCELLA
        End If
        End If
    End If
End Sub

Private Sub Command1_Click()
    With F_ARTRMO
        .L_DocP.Visible = True
        .mnuart.Enabled = False
        .mnumenu.Enabled = False
        .BT_REGMOD.Visible = False
        .BT_CANCELLA.Visible = False
        .BT_pins.Visible = True
        .BT_pann.Visible = True
    End With
    scelta.Visible = False
    F_ARTRMO.Caption = "Inserimento Articoli Singoli in Preventivo"
    F_PREINS.Hide
    F_ARTRMO.Show
End Sub

Private Sub Command2_Click()
    With F_ASSRMO
        .L_DocP.Visible = True
        .mnuart.Enabled = False
        .mnumenu.Enabled = False
        .BT_REGMOD.Visible = False
        .BT_CANCELLA.Visible = False
        .BT_pins.Visible = True
        .BT_pann.Visible = True
    End With
    scelta.Visible = False
    F_ARTRMO.Caption = "Inserimento Articoli Assemblati in Preventivo"
    F_PREINS.Hide
    F_ASSRMO.Show
End Sub

Private Sub Command3_Click()
    scelta.Visible = False
End Sub
Private Sub Command6_Click()
    stamp.Clear
    st.Visible = False
End Sub

Private Sub dis_modello()
    ' verticali
 '   Printer.Line (42, 8.5)-(95, 8.5)
    Printer.Line (42, 16.5)-(95, 16.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 14.5)-(42, 14.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 20.5)-(95, 20.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 22.5)-(95, 22.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 52.5)-(84.5, 52.5) ', RGB(184, 227, 254), BF
    Printer.Line (12, 54.5)-(62, 54.5) ', RGB(184, 227, 254), BF
    Printer.Line (8, 56)-(62, 56) ', RGB(184, 227, 254), BF
    Printer.Line (8, 57.5)-(62, 57.5) ', RGB(184, 227, 254), BF
    Printer.Line (84.5, 54.5)-(95, 54.5) ', RGB(184, 227, 254), BF
    Printer.Line (84.5, 56.5)-(95, 56.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 58)-(95, 58) ', RGB(184, 227, 254), BF
    Printer.Line (5, 60)-(18, 60) ', RGB(184, 227, 254), BF
    ' orizzontali
    Printer.Line (42, 14.5)-(42, 20.5) ', RGB(184, 227, 254), BF
    Printer.Line (5, 14.5)-(5, 60) ', RGB(184, 227, 254), BF
    Printer.Line (18, 58)-(18, 60) ', RGB(184, 227, 254), BF
   ' Printer.Line (5, 12)-(5, 62)', RGB(184, 227, 254), BF
    Printer.Line (20, 20.5)-(20, 22.5) ', RGB(184, 227, 254), BF
    Printer.Line (58, 20.5)-(58, 52.5) ', RGB(184, 227, 254), BF
   ' Printer.Line (59.5, 12)-(59.5, 62)
    Printer.Line (62, 20.5)-(62, 52.5) ', RGB(184, 227, 254), BF
    Printer.Line (70, 20.5)-(70, 52.5) ', RGB(184, 227, 254), BF
    Printer.Line (65, 52.5)-(65, 58) ', RGB(184, 227, 254), BF
    Printer.Line (84.5, 20.5)-(84.5, 58) ', RGB(184, 227, 254), BF
    Printer.Line (95, 16.5)-(95, 58) ', RGB(184, 227, 254), BF
End Sub

Private Sub Command8_Click()
    variazione.Visible = False
End Sub

Private Sub Command9_Click()
Dim Ric As Single
    variazione.Visible = False
    If var.Text <> "" Then
        DB_PREV.Refresh
        salva = True
        While Not DB_PREV.Recordset.EOF
            If Not IsNull(DB_PREV.Recordset("PREZZO")) Then
                Ric = DB_PREV.Recordset("PREZZO") * var.Text / 100
                DB_PREV.Recordset.Edit
                DB_PREV.Recordset("PREZZO") = Format((DB_PREV.Recordset("PREZZOI") - Ric), F_MENU.FormatoEuro)
      '        On Error Resume Next
                DB_PREV.Recordset("IMPORTO") = Format((DB_PREV.Recordset("PREZZO") * DB_PREV.Recordset("QUANTITA")), F_MENU.FormatoEuro)
                DB_PREV.Recordset("SCONTO") = Format(var.Text, F_MENU.FormatoEuro)
                DB_PREV.Recordset.Update
            End If
            DB_PREV.Recordset.MoveNext
        Wend
        salva = False
        Me.Timer1.Enabled = True
        
    End If
End Sub

Private Sub DB_prev_Validate(Action As Integer, Save As Integer)
If salva = False Then Save = False
End Sub

Private Sub Netto(V_IVA As Double)
    DB_PREV.RecordSource = "select * from db_prev where NUMERO =" & NORD.Text & " order by ID "
    DB_PREV.Refresh
    t_netto = "0"
    T_IVA = "0"
    While Not DB_PREV.Recordset.EOF
        If Not IsNull(DB_PREV.Recordset("PREZZO")) Then
            t_netto = t_netto + DB_PREV.Recordset("IMPORTO")
        End If
    DB_PREV.Recordset.MoveNext
    Wend
    T_IVA = t_netto * V_IVA / 100
End Sub
'Private Sub S_IVA(V_IVA As Currency)
'    DB_PREV.RecordSource = "select * from db_prev where NUMERO =" & NORD.Text & " order by ID "
'    DB_PREV.Refresh
 '       T_IVA = "0"
'        T_IVA = t_netto * V_IVA / 100
'End Sub

Private Sub DBGrid1_KeyPress(KeyAscii As Integer)
    If Chr(KeyAscii) = "g" Or Chr(KeyAscii) = "G" Then DBGrid1.Height = 8500
    If Chr(KeyAscii) = "p" Or Chr(KeyAscii) = "P" Then DBGrid1.Height = 2616
End Sub

Private Sub Form_Activate()
    flag = True
    If BT_elart.Visible = False Then
        DB_PREV.DatabaseName = CurDir$ & "\SEA.mdb"
        DB_PREV.RecordSource = "select * from db_Prev where numero = " & NORD.Text & " order by ID"
        DB_PREV.Refresh
        flag = False
    End If
    DB_ARTICOLI.DatabaseName = CurDir$ & "\SEA.mdb"
    DB_ARTASS.DatabaseName = CurDir$ & "\SEA.mdb"
    DB_STOPRE.DatabaseName = CurDir$ & "\SEA.mdb"
    DB_STOPRE.RecordSource = "select * from db_stopre where numero = " & NORD.Text
    DB_STOPRE.Refresh
    DB_EURO.DatabaseName = CurDir & "\SEA.mdb"
    DB_EURO.RecordSource = "db_EURO"
    DB_EURO.Refresh
    salva = False
    Call Calcoli
    Call riordino
   ' DBGrid1.Columns(0).Visible = False
    'DBGrid1.Columns(1).Visible = False
    'DBGrid1.Columns(2).Width = 620
   ' DBGrid1.Columns(2).Alignment = 2
   ' DBGrid1.Columns(3).Width = 620
   ' DBGrid1.Columns(3).Alignment = 2
   ' DBGrid1.Columns(4).Width = 920
   ' DBGrid1.Columns(4).Alignment = 2
   ' DBGrid1.Columns(5).Width = 4700
   ' DBGrid1.Columns(6).Width = 500
   ' DBGrid1.Columns(6).Alignment = 2
   ' DBGrid1.Columns(7).Width = 723
   ' DBGrid1.Columns(7).Alignment = 2
   ' DBGrid1.Columns(8).Width = 680
   ' DBGrid1.Columns(9).Width = 680
   ' DBGrid1.Columns(10).Width = 680
   ' DBGrid1.Columns(11).Width = 680
   ' DBGrid1.Columns(12).Width = 680
   ' DBGrid1.Columns(13).Width = 680
   ' DBGrid1.Columns(14).Width = 550
   ' DBGrid1.Columns(15).Width = 550
   ' DBGrid1.Columns(16).Width = 680
End Sub

Private Sub Form_Deactivate()
Dim IMPO, iva, parz As Double
    IMPO = 0
    DB_PREV.Refresh
    While Not DB_PREV.Recordset.EOF
        If Not IsNull(DB_PREV.Recordset("PREZZO")) And Not IsNull(DB_PREV.Recordset("QUANTITA")) And Not IsNull(DB_PREV.Recordset("IVA")) Then
            IMPO = IMPO + DB_PREV.Recordset("IMPORTO")
        End If
        DB_PREV.Recordset.MoveNext
    Wend
    DB_STOPRE.Recordset.Edit
    DB_STOPRE.Recordset("IMPONIBILE") = Format(IMPO, F_MENU.FormatoEuro)
    DB_STOPRE.Recordset.Update
   
End Sub


Private Sub Form_Load()
Dim X As Integer
Dim Y As Integer
    X = (Screen.Width - 11400) / 2
    Y = (Screen.Height - 8004) / 2
    F_PREINS.Move X, Y
End Sub

Private Sub Form_Resize()
DBGrid1.Width = Me.Width - 250

End Sub
Private Sub Form_Unload(Cancel As Integer)
    Call Form_Deactivate
    End
End Sub

Private Sub IVA_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If iva.Text <> "" And Not IsNumeric(iva.Text) Then
        tipo_finmsg = 0
        Msg = "La Quantità non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        iva.SetFocus
    End If
End Sub

Private Sub MANOD_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If MANOD.Text <> "" And Not IsNumeric(MANOD.Text) Then
        tipo_finmsg = 0
        Msg = "Il prezzo non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        MANOD.SetFocus
    End If
   End Sub
   
Private Sub mnuesci_Click()
    Bt_addnota.Visible = True
    BT_parz.Visible = True
    BT_newvoce.Visible = True
    BT_elart.Visible = False
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
    BT_modvoce.Visible = True
    BT_cancvoce.Visible = True
    BT_insvoce.Visible = False
    BT_annvoce.Visible = False
    BT_forn.Visible = True
    F_PREINS.Hide
    F_MENU.Show
End Sub

Private Sub mnuins_Click()
    F_MENU.DATA.Text = Date
    F_MENU.DB_STOPRE.DatabaseName = CurDir & "\SEA.mdb"
    F_MENU.DB_STOPRE.RecordSource = "select * from db_stopre order by numero"
    F_MENU.DB_STOPRE.Refresh
    If Not F_MENU.DB_STOPRE.Recordset.EOF Then
        F_MENU.DB_STOPRE.Recordset.MoveLast
        F_MENU.NORD.Text = DB_STOPRE.Recordset("numero") + 1
    Else
        F_MENU.NORD.Text = 1
    End If
    F_MENU.Prev.Visible = True
    F_MENU.NORD.Visible = True
    F_MENU.dat.Visible = True
    F_MENU.DATA.Visible = True
    F_MENU.num.Visible = True
    F_MENU.V_IVA.Visible = True
    F_MENU.iva.Visible = True
    F_MENU.BtIns.Visible = True
    F_MENU.Btann.Visible = True
    Bt_addnota.Visible = True
    BT_parz.Visible = True
    BT_newvoce.Visible = True
    BT_elart.Visible = False
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
    BT_modvoce.Visible = True
    BT_cancvoce.Visible = True
    BT_insvoce.Visible = False
    BT_annvoce.Visible = False
    BT_forn.Visible = True
    F_PREINS.Hide
    F_MENU.Show
End Sub

Private Sub mnuric_Click()
    Bt_addnota.Visible = True
    BT_parz.Visible = True
    BT_newvoce.Visible = True
    BT_elart.Visible = False
    L9.Visible = False
    L10.Visible = False
    Costo.Visible = False
    Ricarico.Visible = False
    BT_modvoce.Visible = True
    BT_cancvoce.Visible = True
    BT_insvoce.Visible = False
    BT_annvoce.Visible = False
    BT_forn.Visible = True
    F_PREINS.Hide
    F_STOPRE.Show
End Sub

Private Sub nump_Change()
     If nump.Text <> "" Then tutte.Value = 0
End Sub

Private Sub nump_GotFocus()
    If nump.Text <> "" Then tutte.Value = 0
End Sub

Private Sub Prscont_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Prscont.Text <> "" And Not IsNumeric(Prscont.Text) Then
        tipo_finmsg = 0
        Msg = "La Quantità non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        Prscont.SetFocus
    End If
End Sub

Private Sub Prunit_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Prunit.Text <> "" And Not IsNumeric(Prunit.Text) Then
        tipo_finmsg = 0
        Msg = "Il prezzo non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        Prunit.SetFocus
    End If
    If Prunit.Text <> "" And IsNumeric(Prunit.Text) Then
        Sconto.Text = 0
        Prscont.Text = Prunit.Text
        iva.Text = DB_STOPRE.Recordset("IVA")
    End If
End Sub


Private Sub Qty_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Qty.Text <> "" And Not IsNumeric(Qty.Text) Then
        tipo_finmsg = 0
        Msg = "La Quantità non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        Qty.SetFocus
    End If
End Sub


Private Sub r_Click()
F_PREINS.Hide
F_STOPRE.Show
F_STOPRE.Codice_Cliente.Visible = True
'Call F_STOPRE.ordCli_Click

'DB_STOPRE.RecordSource = "select * from db_stopre where codcli=" & F_STOPRE.cliente.Text
 '         DB_STOPRE.Refresh
'            If DB_STOPRE.Recordset.EOF Then
               ' Call messaggio
 '           End If
 'Call riord
 
End Sub

Private Sub Sconto_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
Dim sc As Currency
    If Sconto.Text <> "" And Not IsNumeric(Sconto.Text) Then
        tipo_finmsg = 0
        Msg = "La Quantità non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        Sconto.SetFocus
    Else
    If Sconto.Text <> "" And Prunit <> "" Then
        sc = Prunit.Text * Sconto.Text / 100
        Prscont = Prunit - sc
    End If
    End If
End Sub

Private Sub Timer1_Timer()
Form_Activate
Me.Timer1.Enabled = False
End Sub

Private Sub tutte_Click()
    If tutte.Value = 1 Then
        nump.Text = ""
    End If
End Sub

Private Sub UM_LostFocus()
    Um.Text = UCase(Um.Text)
End Sub

Private Sub Var_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If var.Text <> "" And Not IsNumeric(var.Text) Then
        tipo_finmsg = 0
        Msg = "La Quantità non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Creazione Preventivo") = 1 Then
        End If
        var.SetFocus
    End If
End Sub



QUESTO E IL form delgli aticoli che richiama il database degli articoli

la chiamata dall altro form viene eeguita alla SUB
Sub BT_pins_Click()
la porzione dicodice interessato è quella che fa capo a questa istruzione :
If L_DocP.Visible Then
vedete poi il codice

in fondo poi chiude questo from e apre l'altro se e attiva la mia call il tutto non va a buon fie, se lo disattivo si..
spero mi possiate autare instanto grazie mille



Option Compare Text
Dim flag, flag1 As Boolean
Dim pos_db, cont, pos_ric As Integer
Dim salva As Boolean

Private Sub BT_CANCELLA_Click()
Dim Msg As String
Dim tipo_finmsg As Integer
    If Not DB_ARTICOLI.Recordset.EOF Then
        tipo_finmsg = 4
        Msg = "Conferma la Cancellazione dei dati di" & Chr$(13)
        Msg = Msg & DB_ARTICOLI.Recordset("CASA") & " " & DB_ARTICOLI.Recordset("CODICE") & " ?"
        If MsgBox(Msg, tipo_finmsg, "Cancella Dati Articolo") = 6 Then
            salva = True
            DB_ARTICOLI.Recordset.Delete
            salva = False
            DB_ARTICOLI.Recordset.MoveNext
            If DB_ARTICOLI.Recordset.EOF Then
                DB_ARTICOLI.Refresh
                If Not DB_ARTICOLI.Recordset.EOF Then DB_ARTICOLI.Recordset.MoveLast
            End If
            flag = False
            flag1 = False
            ric_casa.Text = ""
            Ric_cod.Text = ""
            ric_des.Text = ""
            flag = True
            flag1 = True
            DB_ART.Refresh
        End If
    End If
End Sub

Private Sub BT_pann_Click()
    BT_pins.Visible = False
    BT_pann.Visible = False
    BT_REGMOD.Visible = True
    BT_CANCELLA.Visible = True
    mnuart.Enabled = True
    mnumenu.Enabled = True
    F_ARTRMO.Caption = "Ricerca e Modifica dati Articoli Singoli"
    If L_DocP.Visible Then
        F_ARTRMO.Hide
        F_PREINS.Show
    End If
    If L_DocB.Visible Then
        F_ARTRMO.Hide
        F_BOLINS.Show
    End If
    If L_DocF.Visible Then
        F_ARTRMO.Hide
        F_FATINS.Show
    End If
    If L_DocR.Visible Then
        F_ARTRMO.Hide
        F_RICINS.Show
    End If
    L_DocF.Visible = False
    L_DocP.Visible = False
    L_DocB.Visible = False
    L_DocR.Visible = False
End Sub

Private Sub BT_pins_Click()
If Not DB_ARTICOLI.Recordset.EOF Then
    BT_pins.Visible = False
    BT_pann.Visible = False
    BT_REGMOD.Visible = True
    BT_CANCELLA.Visible = True
    mnuart.Enabled = True
    mnumenu.Enabled = True
    F_ARTRMO.Caption = "Ricerca e Modifica dati Articoli Singoli"
    If L_cantieri.Visible Then
    With F_CANTINS
        .DB_CANT.DatabaseName = CurDir & "\SEA.mdb"
        .DB_CANT.RecordSource = "select * from db_cant where CANT = " & .NORD.Text & " and com = " & .com.Text
        .DB_CANT.Refresh
        If Not .DB_CANT.Recordset.EOF Then
            .DB_CANT.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .C0.Visible = True
        .R0.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_CANTINS.Show
    End If
    If L_DocP.Visible Then
    With F_PREINS
        .DB_PREV.DatabaseName = CurDir & "\SEA.mdb"
        .DB_PREV.RecordSource = "select * from db_Prev where numero =" & .NORD.Text '& " order by ID"
        .DB_PREV.Refresh
        If Not .DB_PREV.Recordset.EOF Then
            .DB_PREV.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .L9.Visible = True
        .L10.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_PREINS.Show
    End If
    If L_DocF.Visible Then
    With F_FATINS
        .DB_FATTURE.DatabaseName = CurDir & "\SEA.mdb"
        .DB_FATTURE.RecordSource = "select * from db_fatture where numero = " & .NORD.Text '& "order By ID"
        .DB_FATTURE.Refresh
        If Not .DB_FATTURE.Recordset.EOF Then
            .DB_FATTURE.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .L9.Visible = True
        .L10.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_FATINS.Show
    End If
    If L_DocFele.Visible Then
    With F_FATTELE
        .DB_FATTELE.DatabaseName = CurDir & "\SEA.mdb"
        .DB_FATTELE.RecordSource = "select * from db_fattele where numero = " & .NORD.Text '& "order By ID"
        .DB_FATTELE.Refresh
        If Not .DB_FATTELE.Recordset.EOF Then
            .DB_FATTELE.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .L9.Visible = True
        .L10.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_FATTELE.Show
    End If
    If L_DocB.Visible Then
    With F_BOLINS
        .DB_BOLLE.DatabaseName = CurDir & "\SEA.mdb"
        .DB_BOLLE.RecordSource = "select * from db_BOLLE where numero = " & .NORD.Text '& "order by ID"
        .DB_BOLLE.Refresh
        If Not .DB_BOLLE.Recordset.EOF Then
            .DB_BOLLE.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .L9.Visible = True
        .L10.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_BOLINS.Show
    End If
If L_DocR.Visible Then
    With F_RICINS
        .DB_RICEVUTE.DatabaseName = CurDir & "\SEA.mdb"
        .DB_RICEVUTE.RecordSource = "select * from db_ricevute where numero = " & .NORD.Text
        .DB_RICEVUTE.Refresh
        If Not .DB_RICEVUTE.Recordset.EOF Then
            .DB_RICEVUTE.Recordset.MoveLast
        End If
        .Casa = Casa.Text
        .Codice = Codice.Text
        .Des = Des.Text
        .Um = Um.Text
        .Costo = Prezzo.Text
        .Ricarico = Ricarico.Text
        .Prunit = DB_ARTICOLI.Recordset("LISTINO")
        .Prscont = DB_ARTICOLI.Recordset("LISTINO")
        .iva = iva.Text
        .L9.Visible = True
        .L10.Visible = True
        .Costo.Visible = True
        .Ricarico.Visible = True
        .Qty.Text = 1
        .Sconto.Text = 0
    End With
    F_ARTRMO.Hide
    F_RICINS.Show
    End If
    L_DocF.Visible = False
    L_DocP.Visible = False
    L_DocB.Visible = False
    L_DocR.Visible = False
    L_cantieri.Visible = False
End If
End Sub

Private Sub BT_REGMOD_Click()
Dim Msg As String
Dim tipo_finmsg As Integer
Dim esegui As Boolean
Dim pos As Integer
If Not DB_ARTICOLI.Recordset.EOF Then
    esegui = True
    pos = DB_ARTICOLI.Recordset.AbsolutePosition
    DB_ART.Refresh
    While (Not DB_ART.Recordset.EOF) And esegui
        If DB_ART.Recordset("CASA") = Casa.Text And DB_ART.Recordset("CODICE") = Codice.Text And DB_ART.Recordset.AbsolutePosition <> pos Then
            esegui = False
        Else
            DB_ART.Recordset.MoveNext
        End If
    Wend
    If esegui Then
        salva = True
        DB_ARTICOLI.Recordset.Edit
        If Prezzo.Text <> "" And Ricarico.Text <> "" Then
            If DB_ARTICOLI.Recordset("COSTO") <> Prezzo.Text Or DB_ARTICOLI.Recordset("Ricarico") <> Ricarico.Text Or DB_ARTICOLI.Recordset("iva") <> iva.Text Then
                DB_ARTICOLI.Recordset("data") = Date
            End If
            DB_ARTICOLI.Recordset("LISTINO") = Format((Prezzo.Text + (Prezzo.Text * Ricarico.Text / 100)), F_MENU.FormatoEuro)
            DB_ARTICOLI.Recordset("TOTIVA") = Format(((DB_ARTICOLI.Recordset("LISTINO") * DB_ARTICOLI.Recordset("IVA") / 100)), F_MENU.FormatoEuro)
            DB_ARTICOLI.Recordset("Totale") = Format((DB_ARTICOLI.Recordset("LISTINO") + (DB_ARTICOLI.Recordset("TOTIVA"))), F_MENU.FormatoEuro)
        End If
        DB_ARTICOLI.Recordset.Update
        salva = False
    Else
        tipo_finmsg = 0
        Msg = "Il Codice della casa " & DB_ARTICOLI.Recordset("CASA") & " è già esistente."
        Msg = Msg & " La modifica non può essere registrata"
        If MsgBox(Msg, tipo_finmsg, "Modifica Dati Articoli") = 1 Then
            Casa.SetFocus
        End If
    End If
End If
End Sub

Private Sub BT_RIC_Click()
Dim pos_str, tipo_finmsg As Integer
Dim var_db, Msg As String
Dim trovato As Boolean
If Not DB_ARTICOLI.Recordset.EOF Then
If ric_des.Text <> "" Then
    trovato = False
    pos_db = DB_ARTICOLI.Recordset.AbsolutePosition
    cont = 1
    While cont < 3 And Not trovato
        While (Not DB_ARTICOLI.Recordset.EOF) And Not trovato And cont < 3
            var_db = DB_ARTICOLI.Recordset("DESCRIZIONE")
            pos_str = InStr(var_db, ric_des.Text)
            If pos_str > 0 Then
                trovato = True
            Else
                DB_ARTICOLI.Recordset.MoveNext
                If DB_ARTICOLI.Recordset.AbsolutePosition = pos_db Then
                    cont = 3
                End If
            End If
        Wend
        If DB_ARTICOLI.Recordset.EOF Then
            DB_ARTICOLI.Refresh
            cont = cont + 1
        End If
    Wend
    If Not trovato Then
        tipo_finmsg = 0
        Msg = "ATTENZIONE: La parola non è presente in elenco"
        If MsgBox(Msg, tipo_finmsg, "Ricerca Articolo") = 1 Then
            ric_des.SetFocus
        End If
    Else
        BT_RIC.Visible = False
        succ.Visible = True
        BT_stop.Visible = True
        ric_des.Locked = True
    End If
End If
End If
End Sub

Private Sub BT_STOP_Click()
    BT_stop.Visible = False
    succ.Visible = False
    BT_RIC.Visible = True
    ric_des.Locked = False
End Sub

Private Sub carsca_Click()
    F_ARTRMO.Hide
    F_ARTINV.Show
End Sub

Private Sub Casa_LostFocus()
    Casa.Text = UCase(Casa.Text)
End Sub
Private Sub codice_LostFocus()
    Codice.Text = UCase(Codice.Text)
End Sub
Private Sub DB_ARTICOLI_Validate(Action As Integer, Save As Integer)
If salva = False Then Save = False
End Sub

Private Sub Form_Activate()
Dim sdir As String
    sdir = CurDir
    DB_ARTICOLI.DatabaseName = sdir & "\sea.mdb"
    DB_ARTICOLI.RecordSource = "select * from db_articoli order by casa,codice"
    DB_ARTICOLI.Refresh
    DB_ART.DatabaseName = sdir & "\sea.mdb"
    DB_ART.RecordSource = "select * from db_articoli order by casa,codice"
    DB_ART.Refresh
     
     
    DBGrid1.Columns(0).Width = 500
    DBGrid1.Columns(0).Alignment = 0
    DBGrid1.Columns(1).Width = 920
    DBGrid1.Columns(1).Alignment = 0
    DBGrid1.Columns(2).Width = 3500
    DBGrid1.Columns(2).Alignment = 0
    DBGrid1.Columns(3).Width = 380
    DBGrid1.Columns(3).Alignment = 2
    DBGrid1.Columns(4).Width = 870
    DBGrid1.Columns(4).Alignment = 0
    DBGrid1.Columns(5).Width = 750
    DBGrid1.Columns(5).Alignment = 0
    DBGrid1.Columns(6).Width = 750
    DBGrid1.Columns(6).Alignment = 0
    DBGrid1.Columns(7).Width = 750
    DBGrid1.Columns(7).Alignment = 0
    DBGrid1.Columns(8).Width = 750
    DBGrid1.Columns(8).Alignment = 0
    DBGrid1.Columns(9).Width = 700
    DBGrid1.Columns(9).Alignment = 0
    DBGrid1.Columns(10).Width = 750
    DBGrid1.Columns(10).Alignment = 2
    DBGrid1.Columns(11).Width = 750
    DBGrid1.Columns(11).Alignment = 0
    DBGrid1.Columns(12).Width = 750
    DBGrid1.Columns(12).Alignment = 0
    DBGrid1.Columns(13).Width = 750
    DBGrid1.Columns(13).Alignment = 0
    DBGrid1.Columns(14).Width = 1000
    DBGrid1.Columns(14).Alignment = 0
    
    DBGrid1.SetFocus
    salva = False
    flag = False
    flag1 = True
    ric_casa = ""
    Ric_cod = ""
    ric_des = ""
    flag = True
    flag1 = True
    BT_stop.Visible = False
    succ.Visible = False
    BT_RIC.Visible = True
    ric_des.Locked = False
End Sub

Private Sub Form_Load()
Dim X As Integer
Dim Y As Integer
    X = (Screen.Width - 11400) / 2
    Y = (Screen.Height - 8004) / 2
    F_ARTRMO.Move X, Y
End Sub

Private Sub Form_Resize()
DBGrid1.Width = Me.Width - 250

End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

Private Sub Giacenza_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Giacenza.Text <> "" And Not IsNumeric(Giacenza.Text) Then
        tipo_finmsg = 0
        Msg = "La giacenza non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Inserimento Dati Articoli") = 1 Then
        End If
        Giacenza.SetFocus
    End If
End Sub

Private Sub IVA_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If iva.Text <> "" And Not IsNumeric(iva.Text) Then
        tipo_finmsg = 0
        Msg = "L'IVA non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Inserimento Dati Articoli") = 1 Then
        End If
        iva.SetFocus
    End If
End Sub

Private Sub list_Click()
    F_ARTRMO.Hide
    F_ARTAGG.Show
End Sub

Private Sub mnuesci_Click()
    F_ARTRMO.Hide
    F_MENU.Show
End Sub

Private Sub mnuins_Click()
    F_ARTRMO.Hide
    F_ARTINS.Show
End Sub

Private Sub modtut_Click()
    F_ARTRMO.Hide
    F_ARTMTU.Show
End Sub

Private Sub Prezzo_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Prezzo.Text <> "" And Not IsNumeric(Prezzo.Text) Then
        tipo_finmsg = 0
        Msg = "Il prezzo non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Inserimento Dati Articoli") = 1 Then
        End If
        Prezzo.SetFocus
    End If
End Sub

Private Sub ric_casa_Change()
Dim trovato As Boolean
Dim var_db, var_ins As String
Dim lung As Integer
If flag1 Then
    flag = False
    Ric_cod.Text = ""
    flag = True
    DB_ARTICOLI.Refresh
    var_ins = ric_casa.Text
    lung = Len(var_ins)
    While (Not DB_ARTICOLI.Recordset.EOF) And Not trovato
        var_db = DB_ARTICOLI.Recordset("CASA")
        var_db = Left(var_db, lung)
        If var_db = var_ins Then
            trovato = True
            ric_casa.SetFocus
        Else
            DB_ARTICOLI.Recordset.MoveNext
        End If
    Wend
    If DB_ARTICOLI.Recordset.EOF Then
         DB_ARTICOLI.Refresh
         ric_casa.SetFocus
    End If
    pos_ric = DB_ARTICOLI.Recordset.AbsolutePosition
End If
End Sub

Private Sub ric_cod_Change()
Dim trovato As Boolean
Dim var_db, var_ins As String
Dim lung, pos, I As Integer
If flag Then
    var_ins = Ric_cod.Text
    If ric_casa = "" Then
        DB_ARTICOLI.Refresh
        pos_ric = DB_ARTICOLI.Recordset.AbsolutePosition
    End If
    lung = Len(var_ins)
    While (Not DB_ARTICOLI.Recordset.EOF) And Not trovato
        If Ric_cod = "" Then
            DB_ARTICOLI.Refresh
            For I = 1 To pos_ric
                DB_ARTICOLI.Recordset.MoveNext
            Next I
            Ric_cod.SetFocus
        End If
        var_db = DB_ARTICOLI.Recordset("CODICE")
        var_db = Left(var_db, lung)
        If var_db = var_ins Then
            trovato = True
            Ric_cod.SetFocus
        Else
            DB_ARTICOLI.Recordset.MoveNext
        End If
    Wend
    If DB_ARTICOLI.Recordset.EOF Then
         If ric_casa = "" Then
            DB_ARTICOLI.Refresh
            Ric_cod.SetFocus
         Else
            DB_ARTICOLI.Refresh
            For I = 1 To pos_ric
                DB_ARTICOLI.Recordset.MoveNext
            Next I
            Ric_cod.SetFocus
         End If
    End If
End If
End Sub

Private Sub Ricarico_LostFocus()
Dim tipo_finmsg As String
Dim Msg As String
    If Ricarico.Text <> "" And Not IsNumeric(Ricarico.Text) Then
        tipo_finmsg = 0
        Msg = "Il ricarico non è in formato numerico"
        If MsgBox(Msg, tipo_finmsg, "Inserimento Dati Articoli") = 1 Then
        End If
        Ricarico.SetFocus
    End If
End Sub

Private Sub sta_Click()
    F_ARTRMO.Hide
    F_ARTSTA.Show
End Sub

Private Sub succ_Click()
Dim pos_str, tipo_finmsg, I As Integer
Dim var_db, Msg As String
Dim trovato As Boolean
    trovato = False
    If Not (DB_ARTICOLI.Recordset.AbsolutePosition = 1 And cont = 2) Then
        DB_ARTICOLI.Recordset.MoveNext
    End If
    While cont < 3 And Not trovato
        While (Not DB_ARTICOLI.Recordset.EOF) And Not trovato And cont < 3
            If DB_ARTICOLI.Recordset.AbsolutePosition >= pos_db And cont = 2 Then
                cont = 3
            End If
            var_db = DB_ARTICOLI.Recordset("DESCRIZIONE")
            pos_str = InStr(var_db, ric_des.Text)
            If pos_str > 0 Then
                trovato = True
            Else
                DB_ARTICOLI.Recordset.MoveNext
            End If
        Wend
        If DB_ARTICOLI.Recordset.EOF Then
            DB_ARTICOLI.Refresh
            cont = cont + 1
        End If
    Wend
    If cont >= 3 Then
        tipo_finmsg = 0
        Msg = "ATTENZIONE: Tutte le occorrenze della parola sono state trovate"
        If MsgBox(Msg, tipo_finmsg, "Ricerca Articolo") = 1 Then
            ric_des.SetFocus
            BT_stop.Visible = False
            succ.Visible = False
            BT_RIC.Visible = True
            ric_des.Locked = False
        End If
    End If
End Sub


ringrazio tutti per la cortesia e la disponibilità

in fede sergio t

5 Risposte

  • Re: Probblema con una chiamata call in un form

    Problema ... una b basta ...

    Comunque con quello che hai scritto è quasi impossibile rispondere. Io non ho capito quasi nulla.

    Quale linea di codice presenta la descrizione dell'articolo? Ce la puoi indicare?
  • Re: Probblema con una chiamata call in un form

    Scusate, è stato un errore di battitura
    non capisco, ho fatto leggere quello che ho scritto a diverse persone e ttutti mi hanno detto che si capisce benisimo quello che dico...comunque.....

    la linea di codcie che copia l'articolo te la copio qui perchè non c'è una linea di riferimento
    
    
    Private Sub BT_pann_Click()
        BT_pins.Visible = False
        BT_pann.Visible = False
        BT_REGMOD.Visible = True
        BT_CANCELLA.Visible = True
        mnuart.Enabled = True
        mnumenu.Enabled = True
        F_ARTRMO.Caption = "Ricerca e Modifica dati Articoli Singoli"
    
      If L_DocP.Visible Then
        With F_PREINS
            .DB_PREV.DatabaseName = CurDir & "\SEA.mdb"
            .DB_PREV.RecordSource = "select * from db_Prev where numero =" & .NORD.Text '& " order by ID"
            .DB_PREV.Refresh
            If Not .DB_PREV.Recordset.EOF Then
                .DB_PREV.Recordset.MoveLast
            End If
            .Casa = Casa.Text
            .Codice = Codice.Text
            .Des = Des.Text
            .Um = Um.Text
            .Costo = Prezzo.Text
            .Ricarico = Ricarico.Text
            .Prunit = DB_ARTICOLI.Recordset("LISTINO")
            .Prscont = DB_ARTICOLI.Recordset("LISTINO")
            .iva = iva.Text
            .L9.Visible = True
            .L10.Visible = True
            .Costo.Visible = True
            .Ricarico.Visible = True
            .Qty.Text = 1
            .Sconto.Text = 0
        End With
        F_ARTRMO.Hide
        F_PREINS.Show
        End If
        
        
    grazie per le risposte e gli aiuti che mi vorrete dare
  • Re: Probblema con una chiamata call in un form

    Forse non ti rendi conto che è quasi impossibile darti un aiuto senza provare il codice su vb6 in prima persona.

    Il codice che hai mostrato nell'ultimo post fa una operazione su un recordset (una ricerca) e poi copia dei dari da alcune textbox in alcune variabili. Ma non vedo nulla che faccia riferimento alla Sub Calcoli, quindi?

    Avevi detto che mettendo la Call non funzionava e togliendola tornava a funzionare. Vuoi mostrare questa call specifica nel tuo codice o no?
    Non la sub ma la call calcoli che funziona/non funziona all'interno del tuo programma.
  • Re: Probblema con una chiamata call in un form

    Salve, a tutti,

    vi informo che ho risolto,
    grazie
  • Re: Probblema con una chiamata call in un form

    Ovvero?
Devi accedere o registrarti per scrivere nel forum
5 risposte