codice:
Private Sub Form_Load() 
   Call connetti 
   Rs.Open "SELECT * FROM prodotti " ' apre il recordset leggendo tutti i campi dalla tabella 
   ' customer 
   Set DataGrid1.DataSource = Rs 'riempie la griglia coi dati del recorset 
   Set List1.DataSource = Rs 
   Do Until Rs.EOF 
      List1.AddItem Rs("nomeprodotto") 
      Combo1.AddItem Rs("nomeprodotto") 
      Rs.MoveNext 
   Loop
seguendo il codice che hai postato si vede che il DataGrid Riempie le sue righe sfruttando il contenuto di un recordset per cui devi aggiungere una riga al recordset e richiamare il metodo Requery (o Refresh non ricordo bene quale dei due funziona) però si vede anche che con lo stesso identico recordset riempi anche i combo e le list per cui se inserisci una nuova riga nel recordset a seconda del valore della combo o lista avrai sicuro dati duplicati.