Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problema di apici con Select access da inserire in VB

165 views
Skip to first unread message

Fabrizio Cannatelli

unread,
Sep 1, 2004, 5:28:01 AM9/1/04
to
ciao a tutti
allora io ho un problemino di apici con una select access

se la utilizzo in access la query mi funziona perfettamente se la metto
in vb o in asp mi dà OPERATORE MANCANTE o non funge
eccola

SELECT [ID], [Importo], [Segno], [ID_Part]
FROM Storico
WHERE DSum("IIF(Segno='C',-1,1)*Importo","Storico","Importo=" &
Str([Importo]) & " AND ID=" & [ID])=0
ORDER BY Importo;

cosi funziona perfettamente
se però metto le doppie apici all'inizio e le apicette all'interno mi
dice errore di SINTASSI

sql="SELECT [ID], [Importo], [Segno], [ID_Part]
FROM Storico
WHERE DSum('IIF(Segno='C',-1,1)*Importo','Storico','Importo=' &
Str([Importo]) & ' AND ID=' & [ID])=0 ORDER BY Importo"

come cavolo devo impostare le APICI??
mi aiutate??


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Cinzia

unread,
Sep 1, 2004, 8:06:27 AM9/1/04
to

"Fabrizio Cannatelli" <fcann...@tiscali.it> ha scritto nel messaggio
news:603b1102aed213f3e77...@mygate.mailgate.org...
Ciao Fabrizio,
ammesso che il problema sia solo negli apici (non credo tu possa utilizzare
da ASP o VB le funzioni iif o DSUM che sono funzioni interne di Access e non
SQL, ma potrei sbagliarmi!!!),
per evitare l'errore di sintassi sostituisci nella query che funziona il
doppio apice con 2 doppi apici

sql="SELECT [ID], [Importo], [Segno], [ID_Part] FROM Storico
WHERE DSum(""IIF(Segno='C',-1,1)*Importo"",""Storico"",""Importo="&
Str([Importo]) & " AND ID=" & "[ID])=0 ORDER BY Importo"

Saluti
Cinzia


Fabrizio Cannatelli

unread,
Sep 1, 2004, 9:25:48 AM9/1/04
to
ho fatto come hai scritto tu ma mi dà errore alla voce "importo"
e mi dice "nome ESTERNO NON DEFINITO"
non sò se è un problema di apici o di funzioni
devo informarmi
sei sicura che non posso utilizzare IIF o dsum in vb???

danilo_no

unread,
Sep 1, 2004, 9:39:14 AM9/1/04
to

> Ciao Fabrizio,
> ammesso che il problema sia solo negli apici (non credo tu possa
utilizzare
> da ASP o VB le funzioni iif o DSUM che sono funzioni interne di Access e
non
> SQL, ma potrei sbagliarmi!!!),

iif funziona in una stringa sql DSUM non l'ho mai sentita.

Cinzia

unread,
Sep 1, 2004, 9:53:00 AM9/1/04
to

"Fabrizio Cannatelli" <fcann...@tiscali.it> ha scritto nel messaggio
news:293a62789bafb721160...@mygate.mailgate.org...

> ho fatto come hai scritto tu ma mi dà errore alla voce "importo"
> e mi dice "nome ESTERNO NON DEFINITO"
> non sò se è un problema di apici o di funzioni
> devo informarmi
> sei sicura che non posso utilizzare IIF o dsum in vb???
>
>
> --
Ciao Fabrizio,
l'errore te lo da quando esegui il comando SQL o sull'assegnazione?
Dovresti vedere la stringa contenuta in sql così vediamo se abbiamo
dimenticato qualcosa.
Per qunato riguarda l'IIF e il DSUM non è che non si possono usare in Vb
(nel codice la IIF puoi usarla), secondo me non si possono usare in
istruzioni SQL richiamate tramite ADO perchè quelle istruzioni sono
"interne" al motore di Access, ma ripeto potri sbagliarmi ed in effetti
Danilo ha appena scritto che almeno la iif funziona...
Cinzia


Fabrizio Cannatelli

unread,
Sep 1, 2004, 10:20:17 AM9/1/04
to
avete qualche idea su come posso ovviare al problema
se creo una query con il dsum e la richiamo da vb??
si può fare??

Zanna

unread,
Sep 1, 2004, 2:37:09 PM9/1/04
to
"Fabrizio Cannatelli" <fcann...@tiscali.it> ha scritto nel messaggio

> avete qualche idea su come posso ovviare al problema


> se creo una query con il dsum e la richiamo da vb??
> si può fare??

Da dove arriva DSum?

Per le funzioni definite in Access (che se non sbaglio puoi anche definirne
di personalizzate) basta richiamarle come tali, quindi senza virgolette che
identificano invece una stringa.

Ciao

--
NeoDataType : http://www.neodatatype.net
Sito Comune : http://www.it-lang-vb.net


Cinzia

unread,
Sep 1, 2004, 2:56:15 PM9/1/04
to

"Fabrizio Cannatelli" <fcann...@tiscali.it> ha scritto nel messaggio
news:efec08c125d3dc33552...@mygate.mailgate.org...

> avete qualche idea su come posso ovviare al problema
> se creo una query con il dsum e la richiamo da vb??
> si può fare??
>
>
> --
Ciao Fabrizio,
ho pensato una possibile soluzione per evitare l'uso di DSUM,
sostanzialmente si tratta di fare 2 query ed unirle con una Inner Join
in questo modo:
Query1
Select ID, IMPORTO, Sum(IIF(Segno='C',-1,1)*Importo) as Tot
From Storico Group By Id, Importo
Having Sum(IIF(Segno='C',-1,1)*Importo) =0

Query Finale

SELECT [ID], [Importo], [Segno], [ID_Part]

FROM Storico INNER JOIN Query1 on Storico.ID = Query1.ID and Storico.Importo
= Query1.Importo

Verifica prima in Access che questa soluzione genera gli stessi risultati
della tua fuzionante (non ho dati su cui testare la bontà dell'ipotesi)

Facci sapere!
Cinzia


0 new messages