Une fois que vous avez Dim
les utilisateurs du tableau avec des limites explicites, vous ne pouvez pas ReDim
il. Vous pouvez essayer ceci, mais cela ne compilera pas (le tableau est déjà dimensionné).
Dim users(9, 2) As String
ReDim Preserve users(10, 2) ' doesn't compile!
Un autre problème que vous rencontrerez sera d'essayer de ReDim Preserve
le premier indice du tableau. Vous pouvez aussi essayer cela, mais vous obtiendrez une erreur d'exécution (Subscript out of range).
Dim users() As String
ReDim Preserve users(0, 1)
ReDim Preserve users(1, 1) ' runtime error!
Au lieu de cela, j'ai trouvé ce qui suit. Vous devrez conserver le premier indice pour distinguer entre username
o password
. Ce sera la taille 1 (et non 2). Le deuxième indice augmentera au fur et à mesure que vous ajouterez des utilisateurs :
Private Sub Form_Load()
Dim users() As String
ReDim users(1, 0)
Add users, "name1", "pw1"
Add users, "name2", "pw2"
End Sub
Private Sub Add(ByRef users() As String, username As String, password As String)
If Not (users(0, 0) = vbNullString And users(1, 0) = vbNullString) Then
ReDim Preserve users(1, UBound(users, 2) + 1)
End If
users(0, UBound(users, 2)) = username
users(1, UBound(users, 2)) = password
End Sub
Si vous ne pouvez pas échanger le nom d'utilisateur et le mot de passe, vous pouvez envisager une structure de données différente, comme une collection ou un tableau d'une classe personnalisée avec des champs pour le nom d'utilisateur et le mot de passe.