Avatar billede peppino Nybegynder
23. august 2002 - 17:25 Der er 10 kommentarer og
1 løsning

Der er en syntaksfejl! Men hvor?

Hjælp

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a03ea'

Der er en syntaksfejl

/shop/updatevarenr.asp, linje 14

function MakeCode(count)
^


Her er koden.

<%
Set rs = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("???.mdb")
rs.Open DSN

sql = "select * from vare2"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1,3

do until rs.eof

function MakeCode(count)' HER ER LINJE 14
Dim randchars
randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
Dim s
s = ""
Randomize
For I = 0 To Count-1
s = s & mid(randchars, Int((Rnd * Len(randchars))+1), 1)
Next
MakeCode = s

end function

Dim aktiveringskode
varenr3 = MakeCode(10)

set rstjek = conn.Execute("select * from vare2 where varenr2 = '" & varenr3 & "'")
If rstjek.EOF THEN

rs("varenr2") = varenr3
rs.update

else

rs("varenr2") = "Fejl"
rs.update
end if

rs.movenext
loop
%>

/Peppino
Avatar billede jespernaur Nybegynder
23. august 2002 - 17:30 #1
Du bør ikke have funktionen erklæret midt nede i koden - prøv at flytte hele MakeCode enten op forrest eller ned til allersidst
Avatar billede neteffect Nybegynder
23. august 2002 - 17:33 #2
Du må ikke definere en funktion inde i et do ... loop (eller inde i noget andet statement for den sags skyld, bortset fra i en class)
Avatar billede peppino Nybegynder
23. august 2002 - 17:44 #3
okay jeg har sat funktionen helt op men den virker stadig ikke, kan i se om der er noget galt???

/Peppino
Avatar billede fet321 Nybegynder
23. august 2002 - 18:57 #4
Hvilken fejlmeddelelse får du?
Avatar billede jespernaur Nybegynder
23. august 2002 - 18:59 #5
Er syntaxfejlen gået væk? Og hvis ja, hvad har du så for problemer?
Avatar billede coltau Juniormester
24. august 2002 - 23:55 #6
Koden skal være ca. sådan. Men hvad gør koden. Laver den tilfældige varenumre der ikke må være ens. ?

<%
Dim aktiveringskode

function MakeCode(count)
  Dim randchars, s
  randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
  s = ""
  Randomize
  For I = 0 To Count-1
    s = s & mid(randchars, Int((Rnd * Len(randchars))+1), 1)
  Next
  MakeCode = s
end function

Set rs = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("???.mdb")
rs.Open DSN

sql = "select * from vare2"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1,3

do until rs.eof

  varenr3 = MakeCode(10)
  set rstjek = conn.Execute("select * from vare2 where varenr2 = '" & varenr3 & "'")
  If rstjek.EOF THEN
    rs.AddNew ' Vare findes ikke opret ny
    rs("varenr2") = varenr3
    rs.update
  else ' Vare findes ???
    rs("varenr2") = "Fejl"
    rs.update
  end if
 
  rs.movenext
loop
%>
Avatar billede peppino Nybegynder
26. august 2002 - 15:05 #7
coltau>> Jeg får den her fejl:

ADODB.Recordset fejl '800a0bb9'

Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.

updatevarenr.asp, linje 23

Linje 23 er den her fra "din" kode
rs.Open SQL, Conn,1,3

/Peppino
Avatar billede peppino Nybegynder
26. august 2002 - 15:09 #8
ups det er den her fejl jeg får:

Microsoft OLE DB Provider for ODBC Drivers fejl '80004005'

[Microsoft][ODBC Microsoft Access-driver] Den valgte sætvise sortering understøttes ikke af operativsystemet.

updatevarenr.asp, linje 28

Linje 28:
set rstjek = conn.Execute("select * from vare2 where varenr2 = '" & varenr3 & "'")
Avatar billede coltau Juniormester
26. august 2002 - 21:49 #9
Det kunne tyde på at feltet, varenr2 ikke er af typen tekst - men tal eller andet. ?
Avatar billede peppino Nybegynder
06. september 2002 - 18:07 #10
Coltau>>>> Det er et tekst felt
Avatar billede peppino Nybegynder
20. september 2002 - 17:04 #11
Lukket
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