webForumDet fria alternativet

Funkis i Access, men inte i ADO?

8 svar · 177 visningar · startad av Engine^

Engine^Medlem sedan dec. 20003 887 inlägg
#1

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
#2

Jag kanske ska säga att jag får ett Overflow-fel...

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Hur ser frågan utan då? Efter konkateneringar etc.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Och hur ser felmeddelandet ut lite mer exakt?

Engine^Medlem sedan dec. 20003 887 inlägg
#5
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
#6

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
#7

Jet Ole DB 4.0

Engine^Medlem sedan dec. 20003 887 inlägg
#8

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
#9

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'.

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)