Salve ho un problema, che non mi era mai capitato fino adesso:

Ho un Datagrid che contiene vari dati presi da una tabella MySQL
La aggiorno, cancello righe e modifico righe senza nessun problema, ma appena vado ad inserire nuove righe, me le aggiunge in maniera anomala.
Vorrei aggiungere una riga sempre alla fine del datagrid, ma ogni due o tre inserimenti, la nuova riga viene creata in testa al datagrid e non in fondo.
Il seguente codice viene eseguito ad ogni click su un CommandButton.
Questo è il codice:

codice:
 'Creo la stringa di connessione
     Stringa = .......................
    
  'Imposto le variabili cs e rs come istanze degli oggetti Connection e Recordset'
    Set cs = New ADODB.Connection
    Set rs = New ADODB.Recordset
  
    cs.ConnectionTimeout = 20
    
    'Apro la connessione
    cs.Open Stringa
 
    rs.Open "SELECT * FROM "nome_tabella"", cs, adOpenKeyset, adLockOptimistic
    
    'Aggiungo un nuovo record ed aggiorno la tabella
    If (rs.Supports(adAddNew) And Me.LstControllo.List(0) = 0) Then
            rs.AddNew
                rs.Fields("Tipo_analisi") = Me.TxtAnalisi.Text
                rs.Fields("Nome_Procedura") = Me.TxtProcedura.Text
                rs.Fields("Data_Ini") = DateFinalIni
                rs.Fields("Data_Fin") = DateFinalFin
                rs.Fields("Flag1") = Click1
                rs.Fields("Flag2") = Click2
            rs.Update
            Set frmPrincipale.DataGrid1.DataSource = rs
            frmPrincipale.DataGrid1.Refresh
            MsgBox "Inserimento effettuato con successo.", vbInformation, "OPERAZIONE EFFETTUATA"
    Else
        rs.CancelUpdate
    End If
    LstControllo.Clear
Dove sbaglio???
Esiste un modo per indicargli qual'è l'ultima riga del datagrid e quindi aggiungerne una sempre dopo questa???

Grazie della disponibilità, spero di essere stato chiaro.