Hej Felmeddelandet betyder att det är ett fältnamn som databasen inte hittar. Den antar då att det är en parameter, men eftersom du inte kör frågan i Access så kan den inte fråga efter parametern, därav felmeddelandet. Datum är ett reserverat ord du måste ha hakparentes runt det [Datum] Mellanslag gillas inte i fältnamn heller, bättre att använda sig av ett underscore då eller lära sig vilka ord som är reserverade så att man inte använder dem. Hmm, jag ser fortfarand inget fel. Prova med att skriva ut din SQL sats så att du ser att alla fnuttar, # och sådant är på rätta ställena. Så här ser SQL-satsen ut om jag skriver ut den PUID är det en räknare, i sådant fall så ska den räknas upp automagiskt. Du har ett mellanslag före, vet inte om det kan ställa till det också. Det saknas fnuttar. Kolla vad du har för datatyper på dina fält och se till att du har fnuttar runt de som inte är nummer. Hej Japp det löste problemet. Tack så mycket för all hjälp som jag fått!SQL - För få parametrar
Jag har skribit ihop en liten sql-sats som jag inte kan se några fel på men som ändå inte fungerar. Jag får felmeddelandet: "För få parametrar angavs. 1 förväntades"
Här är sql-satsen, kontrolldatum är en datumvariabel:
sSql = "INSERT INTO AllData ( PUID, FIELD2, Newspaper, [Date 1], [Date 2], Week, [Month], [Year], Datum, [Day] ) "
sSql = sSql & "SELECT ImpRawData.PUID, ImpRawData.Field2, ImpRawData.TidningsID, ImpRawData.[Date 1], ImpRawData.[Date 2], "
sSql = sSql & Format(Kontrolldatum, "ww")
sSql = sSql & " AS Uttryck1, "
sSql = sSql & Format(Kontrolldatum, "m")
sSql = sSql & " AS Uttryck2, "
sSql = sSql & Format(Kontrolldatum, "yyyy")
sSql = sSql & " AS Uttryck3, "
sSql = sSql & Format(Kontrolldatum, "yyyymmdd")
sSql = sSql & " AS Uttryck4, "
sSql = sSql & Format(Kontrolldatum, "dddd")
sSql = sSql & " AS Uttryck5 "
sSql = sSql & " FROM ImpRawData;"
db.Execute (sSql)Sv: SQL - För få parametrar
Kolla stavningen på namnen.Sv: SQL - För få parametrar
Eventuell Week också...
fel kod:
<code>
sSql = "INSERT INTO AllData ( PUID, FIELD2, Newspaper, [Date 1], [Date 2], Week, [Month], [Year], Datum, [Day] ) "
</code>
rätt kod:
<code>
sSql = "INSERT INTO AllData ( PUID, FIELD2, Newspaper, [Date 1], [Date 2], [Week], [Month], [Year], [Datum], [Day] ) "
</code>Sv: SQL - För få parametrar
//Anna-KarinSv: SQL - För få parametrar
Här är fälten i mina tabeller:
--AllData--
PUID
FIELD2
Newspaper
Date 1
Date 2
Week
Month
Year
Datum
Day
--ImpRawData---
PUID
Field2
TidningsID
Date 1
Date 2
Det fungerade inte heller att sätta klammrar kring datum och weekSv: SQL - För få parametrar
Det är lätt att missa dem ibland vet jag av egen erfarenhet.
//Anna-KarinSv: SQL - För få parametrar
INSERT INTO AllData ( PUID, FIELD2, Newspaper, [Date 1], [Date 2], [Week], [Month], [Year], [Datum], [Day] ) SELECT ImpRawData.PUID, ImpRawData.Field2, ImpRawData.TidningsID, ImpRawData.[Date 1], ImpRawData.[Date 2], 30 AS Uttryck1, 7 AS Uttryck2, 2004 AS Uttryck3, 20040721 AS Uttryck4, onsdag AS Uttryck5 FROM ImpRawData;Sv: SQL - För få parametrar
//Anna-KarinSv: SQL - För få parametrar
T.ex.
onsdag AS Uttryck5 ska vara 'onsdag' AS Uttryck5
20040721 AS Uttryck4 ska vara '20040721' AS Uttryck4 om det är text och '2004-07-21' AS Uttryck4 om det är ett datumfält.Sv: SQL - För få parametrar
Nej, PUID är inte en räknare utan bara en siffer-bokstavskombination. Jag tog bort mellanrummet men det verkade inte heller hjälp. Jag testade även att köra SQL-satsen med och bara sätta in de värden som kommer från ImpRawData och då funkade det. Det verkar alltså som om det är något fel med mina uttryck(1-5).
// NiclasSv: SQL - För få parametrar
// Niclas