Avatar billede monstermand Nybegynder
03. marts 2004 - 15:03 Der er 5 kommentarer og
1 løsning

Int og String skal give variabelnavn

tv1 = a.Form("hej1")
tv2 = a.Form("hej2")
tv3 = a.Form("hej3")
country = "Mitland"
amount = 3

i=1
Do While i <= amount

If tv&i <> "" then
    SQL = "Insert into masters (number, country, channel, airdate, id_code) values('" & a.Form("number") & "','" & country & "','" & tv&i & "','" & Replace(a.Form(i&"_airdate"), "'","''") & "','" & Replace(a.Form(i&"_id_code"), "'","''") & "')"
    conn.execute(SQL)
End If

i = i + 1
Loop

Hvad er den korrekte notation på ovenstående. Som man kan genkende ønsker jeg at bruge de øverste variabler ved at loope igennem.
Avatar billede nute Nybegynder
03. marts 2004 - 15:21 #1
hvis du skal loope, så laver du arrays ... det er en af grundene til at man har dem ;o]

Dim objArray() : ReDim objArray(2)
objArray(0) = a.Form("hej1")
objArray(1) = a.Form("hej2")
objArray(2) = a.Form("hej3")
country = "Mitland"
amount = 3

For i = 0 To Ubound( objArray )
    if( objArray(i) <> "" ) Then
        SQL = "Insert into masters (number, country, channel, airdate, id_code) values('" & a.Form("number") & "','" & country & "','" & objArray(i) & "','" & Replace(a.Form(( i + 1 )&"_airdate"), "'","''") & "','" & Replace(a.Form( ( i + 1 )&"_id_code"), "'","''") & "')"
        conn.execute(SQL)
    End if
next

/nute
Avatar billede monstermand Nybegynder
03. marts 2004 - 15:31 #2
det ser ud som noget jeg kan bruge.. hvorfor siger du + 1 de to gange inde i sql sætningen?
Avatar billede monstermand Nybegynder
03. marts 2004 - 15:33 #3
og.. hvad betyder:  ReDim
Avatar billede nute Nybegynder
03. marts 2004 - 15:41 #4
jeg siger 'i+1' fordi loopet går fra 0 - 2. din loop går fra 1 - 3 ... for at få det til at passe, så er man nødt til at lægge 1 til din iterator. Grunden til at jeg starter på 0, er at arrays i VB(Script) er 0-basert, dvs at den første entry i en array, har "id" (index) 0.

ReDim betyder "gen allokér". Når du Dim'er en variabel, så allokerer du minde til den. Mange gange når man bruger arrays, så kender man ikke størrelsen af den med den samme. I den sammenhæng skal man bruge ReDim. Man skal altid bruge ReDim på variabler man allerede har Dim'et.

du kunne strengt taget også udelade en ReDim, og bare skrive:

Dim objArray(3)

/nute
Avatar billede monstermand Nybegynder
04. marts 2004 - 14:32 #5
smid du bare et svar! Det spiller!
Avatar billede nute Nybegynder
04. marts 2004 - 14:35 #6
fino :o]

svar
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

IT-JOB

Capgemini Danmark A/S

Client Partner

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer