Parametri con valori multipli nelle query di access

martedì 11 maggio 2004 - 16.28

mo70 Profilo | Junior Member

Ho costruito una query parametrica (con access 2002) che viene eseguita in una pagina asp.net. Il problema è che il valore di un parametro chiamato @pr deriva dalle voci selezionate nella listbox a selezione multipla chiamata list_pr, quindi può essere composto da più valori. Ho provato con seguente sintassi direttamente nella griglia criteri della query: IN([@pr]), funziona se il valore è uno solo ad es. "GE", altrimenti se il paramentro diventa "GE","MI","TO" non mi da risultati.
Non so proprio come fare a risolvere questo problema, è fondamentale fare in modo che l'utente possa utilizzare listbox a scelta multipla. Qualcuno mi può aiutare? Utilizzo VB.NET come linguaggio di programmazione.

Grazie.

Ciao

Brainkiller Profilo | Guru

Il tuo ragionamento è giusto, cerca di capire se il problema è nella query passata o nel passaggio del parametro.
Se tu provi a fare una query in access di questo tipo:

select * from tabella1 where valore in ('MI','GE','TO')

vedrai che funziona.
Comincia a verificare il funzionamento di questa query, se funziona allora il problema è nel passaggio del parametro e lì eventualmente più tardi possiamo indagare sul perchè del non funzionamento.

ciao
david

mo70 Profilo | Junior Member

Ho provato però lo prende solo se utilizzo ; invece della , ossia ('MI';'GE';'TO'). Ho provato nuovamente a inserire il seguente criterio: In ([@pr]) nella riga del campo pr ma non mi da nessun risultato.
Grazie.
Ciao

Brainkiller Profilo | Guru

Allora procedi così, fai semplicemente un ciclo sugli elementi della listbox in modo da ricavare quelli selezionati e poi componi una stringa come la seguente 'GE','BS','MI' ecc. e la passi concatenata come stringa dentro la IN.

ciao
david

mo70 Profilo | Junior Member

Ho provato però continua a non darmi record.Il problema è a livello database perchè già all'interno della query mi accetta la stringa solo se la scrivo direttamente nella griglia dei criteri (accetta solo questa sintassi con le virgolette e punti e virgola "ge";"mi";"to"), invece se nei criteri metto il parametro [@pr] e digito la stringa nella maschera di input non mi esce niente. Funziona (sia dalla pagina aspx che dal database) solo se indico un solo valore ad es. "ge". E' possibile che sia una limitazione di Access? Se fosse così cosa mi suggerisci?

Grazie Mille!!!!

Brainkiller Profilo | Guru

Allora il problema è nel passaggio di parametro.
Secondo me passandolo così come ti dicevo non funziona.
Incolla un po' di codice o allegalo nel messaggio prossimo così guardo un po'.
Te l'ho detto per me è meglio ciclare sugli elementi della list fare una stringa e concatenarla.
Access non ha quella limitazione perchè la query che ti ho postato l'ho provata direttamente io quindi funziona per quello.

ciao
david

mo70 Profilo | Junior Member

Secondo te il tempo di elaborazione della pagina cambia molto se uso una stringa sql piuttosto che una stored procedure? Se la differenza è minima utilizzo la stringa!!!!

Ciao
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5