Risposto il codice scritto in modo più leggibile...
codice:
--
MODIFICA DEL NOME DEL CLIENTE E DEL TELEFONO 
(in grassetto la risultanza del debug) 
(per xxx,yyy,zzz vedere la funzione VerificaOrdine)   

If ClienteOrdineOld <> "" Then 
  '-- chiama la funzione che controlla se sto creando un ordine doppio   
  Call VerificaOrdine(CheckOrdine) 
  '-- Se la variabile 'CheckOrdine' è = 1 allora modifica l'ordine con i nuovi dati   
  If CheckOrdine = 1 Then 
    Debug.Print ("UPDATE TabellaRelazioni SET Nome = '" & Form38.Text3.Text & "' and Telefono = '" & Form38.Text1.Text & "' WHERE Nome = '" & yyy & "' And Telefono = '" & xxx & "' And Titolo = '" & zzz & "'") 

(UPDATE TabellaRelazioni SET Nome = 'UGO' and   Telefono = '55555' WHERE Nome = 'BALANZONE' And   Telefono = '999999' And Titolo = 'CORRIERE DELLA SERA')   

    cn.Execute ("UPDATE TabellaRelazioni SET Nome = '" & Form38.Text3.Text & "' and Telefono = '" & Form38.Text1.Text & "' WHERE Nome = '" & yyy & "' And Telefono = '" & xxx & "' And Titolo = '" & zzz & "'") 
    MsgBox "L'ordine è stato modificato", , "" 
'-- azzero la variabile   
    ClienteOrdineOld = "" 
Else 
    '-- altrimenti esce senza fare nulla (ed avendo già segnalato che l'ordine esiste già)  
    Exit Function 
End If 
End if 

---- 

FUNZIONE VerificaOrdine 
(in grassetto la risultanza del debug)  

Function VerificaOrdine(CheckOrdine As Integer) 

'-- dichiaro le connessioni   
Dim sSQL As String 
Dim rsOrdine As New ADODB.Recordset 
'-- assegno i valori di cliente (text3) e titolo (text2) e raddoppio gli apostrofi alle variabili globali   Form38.Text3.Text = Replac(Form38.Text3.Text, "'", "''") 
Form38.Text2.Text = Replace(Form38.Text2.Text, "'", "''") 
'-- faccio la select estraendo i dati dell’ordine esistente e che voglio modificare cioè: 
‘-- nome del cliente (yyy), telefono (xxx) e giornale (zzz)   
Debug.Print "Select * from TabellaRelazioni Where Nome = '" & yyy & "' And Telefono = '" & xxx & "' And Titolo = '" & zzz & "'" 

(Select * from TabellaRelazioni Where Nome = 'BALANZONE' And Telefono = '999999' And Titolo = 'CORRIERE DELLA SERA')   

sSQL = "Select * from TabellaRelazioni Where Nome = '" & yyy & "' And Telefono = '" & xxx & "' And Titolo = '" & zzz & "'" 

'-- apro la connessione   
rsOrdine.Open sSQL, Adodc1.ConnectionString 
'-- se non è alla fine del recordset (cioè esiste l'ordine che si sta confermando) allora imposto ChecklOrdine = 1   
If Not rsOrdine.EOF Then 
'-- Dichiaro la connessione   
Dim cn As ADODB.Connection 
'-- Imposto la connessione   
Set cn = New ADODB.Connection 
'-- Punto il database Access   
   cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\PGMVB6\clienti.mdb;Persist Security Info=False" 
   '-- Imposto ad 1 la variabile 'CheckOrdine' che significa che l'ordine è nuovo e si può salvare   
   CheckOrdine = 1 
Else 
   '-- altirmenti imposto a 0 la variabile 'CheckOrdine' che significa che l'ordine non può salvare e lo segnala all'utente      MsgBox "Uno stesso ordine è già stato registrato" + Chr(10) + "Non è possibile registrare un ordine identico", , "" 
   rsOrdine.Close 
   CheckOrdine = 0 
End If 

End Function