Newsgroup: it.comp.appl.access
Titolo: LUNGO Strano problema con requery casella combinata

Mi sono accorto - cosa assurda - di avere un problema con il requery
della
casella combinata NumeroIntervento. Praticamente l'ultimo valore
visualizzato
influenza anche quello degli altri record.
E pensare che prima tutto funzionava a dovere.
Non riesco a capire.
Questo è il codice che sto provando ora: ho provato a disabilitare il
controllo
nel caso il valore massimo per quell'utente fosse a zero per impedire
che influenzasse
tutti gli altri ma non serve a niente.
Struttura:
sottomaschera suSchedaPrimoContatto
|
|-->NumeroIntervento (casella combinata)
|-->cmdEliminaIntervento
|-->cmdAggiungiIntervento
CODICE SU EVENTO CURRENT() della maschera che ospita il controllo
If DCount("*", "tblUtenti") > 0 Then
    If (Nz(DMax("NumeroIntervento", "tblInterventi", "idUtente = " &
Forms!frmSchedaPrimoContatto!id)) = 0) Then
        Me!NumeroIntervento = 0
        Me!NumeroIntervento.Requery
        NumeroIntervento.Enabled = False
        cmdEliminaIntervento.Enabled = False
    Else
        NumeroIntervento.Enabled = True
        cmdEliminaIntervento.Enabled = True
        Me!NumeroIntervento = Nz(DMax("NumeroIntervento",
"tblInterventi", "idUtente = " & Forms!frmSchedaPrimoContatto!id))
        Me!NumeroIntervento.Requery
    End If
End If
CODICE SU EVENTO CLICK() di cmdAggiungiIntervento
Private Sub cmdAggiungiIntervento_Click()
' Routine di Walter_Il_Mago
Dim progr As Variant
Dim rif As Variant
Dim data As Variant
Dim Operatore As String
Dim rec As Recordset
NumeroIntervento.Enabled = True
cmdEliminaIntervento.Enabled = True
rif = [Forms]![frmSchedaPrimoContatto]![id]
If IsNull(rif) Then
    MsgBox "Nessun Utente selezionato!", vbCritical, "ATTENZIONE"
    Exit Sub
End If
progr = DMax("Numero", "tblInterventi", "idUtente = " & rif)
If IsNull(progr) Then
    progr = 1
  Else
    progr = progr + 1
End If
insdata:
data = InputBox("Indicare la data dell'intervento:", "Inserimento Nuovo
Intervento", Date)
If Not IsDate(data) Then
    If MsgBox("Vuoi annullare l'inserimento?", vbOKCancel,
"ATTENZIONE") = vbOK Then
        Exit Sub
    Else
        MsgBox "Inserire una data valida!", vbExclamation, "ATTENZIONE"
        GoTo insdata
    End If
End If
' Aggiunta mia
insoperatore:
Operatore = InputBox("Inserire il nome dell'operatore che ha effettuato
l'intervento:", "Inserimento operatore", Operatore)
If IsNull(Operatore) Then
    MsgBox "Inserire un nome valido", vbExclamation, "ATTENZIONE"
    GoTo insoperatore
End If
Set rec = CurrentDb.OpenRecordset("tblInterventi")
    rec.AddNew
    rec!idUtente = rif
    rec!numero = progr
    rec!data = data
    rec!Operatore = Operatore
    rec.Update
rec.Close
MsgBox "Inserito nuovo intervento N. " & progr, vbInformation,
"ATTENZIONE"
Me!NumeroIntervento.Requery
Me!NumeroIntervento = progr
End Sub
CODICE SU EVENTO CLICK() di cmdEliminaIntervento
Private Sub cmdEliminaIntervento_Click()
Dim numeroX As Variant
Dim rif As Variant
Dim res As Variant
Dim num_max As Variant
numeroX = Me!NumeroIntervento
rif = [Forms]![frmSchedaPrimoContatto]![id]
If IsNull(numeroX) Or (numeroX = 0) Then
    MsgBox "Nessun intervento per l'utente corrente.", vbExclamation,
"Eliminazione intervento"
    Exit Sub
  Else
    res = MsgBox("Sei sicuro di voler eliminare l'intervento n. " &
numeroX & " del " & Me!NumeroIntervento.Column(1) & "?", vbExclamation
+ vbYesNo, "Eliminazione intervento")
    If res = 6 Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE * FROM tblInterventi WHERE idUtente = " &
rif & " AND Numero = " & numeroX
        If DCount("*", "tblUtenti") > 0 Then
            num_max = Nz(DMax("Numero", "tblInterventi", "idUtente = "
& Forms!frmSchedaPrimoContatto!id))
            If num_max > numeroX Then
                DoCmd.RunSQL "UPDATE tblInterventi SET Numero = Numero
- 1 WHERE idUtente = " & rif & " AND Numero > " & numeroX
            End If
            Me!NumeroIntervento = Nz(DMax("Numero", "tblInterventi",
"idUtente = " & Forms!frmSchedaPrimoContatto!id))
            Me!NumeroIntervento.Requery
        End If
        MsgBox "Intervento eliminato.", vbInformation, "Eliminazione
intervento"
    End If
End If
End Sub
Cosa devo modificare, e come?
Grazie anticipatamente.
Giulio.

Ciao Giulio,
Apri il tuo db provetecniche;
apri la form tblUtenti,
aggiungi un nuovo record/utente,
doppio click sulla combo cctelefono:
Se vai ad aggiungere col click il numero di telefono, segnala errore nessun 
record correlato.
Ho provato ad invertire la relazione e funziona, controlla.
Ciao Napoleone

Che relazione hai invertito?
Me lo rimandi corretto così stasera lo controllo?
Grazie :)

Certo!
Napoleone