Solved

Multidimensional Array

Posted on 2004-08-13
10
187 Views
Last Modified: 2010-05-02
I have a multidimensional array that is 6 colums wide.

I am populating it from a recordset and therefore do not know the length so I using a dynamic array as below

currentfile = 0
WHILE NOT MyRS2.EOF
      IF currentfile = 0 Then
      ' do nothing
      Else
      Redim Preserve ArrPassed(5,currentfile)
      End IF
      ArrPassed(vantivenumber,currentfile) = MyRS("vantivenumber")
      ArrPassed(teamname,currentfile) = MyRS("teamname")
      ArrPassed(passedreason,currentfile) = MyRS("passedreason")
      ArrPassed(timetaken,currentfile) = MyRS("timetaken")
      ArrPassed(notes,currentfile) = MyRS("notes")
      ArrPassed(dateentered,currentfile) = MyRS("dateentered")
      currentfile = currentfile + 1
MyRS2.MoveNext
Wend

I am now trying to find out how to find out the ubound limits of the array so i can do a for next loop but i cant seem to figure it out from the many articles i have read.

This is extremely urgent hence the points.
0
Comment
Question by:JordansGhost
  • 4
  • 2
  • 2
  • +2
10 Comments
 
LVL 15

Expert Comment

by:Colosseo
ID: 11791548
Hi

have you tried UBound(ArrPassed)

That should work ok

Scott
0
 

Author Comment

by:JordansGhost
ID: 11791551
that returns 5 which is the 6 columns when 0 based, i need to know how many rows there is
0
 
LVL 15

Assisted Solution

by:Colosseo
Colosseo earned 50 total points
ID: 11791564
You could always switch your array around so your code snippet becomes

currentfile = 0
WHILE NOT MyRS2.EOF
     IF currentfile = 0 Then
     ' do nothing
     Else
     Redim Preserve ArrPassed(currentfile,5)
     End IF
     ArrPassed(currentfile,vantivenumber) = MyRS("vantivenumber")
     ArrPassed(currentfile,teamname) = MyRS("teamname")

and so on

Scott
0
 
LVL 8

Accepted Solution

by:
mladenovicz earned 300 total points
ID: 11791571
UBound(arrayname[, dimension])

Ubound(ArrPassed,1)
Ubound(ArrPassed,2)


Example:

Dim A(1 To 100, 0 To 3, -3 To 4)


UBound(A, 1) ---> 100
UBound(A, 2) ---> 3
UBound(A, 3) ---> 4
0
 
LVL 15

Expert Comment

by:Colosseo
ID: 11791573
Just realised that wont work with your preserve statement
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 15

Expert Comment

by:Colosseo
ID: 11791594
sorry, I meant my suggestion wont work... mladenovicz is spot on
0
 
LVL 18

Assisted Solution

by:JR2003
JR2003 earned 100 total points
ID: 11791657
to get the UBound of the 2nd dimension use the following:

UBound(ArrPassed, 2)

0
 
LVL 18

Expert Comment

by:JR2003
ID: 11791689
PS: You could dimension the array(Rows, Columns) rather than (Columns, Rows)
      then UBound without the dimension parameter would work.

UBound(arrayname[, dimension])

The UBound function syntax has these parts:

arrayname: Required. Name of the array variable; follows standard variable naming conventions.

dimension: Optional; Variant (Long). Whole number indicating which dimension's upper bound is returned. Use 1 for the first dimension, 2 for the second, and so on. If dimension is omitted, 1 is assumed.
0
 
LVL 11

Assisted Solution

by:Sven
Sven earned 50 total points
ID: 11792042
You could also Dim the array to begin indexing at 1 not 0:

Dim array(1 To 10)
Dim multiarray(10, 1 To 10)
0
 

Author Comment

by:JordansGhost
ID: 11792319
Sorry guys, my mistake.

The problem was the recorset was EOF and this was the one time i didnt test for it. seen as the array didnt complain i presumed the data was in there.

All the information given was good and similar to what i have already read.

Ill split the points for your quick responses and grade accordingly.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now