Newsgroup: it.comp.appl.access
Titolo: problema con recordset

ciao a tutti
 
su click di un pulsante in sottomaschera
ho inserito questo codice:
        Dim Rs As DAO.Recordset
        Set Rs = Forms!MiaForm.RecordsetClone
 
        MsgBox Rs!Id 
 
il problema è che non mi da l'id corrente, ma l'id del primo record,
mentre in un'altra simile mi mostra quello corrente.
Perché?
grazie


è corretto fare in questo modo?
 
 
Rs.FindFirst "Id = " &  Forms!MiaForm!Id
 

Non capisco il clonare il record set . Potresti dirci la necessita ?

 Non capisco il clonare il record set . Potresti dirci la necessita ?
 
ciao pfm e grazie
 
ecco l'intero codice per cercare di spiegarmi meglio;
se non inserisco:
        Rs.FindFirst "IdFattura = " & Forms!M_Fattura!IdFattura
l'IdFattura che mi vene accodato (con Rs2!IdFattura = Rs!IdFattura)
non corrisponde all'idfattura corrente ma al primo IdFattura 
e di conseguenza vale anche per Rs!IdCliente,Rs!IdFornitore e Rs!IdTrasp
 
'************inizio************************* 
On Error GoTo gestErrori
 
 
    If IsNull(Forms![M_Fattura]!NomeCliFoTrasp) Or _
        IsNull(Forms![M_Fattura]!nMiaFattura) Or _
            IsNull(Forms![M_Fattura]!DataMiaFattura) Then
 
        If IsNull(Forms![M_Fattura]!NomeCliFoTrasp) Then
            MsgBox "la Combo è vuota!!!"
        Else
            If IsNull(Forms![M_Fattura]!nMiaFattura) Or _
                IsNull(Forms![M_Fattura]!DataMiaFattura) Then
                If IsNull(Forms![M_Fattura]!nMiaFattura) Then
                    Forms![M_Fattura]!nMiaFattura.SetFocus
                    MsgBox "Devi inserire il numero della Fattura!!!"
                Else
                    Forms![M_Fattura]!DataMiaFattura.SetFocus
                    MsgBox "Devi inserire la data nella Fattura!!!"
                End If
            End If
        End If
    Else
 
        Dim Rs As DAO.Recordset, Rs1 As DAO.Recordset, Rs2 As DAO.Recordset
        Set Rs = Forms!M_Fattura.RecordsetClone
        Set Rs1 = Me.RecordsetClone
        Set Rs2 = Me.Parent!DettaglioFattura.Form.RecordsetClone
        Dim blnMissing As Boolean
 
        Rs.FindFirst "IdFattura = " & Forms!M_Fattura!IdFattura
 
        Me.Parent![DettaglioFattura].SetFocus
 
        Rs1.MoveFirst
 
        Do Until Rs1.EOF
 
        If Not Rs!IdCliente And _
            Rs!IdCliente <> Rs1!IdCliente Then
            blnMissing = True
 
        ElseIf Not Rs!IdFornitore And _
            Rs!IdFornitore <> Rs1!IdFornitore Then
            blnMissing = True
 
        ElseIf Not Rs!IdTrasp And _
            Rs!IdTrasp <> Rs1!IdTrasp Then
            blnMissing = True
 
        End If
 
        If blnMissing Then
            MsgBox "Stai cercando d'inserire dati non corrispondenti!!!", vbExclamation, "Attenzione!!"
            Me.Requery
            GoTo Fine
        End If
 
       Rs2.AddNew
 
        Rs2!IdFattura = Rs!IdFattura
        Rs2!IDCarico = Rs1!IDCarico
        Rs2!nFatturaFo = Rs1!nFatturaFo
        Rs2!DataFatturaFo = Rs1!DataFatturaFo
        Rs2!Importo = Rs1!Importo
 
        Rs2.Update
 
        Rs1.MoveNext
 
        Loop
 
        Me.Requery
 
noRecord:
        MsgBox "Non ci sono più record da aggiungere!!!"
Fine:
        Rs.Close: Set Rs = Nothing
        Rs1.Close: Set Rs1 = Nothing
        Rs2.Close: Set Rs2 = Nothing
    End If
 
    Forms!M_Fattura!CboFornitore.Requery
    Forms!M_Fattura!CboTrasp.Requery
 
Esci:
    Exit Sub
 
gestErrori:
    If Err.Number = 3021 Then GoTo noRecord
    MsgBox Err.Number & " - " & Err.Description
    GoTo Esci
'***************fine**********************