Newsgroup: it.comp.appl.access
Titolo: query difficile da impostare

Buongiorno a tutti,
ho una tabella di prodotti venduti, comprensiva di data di vendita.
Quello che mi è stato chiesto, è di generare un report che mostri il
venditore che per primo è riuscito a vendere 10 pezzi di un
determinato prodotto.
I dati di base li ho tutti, in tabella... ma non so proprio come
impostare una cosa del genere in Access... potete aiutarmi?
Grazie,
Panathos

Panathos ha scritto:

creati una query e metti tutti i campi che vuoi poi
nel criterio sotto n° pezzi venduti metti >=10 ti mostra quello che ha 
raggiunto 10 o maggiore di 10

 raggiunto 10 o maggiore di 10
Scusa ma non mi sono spiegato: il problema è fare la "classifica" di
chi è arrivato primo (in ordine di tempo), in un determinato periodo,
ad avere 10 record in tabella. Come si fa un report su questa roba???
Questo è il problema, non so come impostarlo.

 wrote in message 
news:1143337803....@u72g2000cwu.googlegroups.com...
Scusa ma non mi sono spiegato: il problema è fare la "classifica" di
chi è arrivato primo (in ordine di tempo), in un determinato periodo,
ad avere 10 record in tabella. Come si fa un report su questa roba???
Questo è il problema, non so come impostarlo.
Prova così:
===============================
Private Sub Command33_Click()
'
' È richiesta la tabella t_Vendite coi campi:
'       Prodotto, Text(255)
'       DataVendita, Date/Time
'       Venditore, Text(255)
'
' Viene creata la tabella TT_Classifica che, successivamente ordinata
' per data, esporrà i Venditori ordinati per data raggiungimento target.
'
Dim db As Database, SQL As String
Dim RS1 As Recordset, RS2 As Recordset, RS3 As Recordset
Dim Prodotto As String, NumVendite As Long, i As Long
' Definizioni
'--------------------
Prodotto = "Mele"
NumVendite = 3
'--------------------
Set db = CurrentDb
On Error Resume Next
DoCmd.DeleteObject acTable, "TT_Classifica"
On Error GoTo 0
SQL = "CREATE TABLE TT_Classifica "
SQL = SQL & "([Venditore] Text(255), "
SQL = SQL & "[DataTarget] DateTime);"
db.Execute SQL
SQL = "SELECT t_Vendite.Venditore FROM t_Vendite GROUP BY 
t_Vendite.Venditore;"
Set RS2 = db.OpenRecordset(SQL)
Set RS3 = db.OpenRecordset("TT_Classifica")
Do Until RS2.EOF
    SQL = "SELECT t_Vendite.Prodotto, t_Vendite.DataVendita, 
t_Vendite.Venditore "
    SQL = SQL & "FROM t_Vendite WHERE (((t_Vendite.Prodotto)='" & Prodotto & 
"') "
    SQL = SQL & "AND ((t_Vendite.Venditore)='" & RS2![venditore] & "')) "
    SQL = SQL & "ORDER BY t_Vendite.DataVendita;"
    Set RS1 = db.OpenRecordset(SQL)
    Do Until RS1.EOF
        For i = 1 To NumVendite - 1
            RS1.MoveNext
        Next
        RS3.AddNew
        RS3![venditore] = RS1![venditore]
        RS3![DataTarget] = RS1![DataVendita]
        RS3.Update
        Exit Do
    Loop
    RS2.MoveNext
Loop
End Sub
========================================
Bruno 

 Private Sub Command33_Click()
[...]
Ripensandoci, qualche controllo d'errore non guasta.
Sostituisci il Do... Loop interno con:
===========================
    Do Until RS1.EOF
        For i = 1 To NumVendite - 1
            On Error Resume Next
            RS1.MoveNext
            On Error GoTo 0
        Next
        If Not RS1.EOF Then
            RS3.AddNew
            RS3![venditore] = RS1![venditore]
            RS3![DataTarget] = RS1![DataVendita]
            RS3.Update
        End If
        Exit Do
    Loop
============================
Bruno