Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Itruzione SELECT da un Recordset
martedì 24 ottobre 2006 - 14.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mar 24 ott 2006 - 14:37
Inanzitutto buongiorno a tutti.
Ho aperto un recordset (Rs) con la seguente clausola SELECT:
Set rs = New ADODB.Recordset
With rs
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.CursorLocation = adUseClient
sqla=SELECT COD, COUNT(*) AS PALLETS, SUM(NCP) AS CP_TOT
FROM 2006
WHERE DRG_HRG>#1/1/2006# And DRG_HRG<=#10/24/2006 16:40:0# And PAL Like '**' And LEN Like '*A*'
GROUP BY COD;
.Open sqla, FrmMain.cnnStat
...
Ho associato il recordset (Rs) ad un DataGrid e fin qui tutto ok! Ho ottenuto circa 10000 record.
A questo punto in un TextBox dovrei visualizzare la somma totale della colonna PALLETS. Ora ho risolto il problema scorrendo il recordset e sommando il campo Fields("PALLETS"). Per risparmiare tempo però vorrei eseguire la somma applicando un'altra Query al recordset ottenuto. La query potrebbe semplicemente essere:
SELECT Sum(PALLETS) AS SommaDiPALLETS
FROM ???;
La domanda è: cosa devo inserire nella clausola FROM per fargli capire che deve eseguire la query sul recordset (Rs) precedentemente ottenuto.
Spero di essere stato chiaro.
Attendo il vostro aiuto....
Grazie!
Slave
Profilo
| Junior Member
101
messaggi | Data Invio:
mar 24 ott 2006 - 15:09
>Inanzitutto buongiorno a tutti.
>Ho aperto un recordset (Rs) con la seguente clausola SELECT:
>
> Set rs = New ADODB.Recordset
>
> With rs
> .CursorType = adOpenStatic
> .LockType = adLockOptimistic
> .CursorLocation = adUseClient
>
>sqla=SELECT COD, COUNT(*) AS PALLETS, SUM(NCP) AS CP_TOT
> FROM 2006
>WHERE DRG_HRG>#1/1/2006# And DRG_HRG<=#10/24/2006
>16:40:0# And PAL Like '**' And LEN Like '*A*'
>GROUP BY COD;
>
> .Open sqla, FrmMain.cnnStat
>
> ...
>
>Ho associato il recordset (Rs) ad un DataGrid e fin qui tutto
>ok! Ho ottenuto circa 10000 record.
>
>A questo punto in un TextBox dovrei visualizzare la somma totale
>della colonna PALLETS. Ora ho risolto il problema scorrendo il
>recordset e sommando il campo Fields("PALLETS"). Per risparmiare
>tempo però vorrei eseguire la somma applicando un'altra Query
>al recordset ottenuto. La query potrebbe semplicemente essere:
>
>SELECT Sum(PALLETS) AS SommaDiPALLETS
>FROM ???;
>
>La domanda è: cosa devo inserire nella clausola FROM per fargli
>capire che deve eseguire la query sul recordset (Rs) precedentemente
>ottenuto.
>
>Spero di essere stato chiaro.
>Attendo il vostro aiuto....
>Grazie!
>
dim stringa as string
stringa=" FROM 2006
WHERE DRG_HRG>#1/1/2006# And DRG_HRG<=#10/24/2006
16:40:0# And PAL Like '**' And LEN Like '*A*'
GROUP BY COD;"
sqla="SELECT COD, COUNT(*) AS PALLETS, SUM(NCP) AS CP_TOT" & stringa
"SELECT Sum(PALLETS) AS SommaDiPALLETS" & stringa
Sono solo uno sballato in un mondo di sballati....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mar 24 ott 2006 - 15:23
Provo e ti so dire.
Grazie mille!!
Slave
Profilo
| Junior Member
101
messaggi | Data Invio:
mar 24 ott 2006 - 15:40
>Provo e ti so dire.
>Grazie mille!!
>
>
ma figurati...fammi poi sapere e buona fortuna....
CIAO!
Sono solo uno sballato in un mondo di sballati....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mar 24 ott 2006 - 16:21
Credo che non funzioni o meglio non mi dia il risultato sperato. Forse mi sono spiegato male. Devo ottenere 1 solo record che è la somma della colonna PALLETS del recordset Rs precedentemente ottenuto, mentre in questo caso ottengo 1 sola colonna.
Slave
Profilo
| Junior Member
101
messaggi | Data Invio:
mar 24 ott 2006 - 17:33
>Credo che non funzioni o meglio non mi dia il risultato sperato.
>Forse mi sono spiegato male. Devo ottenere 1 solo record che
>è la somma della colonna PALLETS del recordset Rs precedentemente
>ottenuto, mentre in questo caso ottengo 1 sola colonna.
ah...be allora io farei una cosa del genere:
dim somma as integer 'dipende da che tipo di dati usi
do while not rs.eof
somma=somma+rs("PALLETS")
rs.movenext
loop
Sono solo uno sballato in un mondo di sballati....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mar 24 ott 2006 - 17:41
questa infatti è la soluzione che ho adottato, il problema è che fare un loop su recordset cosi' grandi appesantisce molto il ciclo del programma e volevo evitare.
Grazie cmq per l'interessamento, se qualcuno ha altre soluzioni...
Slave
Profilo
| Junior Member
101
messaggi | Data Invio:
mar 24 ott 2006 - 18:08
eh si...pero adesso che vedo anche la soluzione che ti ho proposto prima dovrebbe restituirti solo la somma e nn una colonna...non capisco perche restituisce una colonna...bho....prova cosi:
dim stringa as string
stringa=" FROM 2006
WHERE DRG_HRG>#1/1/2006# And DRG_HRG<=#10/24/2006
16:40:0# And PAL Like '**' And LEN Like '*A*'
;"
sqla="SELECT COD, COUNT(*) AS PALLETS, SUM(NCP) AS CP_TOT" & stringa & " GROUP BY COD"
"SELECT Sum(PALLETS) AS SommaDiPALLETS" & stringa
Sono solo uno sballato in un mondo di sballati....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mer 25 ott 2006 - 09:01
Non può funzionare perchè il campo Pallets non è presente in 2006, ma viene generato dalla prima query come COUNT(*) AS PALLETS (ogni record è un pallet). Io credo che bisognerebbe creare la query di una query, ma fino ad ora nessun risultato positivo.
Slave
Profilo
| Junior Member
101
messaggi | Data Invio:
mer 25 ott 2006 - 09:31
eh gia...e vero...ma scusa...crearti della query in access e leggere da quelle???
Sono solo uno sballato in un mondo di sballati....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
mer 25 ott 2006 - 09:54
ho provato ma il risultato finale è errato. Provo a fare altri test. Ma non è possibile in nessun modo inserire nell'opzione from il recordset appena creato in vb6? Altrimenti dovrei inserire i risultati ottenuti in un'altra tabella e fare la 2^ query su quella tabella ma mi sembra ridicolo.
fasol
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 27 ott 2006 - 11:52
allora dvi fare una qry con allinterno un altra qry
SELECT ....
FROM SELECT....
FROM.....
meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
ven 27 ott 2006 - 13:47
Provo! Mille grazie per l'interessamento
StefanoLep
Profilo
| Senior Member
248
messaggi | Data Invio:
ven 27 ott 2006 - 17:11
Solo un suggerimento, visto che ti serve aiuto per una query forse troverai aiuto più semplicemente se lo posti nella sezione dei database
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
ven 27 ott 2006 - 17:37
Grazie mille ad entrambi!!
Funziona!!!
Ora devo solo trovare una routine che ridimensioni in automatico le colonne di un DataGrid a seconda di quello che ci scrivo dentro. Avevo già scaricato qualcosa per HMSFlexGrid che però per il DataGrid non funziona. Avete suggerimenti?
fasol
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 27 ott 2006 - 17:48
i invii via e-mail quello che hai trovato x la flex grazie mille
meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
skibbino
Profilo
| Newbie
14
messaggi | Data Invio:
lun 30 ott 2006 - 08:51
inviato fammi sapere se l'hai ricevuto
fasol
Profilo
| Junior Member
125
messaggi | Data Invio:
lun 30 ott 2006 - 19:07
ok devo provarlo domani lo provo ti faro sapere cmq grazie 1000
meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
fasol
Profilo
| Junior Member
125
messaggi | Data Invio:
mar 31 ott 2006 - 09:58
segna il thread come risolto tanto per chiuderlo....
meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
Torna su
Stanze Forum
Elenco Threads
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 !