Avatar billede weiland Nybegynder
26. juli 2004 - 13:12 Der er 11 kommentarer og
1 løsning

"Type mismatch: Ubound" i function

Nedenstående giver fejlen: Type mismatch: 'Ubound' og henviser til linien "For m = 1 to Ubound(arrPageID)"
Jeg kan ikke se, hvad der skal gøres anderledes. Kan I?


Sub WriteMenus   
   
    'henter data
    Set rsPages = MyConn.Execute("Select PageID,Title,ParentPageID from Pages")

    Do
        'laver strenge
        arrPageID = arrTitle & "#" & rsPages("PageID")
          arrTitle = arrTitle & "#" & rsPages("Title")
          arrParentID = arrParentID & "#" & rsPages("ParentPageID")
     
      rsPages.MoveNext
    Loop while not rsPages.eof
   
        'Laver arrays
        arrPageID = Split(arrPageID,"#")
        arrTitle = Split(arrTitle,"#")
        arrParentID = Split(arrParentID,"#")
   
            'skriver fil på serveren
            Set FSO = Server.CreateObject("Scripting.FileSystemObject")
                TheFile = Server.Mappath("../admin/write/Menu/LoggedOutMenu.txt")
                Set File = FSO.OpenTextFile(TheFile, 2)

                    'bruger den rekursive funktion WriteLines til at
                    'skrive sidetitler med ParentPageID = 0 og deres undersider
                    WriteLines(0)
                   
            Set fso = nothing

    rsPages.Close
    Set rsPages = Nothing

End Sub


Function WriteLines(intID)   
For m = 1 to Ubound(arrPageID)

  'Hvis underside til den side som funktionen er kaldt med
  If Cint(arrParentID(m)) = Cint(intID) Then

            File.WriteLine(""& arrTitle(m) &"")

    'ser om der er undersider
    WriteLines(arrPageID(m))
     
  End If       
Next
End Function

Call WriteMenus
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:17 #1
Ubound finder størrelsen på et array, og arrPageID er nok ikke et array så prøv uden Ubound:

For m = 1 to arrPageID
Avatar billede weiland Nybegynder
26. juli 2004 - 13:23 #2
Hmm, så sker der absolut intet... browseren siger ikke et kvæk, og der bliver heller ikke skrevet noget i txt-filen på serveren

arrPageID er vel et array, når jeg har sagt arrPageID = Split(arrPageID,"#")?? :-)
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:27 #3
Ja det rigtig.

Så er fejlen her:

arrPageID = arrTitle & "#" & rsPages("PageID")

Der skal stå arrPageID og ikke arrTitle.

arrPageID = arrPageID & "#" & rsPages("PageID")


og så behold det med Ubound :)
Avatar billede weiland Nybegynder
26. juli 2004 - 13:31 #4
OK, det var en dum slåfejl fra min side :-)
Men siden melder stadig: Type mismatch: 'Ubound'

Hmmm....
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:33 #5
Prøv at dim dine globale variable uden for funktionen sådan compileren ikke tror det er lokale variable i funktionen.

dim arrPageID, arrTitle, arrParentID
Avatar billede weiland Nybegynder
26. juli 2004 - 13:38 #6
det prøver jeg lige...

I mellemtiden kan jeg fortælle, at det faktisk virker, hvis jeg ikke har WriteMenus i en sub-routine. Er det ikke mærkeligt?
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:40 #7
Nej :)
For der kan den se variablene. Når du kommer ud af WriteMenus "ødelægges" variablene fordi de er lokale i funktionen
Avatar billede weiland Nybegynder
26. juli 2004 - 13:41 #8
Sub WriteMenus   
   
    dim arrPageID, arrTitle, arrParentID
   
    'henter data
    Set rsPages = MyConn.Execute("Select PageID,Title,ParentPageID from Pages")

etc. etc........

- giver desværre ikke nogen forskel. Stadig Type mismatch
Avatar billede weiland Nybegynder
26. juli 2004 - 13:42 #9
skriver jeg dim'erne et forkert sted?
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:46 #10
Ja nu har du sikret de er lokale i funktionen.
De skal stå uden for funktionerne

<%
dim arrPageID, arrTitle, arrParentID

Sub WriteMenus   
..
end sub

Sub xxxx
..
end sub
Avatar billede weiland Nybegynder
26. juli 2004 - 13:53 #11
Det er så lækkert...!

Da jeg så også fik "File" med i dim-rækken, så spillede det hele! :-)

Tusind tak! Smider du et svar?
Avatar billede eagleeye Praktikant
26. juli 2004 - 13:54 #12
Ok :)
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