Link to home
Start Free TrialLog in
Avatar of kmorris1186
kmorris1186

asked on

adding to an array

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?

Avatar of GrahamSkan
GrahamSkan
Flag of United Kingdom of Great Britain and Northern Ireland image

Dim strArray()

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

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


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




& 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
     
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
Avatar of kmorris1186
kmorris1186

ASKER

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.
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.
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...

ASKER CERTIFIED SOLUTION
Avatar of GrahamSkan
GrahamSkan
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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
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!