[VB NET] errore nella query per parametro necessario

mercoledì 10 ottobre 2012 - 09.00
Tag Elenco Tags  VB.NET  |  Visual Studio 2008  |  Access (.mdb)

caniggia Profilo | Newbie

Ciao a tutti, chiedo aiuto perche ho questo messaggio all'esecuzione del mio software

"NESSUN VALORE SPECIFICATO PER ALCUNI PARAMETRI"

e precisamente in questa query:

QUESTA NON FUNZIONA:

-------------------------------------------------------------

select cstr( iif (len(Provvigione)=8,Provvigione , iif (len(Provvigione)=7, '0' & Provvigione , iif (len(Provvigione)=6, '00' & Provvigione , iif (len(Provvigione)=5, '000' & Provvigione , iif (len(Provvigione)=4, '0000' & Provvigione , iif (len(Provvigione)=1, '3112202' & Provvigione , Provvigione ) ) ) ) ))) as DataCorretta, Date() AS DataOdierna, DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4))) AS Dat, mid(DataCorretta,1,2) AS Dat1, mid(DataCorretta,3,2) AS Dat2, mid(DataCorretta,5,4) AS Dat3, cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)) AS DataRovesciata, Provvigione, Codice, Descrizione, Categoria1, Categoria2, PrezzoAcquisto, PrezzoVendita, Ricarico1, Stagione from DesArt where 1=1 and len(Categoria1)>3 and len(Categoria2)>3 and

DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)))>0

-------------------------------------------------------------
SE CAMBIO l'ultima riga e metto un valore statico invece che dinamico, mi esce l'errore

QUESTA FUNZIONA:

-------------------------------------------------------------
select cstr( iif (len(Provvigione)=8,Provvigione , iif (len(Provvigione)=7, '0' & Provvigione , iif (len(Provvigione)=6, '00' & Provvigione , iif (len(Provvigione)=5, '000' & Provvigione , iif (len(Provvigione)=4, '0000' & Provvigione , iif (len(Provvigione)=1, '3112202' & Provvigione , Provvigione ) ) ) ) ))) as DataCorretta, Date() AS DataOdierna, DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4))) AS Dat, mid(DataCorretta,1,2) AS Dat1, mid(DataCorretta,3,2) AS Dat2, mid(DataCorretta,5,4) AS Dat3, cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)) AS DataRovesciata, Provvigione, Codice, Descrizione, Categoria1, Categoria2, PrezzoAcquisto, PrezzoVendita, Ricarico1, Stagione from DesArt where 1=1 and len(Categoria1)>3 and len(Categoria2)>3 and

DateDiff('d', cdate(Date()), '26' & '/' & '10' & '/' & '2012')>0

-------------------------------------------------------------

sto diventando matto, la seconda query è uguale alla prima query solo che invece di mettere una data dinamica ce la metto fissa '26' & '/' & '10' & '/' & '2012'

idee?

grazie
Caniggia

www.all-onweb.com info.all-onweb.com

alx_81 Profilo | Guru

>Ciao a tutti, chiedo aiuto perche ho questo messaggio all'esecuzione del mio software
Ciao, non capisco quale sia quella che non va, tu dici che la prima non funziona, poi affermi che "SE CAMBIO l'ultima riga e metto un valore statico invece che dinamico, mi esce l'errore"..
Quindi esce anche nel secondo caso? Quale non va? Hai usato sempre la stessa data per testare il funzionamento?
Perchè il formato con le / non è indicato (non sempre l'access è installato in italiano).
ciao

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

caniggia Profilo | Newbie

grazie per la risposta alx, ma sembra chiaro, ci sonio 2 query, la prima non va la seconda si e se guardi l'unica differenza sta nell'ultima riga:

PRIMA QUERY: DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)))>0
SECONDA QUERY: DateDiff('d', cdate(Date()), '26' & '/' & '10' & '/' & '2012')>0

in pratica nella prima query, il dato lo scrivo dinamicamente estrapolandolo dal campo DataCorretta, nella seconda invece lo impongo a mano e quindi funziona.

perchè?

Caniggia

www.all-onweb.com info.all-onweb.com

alx_81 Profilo | Guru

>grazie per la risposta alx, ma sembra chiaro, ci sonio 2 query,
>la prima non va la seconda si e se guardi l'unica differenza
>sta nell'ultima riga:
Ti ho chiesto per sicurezza perchè la tua frase mi aveva un po' smarrito e volevo essere certo prima di una risposta.

>in pratica nella prima query, il dato lo scrivo dinamicamente
>estrapolandolo dal campo DataCorretta, nella seconda invece lo
>impongo a mano e quindi funziona.
>perchè?
puoi cortesemente rispondere alla domanda che ti ho fatto? La data dinamica è esattamente la stessa di quella statica come valore?

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5