0

i have to create an array in an array

here my code:

Dim servers(2) As String
Dim parameters(3) As String
Dim i, j As Integer

parameters(0) = "db1"
parameters(1) = "server1"
parameters(2) = "user1"
parameters(3) = "password1"

For i = 0 To 2
    For j = 0 To 3
       servers(i) = parameters(j)
    Next j
Next i

I made a graphical example with the result and i really don't know how to do it: https://i.sstatic.net/1uSme.png

3 Answers 3

3

It seems a user-defined type can help you:

Type tServerData
    DBname As String
    ServerID As String
    UserName As String
    Password As String
End Type

Dim ServerData(0 To 2) As tServerData

Now you have an arrray for 3 servers, for example:

ServerData(0).DBname= "db1"

etc.

Sign up to request clarification or add additional context in comments.

1 Comment

UDT's are so under-rated. This should be the accepted answer.
1

You actually need a 2-D Array to populate your servers, try the code below:

Option Explicit

Sub x()

Dim servers(2, 3) As String
Dim parameters() As Variant
Dim i As Long, j As Long

parameters = Array("db", "server", "user", "password")

For i = 0 To 2
    For j = LBound(parameters) To UBound(parameters)
       servers(i, j) = parameters(j) & i + 1
    Next j
Next i

End Sub

Comments

0

Try a two dimensional array:

Dim parameters(10,10) As String

parameters(1,1) = "db1"
parameters(1,2) = "server1"
...
parameters(2,1) = "db2"
parameters(2,2) = "server2"
...

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.