Newsgroup: it.comp.appl.access
Titolo: leggere l'id corrente

ciao a tutti
 
ho questa situazione:
Dim Rs As DAO.Recordset
Set Rs = Forms!Mia_Fattura.RecordsetClone
 
della "Forms!Mia_Fattura" vorrei leggere l'IdFattura corrente
come devo fare?
grazie


Set Rs = Forms!Mia_Fattura.Recordset ?
x=rs!IdFattura ?
 
oppure
x=Me!idFattura ? (se IdFattura e' sul form e form e' il form corrente)
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 
grazie Alessandro
ho utilizzato
Set Rs = Forms!Mia_Fattura.Recordset
però ho errore quando azzero rs
con Rs.Close: Set Rs = Nothing
Perchè?


 
L'oggetto rs e' di fatto il recordset di Mia_fattura. Se fai rs.close 
equivale a Mia_fattura.Recordset.close cosa non consigliabile
Lascia il solo set rs = nothing che elimina il "puntatore" all'oggetto 
origine (oppure non mettere nulla perche' alla uscita della funzione, 
essendo rs una variabile locale, viene comunque distrutta)
 
comunque: x=Forms!MiaFattura.form!idFattura
e' il modo migliore non devi neanche definire il rs.



grazie Alessandro,
non ho messo nulla, anche 
se funziona in entrambi i casi suggeriti.


ciao Alessandro
 
ho ancora un problema sul medesimo codice nel punto sotto segnalato
 
On Error GoTo gestErrori
 
    Dim Rs As DAO.Recordset, Rs1 As DAO.Recordset, Rs2 As DAO.Recordset
    Set Rs = Forms!Mia_Fattura.Recordset
    Set Rs1 = Me.Recordset
     Set Rs2 = Me.Parent!DettaglioFattura.Form.Recordset
 
        Me.Parent![DettaglioFattura].SetFocus
 
        Rs1.MoveFirst
 
        Do Until Rs1.EOF
 
        If (Rs!IdCliente <> 0 And _
            Rs!IdCliente <> Nz(Rs1!IdCliente, 0)) Or _
                (Rs!IdFornitore <> 0 And _
                    Rs!IdFornitore <> Nz(Rs1!IdFornitore, 0)) Or _
                        (Rs!Idtrasp <> 0 And _
                            Rs!Idtrasp <> Nz(Rs1!Idtrasp, 0)) Then
 
            MsgBox "Stai cercando d'inserire Carichi non corrispondenti!!!", vbExclamation, "Attenzione!!"
            exit sub
 
in questo punto, non mi annulla l'operazione ma mi accoda i record ugualmente!!!!!
 
        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!!!"
 
      '  Set Rs = Nothing
      '  Set Rs1 = Nothing
      '  Set Rs2 = Nothing
 
Esci:
    Exit Sub
 
gestErrori:
    Beep
    If Err.Number = 3021 Then GoTo noRecord
    MsgBox Err.Number & " - " & Err.Description
    GoTo Esci

Il 15/06/2014 14:15, 
francodel...@gmail.com
 ha scritto:
[cut]

E perche' dovrebbe annullarti l'operazione?
Se per operazione intendi tutti i records fin li aggiunti.
E' chiaro che non lo fa.
Per fare quello che, immagino, chiedi hai bisogno di gestire una 
transazione.
 
Comunque questo e' un problema diverso da quello iniziale.
Dovresti aprire un altro 3d. Questi i motivi principali:
1) Potrei non essere in grado di risolvere il problema
2) A me succede che se vedo un 3d in cui le risposte sono date da 
"certi" partecipanti, a meno che il problema non sia particolarmente 
invitante, quei 3d non li guardo perche' sono certo della loro soluzione
3) Un oggetto diverso puo' facilitare eventuali ricerche a persone che 
hanno il tuo stesso problema.
 
Ultima considerazione.
Probabilmente se fossi io a dover scrivere quel software mi porrei nella 
condizione di non fare quella if. Nel senso che il controllo, 
riprobabilmente, lo avrei fatti a monte.
Cosi' come l'errore 3021 che dovrebbe essere una condizione 
controllabile (una mezza idea del perche' avviene la ho)
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
 
 


Grazie Alessandro