Newsgroup: it.comp.lang.visual-basic
Titolo: AZIONE ELIMINATA DA UN OGGETTO ASSOCIATO

ciao a tutti!
non capisco che è sto errore!!!!!!! :-(((
in pratica ho una form per l'inserimento lavori e faccio una pikkola
funzione per il ricalcolo delle date da gestire ovvero Data Lavoro (la data
effettiva in cui è stato eseguito il lavoro) e Data Previsto (la data
prevista per il prossimo lavoro).Il ricalcolo si basa su il tipo di
periodicità inserita da una combo,fra S (semestrale), A (annuale) e T
(trimestrale).
Rikiamo la funzione ad ogni Conferma della form stessa.
Il problema è che funziona in Add ma ad ogni Edit mi dà qs. errore e non so
nemmeno cosa sia.Ho visto che cmq la funzione restituisce "" ,ma perchè fa
sto casino con l'update?
Allego il codice.Utilizzo vb6 con Access.
Grazie a tutti.
Deborah
Private Sub cmdConferma_Click()
    Dim iStato As Integer, iCod As Integer
    Dim rsClLav As Recordset
    Dim sCodMacchina As String
    Dim sDataPrev As String
    With dcLavori.Recordset
        iStato = .EditMode
        'se stavo editando
        If iStato <> dbEditNone Then
           ' QUI!!!!!!!!!!!!!!
            sDataPrev = Calcola_Data_Prev(csiDtLavoro.Text,
csiDtPrevLavoro.Text, cmbTipoPer.ListIndex)
            csiDtPrevLavoro.Text = sDataPrev
            ' Imposto CodMacchina,Descri e Cliente di rif.
            sCodMacchina = frmTabMacCli.dbgMacchineCli.Columns(0).Value & ""
            ![CodMacchina] = sCodMacchina
            dcMacchine.Recordset.FindFirst "[CodMacchina]='" & sCodMacchina
& "'"
            If dcMacchine.Recordset.NoMatch = False Then
                ![DescriMacchina] = dcMacchine.Recordset![DescriMacchina] &
""
            End If
            ![CodCli] = frmGestLavoraz.dcClienti.Recordset![CodCli] & ""
            'se sono in modifica
            'aggiorna e trova corrispondenza cod
            .Update
            .Bookmark = .LastModified
            'salvo il codice perche' non mi trova
            'corrispondenza nella griglia
            iCod = ![IdLavoro]
            With frmLavori.dcLavori
                .Refresh
                .Recordset.FindFirst "[IdLavoro]=" &
dcLavori.Recordset![IdLavoro]
            End With
        End If
        Unload Me
    End With
    Set rsClLav = Nothing
End Sub
Public Function Calcola_Data_Prev(sDataLav As String, sDataPrev As String,
iTipoPer As Integer) As String
    Dim iAnno As Integer, iMese As Integer, iDay As Integer
    Dim dtDataLav As Date, dtDataPrevNew As Date, dtDataPrev As Date
    Dim sDataPrevNew As String
    dtDataLav = CDate(sDataLav)
    dtDataPrev = CDate(sDataPrev)
    iAnno = Year(dtDataLav)
    iMese = Month(dtDataLav)
    iDay = Day(dtDataLav)
    Select Case iTipoPer
        Case "0"  'S -->semestrale
            ' Imposto di default una data > di 6 mesi
            iMese = iMese + 6
            If iMese > 12 Then
                iMese = iMese - 12
            End If
        Case "1" 'T -->trimestrale
            ' Imposto di default una data > di 3 mesi
            iMese = iMese + 3
            If iMese > 12 Then
                iMese = iMese - 12
            End If
        Case "2" 'A -->annuale
            ' Imposto di default una data > di 1 anno
            iAnno = iAnno + 1
     End Select
    ' Ricompongo la nuova data
    dtDataPrevNew = DateSerial(iAnno, iMese, iDay)
    sDataPrevNew = Format(dtDataPrevNew, "dd/mm/yy")
    ' Controllo che la data prev. che ha inserito va bene
    If sDataPrev < sDataPrevNew Then
        ' la Data Prev. che ha inserito è <
        Calcola_Data_Prev = sDataPrevNew
    Else
        ' la Data Prev. che ha inserito è >=,quindi ok...
    End If
End Function

 non capisco che è sto errore!!!!!!! :-(((
Ciao.
A parte alcune parole straniere che non capisco (pikkola, rikiamo...),
quell'errore è dato (generalmente) dagli oggetti associati come le textbox.
(e già qui si può intuire che è meglio tenerli slegati).
Ad es. modifichi un dato in una textbox mentre *non* sei in edit (a mano o
via codice), fai edit+update e va in errore.
Insomma hai quest'errore in condizioni strane e pressochè subdole.
Ciao