Visto che il risultato è sempre un unico numero, è meglio usare ExecuteScalar al posto di ExecuteReader:
codice:
objConn.Open()

strsql = "SELECT MAX(nrprog) FROM registro" 

Dim objCommand2 As New OleDbCommand(strsql, objConn)

L22.Text = objCommand2.ExecuteScalar() 

objConn.Close()