Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 276
  • Last Modified:

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?

0
kmorris1186
Asked:
kmorris1186
1 Solution
 
GrahamSkanCommented:
Dim strArray()

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

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


0
 
GrahamSkanCommented:
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
 
GrahamSkanCommented:
& 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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
EDDYKTCommented:
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
 
kmorris1186Author Commented:
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
 
kmorris1186Author Commented:
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
 
kmorris1186Author Commented:
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
 
GrahamSkanCommented:
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
 
leenapedenekarCommented:
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
 
kmorris1186Author Commented:
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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now