Just nu i M3-nätverket
Jump to content

Felmeddelande


mia_sr

Recommended Posts

Felmeddelandet "wrong number of arguments..." är inget sql-fel utan det är ett VB-fel. Du har alltså inget fel i din sql-sats, utan felet ligger någon annanstans.

 

Det felet innebär är att du gör ett funktionsanrop med felaktiga parametrar eller att du försöker ändra en icke ändringsbar egenskap hos ett objekt.

 

Visst skulle det kunna vara så att det är något slarvfel på den långa raden så att VB tror att du försöker anropa någon funktionen, men det känns långsökt. Du borde ha fått syntaxfel då.

 

Troligtvis är felet på ett annat ställe i koden.

 

* * *

 

För övrigt är det inte så praktiskt att göra en sån där lång sql-sats. Det ska dessutom inte behövas. Det är ju en dator du sitter vid, och datorer är ju konstruerade för att underlätta för oss människor så vi slipper göra långtråkiga saker som att sitta och skriva nästan samma ord gång på gång.

 

I ditt fall hade jag gjort så här:

 

* En tabell som heter "fragor" som innehåller varje fråga i text samt ett id-nummer, frageID.

* En tabell som heter "svar" som innehåller den information du vill spara om varje svar som lämnas in (exempelvis tidpunkt och namn), samt ett id-nummer, svarsID.

* En tabell som heter "svarsdata" som innehåller alla svar som lämnats på frågorna. På varje rad i tabellen har den frageID (som talar om vilken fråga det är svar på), svarsID (som talar om vem det är som svarar) och så själva svaret i text.

 

På sidan där enkäten ska fyllas i behöver du ju bara göra en SELECT fraga, frageID FROM fragor, och så skriver du ut alla frågor och sätter textrutorna till name="<% =frageID %>".

 

På sidan som ska lagra svaren från enkäten behöver du bara loopa igenom samtliga variabler som kommit in och göra: INSERT INTO svarsdata ('frageID', 'svarsID', 'svar').

 

På detta vis blir allt mycket smidigare. Vill du exempelvis lägga till en extra fråga behöver du bara lägga till det i frågetabellen så uppdateras direkt sidan där enkäten fylls i och svaren på den nya frågan sparas.

 

Hmm... Lite tips bara som du kanske kan ha nytta av nästa gång du gör något med databas.

 

 

Link to comment
Share on other sites

Magnus Ahlkvist

Dock gäller fortfarande de tidigare synpunkerna - det går inte att använda Session som variabelnamn, man måste använda session.sessionID, och man måste hantera session.SessionID som en sträng för att Access ska förstå.

 

Men det känns lite pinsamt att vi två (som är de flitigaste postarna på db och SQL) missade att man inte kan ha en WHERE-klausul i en INSERT :)

 

--

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Link to comment
Share on other sites

> Dags att sova, eller kanske byta

> jobb....?

 

Måste bli sova för min del. Jag har ju redan bytt jobb :-)

 

/ Thomas - fd supporttekniker, numera lokförare

 

Link to comment
Share on other sites

Ja, det känns aningen pinsamt... Att men dessutom är moderator i både "ASP" och "DB och SQL" gör inte saken mindre pinsam....;)

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...