Solved

Posted on 2003-11-25
260 Views
This should be real easy, i just cant figure it out.

summary:

user enter 2 values. (example, 10001 and 15000)
program will create and array with all the number from 10001-15000.
10001
10002
10003
...

I need to store these all into an array.

----- Begin Code ------

dblCurrentFLN = dblFLNbegin
Do Until dblFLNbegin > dblFLNEnd
strArray = Array(dblCurrentFLN)
dblCurrentFLN = dblCurrentFLN + 1
Loop

----- End Code --------

That Array function isnt what i am looking for. it will jsut write the 1st line, then write the 2nd one over top of the 1st, and so on. I need the user to be able to put in another set of number after that and continue to write to the end of the array.  I will then write that whole array to a text file (i got that part down packed.)

Any ideas?

0
Question by:kmorris1186
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 76

Expert Comment

ID: 9816780
Dim strArray()

Dim i as integer
dblCurrentFLN = dblFLNbegin
Do Until dblFLNbegin > dblFLNEnd

strArray(i) = Array(dblCurrentFLN)
dblCurrentFLN = dblCurrentFLN + 1
Loop

0

LVL 76

Expert Comment

ID: 9816789
Sorry. Hit tab at the wrong time.

Dim iArray() as integer

Dim i as integer
dblCurrentFLN = dblFLNbegin
Do Until dblFLNbegin > dblFLNEnd
Redim Preserve iArray(i)
iArray(i) = Array(dblCurrentFLN)
dblCurrentFLN = dblCurrentFLN + 1
Loop

0

LVL 76

Expert Comment

ID: 9816799
& even that's not right.
iArray(i) = Array(dblCurrentFLN)
should be
iArray(i) = dblCurrentFLN

I've used integers but you may want to use longs

0

LVL 26

Expert Comment

ID: 9817351
OR

Option Explicit

Private Sub Command1_Click()
Dim arr() As Long

arr = getArr(10001, 10002)
End Sub

Private Function getArr(ByVal start As Long, ByVal endN As Long) As Long()
Dim arr() As Long, I As Long

On Error Resume Next
I = endN - start + 1
ReDim Preserve arr(I)
For I = start To endN
arr(I - start) = I
Next
getArr = arr
End Function
0

LVL 7

Author Comment

ID: 9821358
EDDYKT,  you code comes back with an Overflow error.  I did leave one thing out, but delclaring these are Long, sould fix this problem and doesnt.  I just the FLN vars are actualy like this.  #############. ex, 9100331512345, all the way up to 9100331512349.  But that last 5 digits are the only ones that change.

I have to be doing somthing wrong, because i cant get any of this code to work.  It will just store the last number in the sequence into the array and that is it.
0

LVL 7

Author Comment

ID: 9821936
ok. i figured out my problem.  I had to declare the array as a Double instead of a Long.  But i still need to add on to that array later in the program.  When i try to add onto it, it starts overwriting the old data in that array.
0

LVL 7

Author Comment

ID: 9822105
ok i have changed the whole program..... instead of having that whole number stored as a double, i split it in half (as the 1st 8 numbes will not be changing. only the last 5 will)  i again, can get it it add to the array now problem.  this is actually using brand new code..

--------- Begin Code-------------
Dim I As Long
'Counter is initially 0 on program 1st run.
If Counter = 0 Then
ReDim strArray(lngFLNEnd - lngFLNBegin)
For I = 0 To lngFLNEnd - lngFLNBegin
strArray(I) = lngCurrentFLN
lngCurrentFLN = lngCurrentFLN + 1
Next I
ElseIf Counter > 0 Then
ReDim Preserve strArray(UBound(strArray))
For I = UBound(strArray) + 1 To UBound(strArray) + lngFLNEnd - lngFLNBegin + 1
strArray(I) = lngCurrentFLN
lngCurrentFLN = lngCurrentFLN + 1
Next I
End If
--------End Code---------

It blows up on the "strArray(I) = lngCurrentFLN" statement...
Subscript out of range.

so i am back to square one, and still cant add to an array...

0

LVL 76

Accepted Solution

GrahamSkan earned 35 total points
ID: 9822954
If you tell your array index to explicitly exceed the array bounds, then it will do so:

in " UBound(strArray) + lngFLNEnd - lngFLNBegin + 1"

is greater than UBound(strArray) unless lngFLNEnd is less than lngFLNBegin.

0

Expert Comment

ID: 9835079
i want to store the field values in the single recordset to
an array and check if any of the field is null in the recodset
how to do it
0

LVL 7

Author Comment

ID: 9863486
It was actually a combination of all of GrahamSkan answers.

EDDYKT,  yours sorta worked, but i found that GrahamSkan's was much easier to work with.

Thanks guys!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
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…
###### Suggested Courses
Course of the Month5 days, 17 hours left to enroll