Engine^Medlem sedan dec. 20003 887 inlägg Jag har ett drygt problem med SQL-sats...
SELECT fnFormatIDDbl2Str(tL.intArtikelID) AS strID, strNamn, CStr(intAntal) + ' / ' + CStr(intLevAntal) AS strAntal, strLevStatus
INTO tblDeliveryTemp
FROM (tblLeverans AS tL
INNER JOIN tblArtikelRegister AS tA ON tA.intArtikelID = tL.intArtikelID)
WHERE intOrderID = " & intOrderID & ";"
Detta fungerar inte när jag försöker öppna mha ADO. Dunkar jag in det i Access och byter " & intOrderID & " mot 1, så fungerar det prima.
Vad är det som är knas?
Engine^Medlem sedan dec. 20003 887 inlägg Jag kanske ska säga att jag får ett Overflow-fel...
LarsGMedlem sedan dec. 200012 464 inlägg Hur ser frågan utan då? Efter konkateneringar etc.
@ndersMedlem sedan juni 200032 969 inlägg Och hur ser felmeddelandet ut lite mer exakt?
Engine^Medlem sedan dec. 20003 887 inlägg SELECT tblArtikelRegister.intArtikelID, tblArtikelRegister.strNamn, intAntal & ' / ' & intLevAntal AS strAntal, tblLeverans.strLevStatus
INTO tblDel
FROM tblArtikelRegister
INNER JOIN tblLeverans ON tblArtikelRegister.intArtikelID = tblLeverans.intArtikelID
WHERE tblLeverans.intOrderID = 1;
Det fungerar finfint att köra i Access.
Jag vill köra in detta i ett recordset kan det vara fel att använda .open? Jag sitter och pillar med VBA... där får jag felmeddelandet 'Overflow' och inget mer :(
intAntal & ' / ' & intLevAntal kommer fram som "50 / 50".
LarsGMedlem sedan dec. 200012 464 inlägg Detta verkar mystifikt. Att använda open eller execute skall inte påverka. Använder du Jet Ole DB eller Access som drivrutin? Kan vara något problem med MDAC?
Engine^Medlem sedan dec. 20003 887 inlägg Lol!
Nu avbröt jag exekveringen precis innan mitt .open kommando och hoppade in i VBA och körde en connection.execute manuellt och helt plöstligt fungerade det.
Jag ser hur mina gråa hår ökar i antal...
Engine^Medlem sedan dec. 20003 887 inlägg Hmm... jag tycks ha upptäckt problemet.
DBmotorn i Access är lite väl automagisk för min smak... när jag kör via ADO måste jag först DROP:a tabellen för att få göra en ny Make-Table.
oConn.Execute "DROP TABLE tblDeliveryTemp;"
strSQL = ...
oConn.Execute strSQL, , adExecuteNoRecords
Fungerar prima. :)
Irriterande att få ett 'Overflow', när det inte är det som är själva felet utan 'Table already exists'.