Avatar billede michaelfp Nybegynder
20. september 2004 - 22:43 Der er 10 kommentarer og
1 løsning

subscript out of range (array)

Hej eksperter,

A. Jeg har på en side defineret

Public Kontaktpersonarray1

B. Herefter læser jeg data ind i arrayet:
    strSQL = "SELECT COUNT(kontaktid) AS Antal FROM skontaktpersoner"
    Crs.Open strSQL,Conn, 3, 3
    Redim kontaktpersonarray1(Crs("Antal"))
    Redim kontaktpersonarray2(Crs("antal"))

    SqlSTR = "Select * from skontaktpersoner ORDER BY navn, kundeid"
    Trs.Open sqlSTR, conn, 3, 3
    t = 0
    Do While Not trs.EOF
      kontaktpersonarray1(t) = Trs("Navn")
      t = t+1
      Trs.Movenext
    Loop
    Trs.Close

Hvis jeg inde i løkken laver en response.write kontaktpersonarray1(t) skriver den fin værdien.

3. Når jeg på en anden side referere til dette array og bruger
For P = Lbound(kontaktpersonarray1) to Ubound(Kontaktpersonarray1) for jeg fejlen!

Hvorfor? - hvad gør jeg galt?
Avatar billede eagleeye Praktikant
20. september 2004 - 22:49 #1
Bliver koden includet eller hvordan bruger du det på den anden side?
Avatar billede michaelfp Nybegynder
20. september 2004 - 22:55 #2
Hej Eagleeye,

Public Kontaktpersonarray1
og koden findes i databasefunctions.inc

Den er included på vis.asp og det er vis.asp som giver fejlen
Avatar billede michaelfp Nybegynder
20. september 2004 - 22:57 #3
I databasefunctions.inc findes

Function IndlaesDatatildropdowns
..koden som indlæser i array
End function
Avatar billede eagleeye Praktikant
20. september 2004 - 22:59 #4
Ok det kunne tyde på du har definere variablen inde i funktionen så.
Hvis den defineres inde i funktionen er den lokal for funktion men defineres den udenfor dunktionen er den globas og bør kunne bruges på de sider som includer filen og kalder funktionen.
Avatar billede michaelfp Nybegynder
20. september 2004 - 23:08 #5
Jeg forstår ikke din kommentar!

Array'et er defineret som Public Kontaktpersonarray1 i databasefunctions.inc
>> herved burde jeg kunne referere til det på andre sider ikke?

I samme fil findes funktionen.
Funktionen kaldes i siden login.asp, hvorved data indlæses.

På siden vis.asp prøver jeg så at læse indholdet fra array'et ind i en dropdown
med for t = Lbound to Ubound
Avatar billede michaelfp Nybegynder
20. september 2004 - 23:09 #6
Det eneste jeg gør inde i funktionen er redim på arrayet!
Avatar billede eagleeye Praktikant
20. september 2004 - 23:30 #7
Har du det sådan her:

Function IndlaesDatatildropdowns
  Public Kontaktpersonarray1
  ..
End Function


eller sådan her:

Public Kontaktpersonarray1

Function IndlaesDatatildropdowns
  ..
End Function
Avatar billede eagleeye Praktikant
20. september 2004 - 23:32 #8
Og du husker at kalde funktionen før du udskriver i punkt 3 ?
For P = Lbound(kontaktpersonarray1) to Ubound(Kontaktpersonarray1) for jeg fejlen!

Sådan her:

IndlaesDatatildropdowns()
For P = Lbound(kontaktpersonarray1) to Ubound(Kontaktpersonarray1) for jeg fejlen!
Avatar billede michaelfp Nybegynder
20. september 2004 - 23:33 #9
Det sidste!
Public Kontaktpersonarray1

Function IndlaesDatatildropdowns
  ..
  Redim kontaktpersonarray1(antal)
End Function
Avatar billede michaelfp Nybegynder
20. september 2004 - 23:36 #10
Eagleeye 23:32:19

Funktionen kaldes før jeg udskriver i punkt3 JA - men funktionen kaldes fra en anden aspside.
Avatar billede michaelfp Nybegynder
01. november 2004 - 22:08 #11
lukkes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester