Newsgroup: it.comp.appl.access
Titolo: contatore su query (per caselle riepilogo)

Ciao a tutti,
forse la domanda è già stata posta e sul sito comune ho trovato un esempio
ma che va bene solo su recodset.
Un attimo che mi spiego meglio.
Avrei la necessità di inserire un campo contatore su una query parametrica
per dare un indice "artigianale" su una casella di riepilogo (e anche su una
sottomaschera).
Siccome non riesco a spigare bene il mio problema a parole provo a fare un
esempio:
Ho 2 tabelle:
1) TestataOrdini
2) Righe Ordini relazionata uno a molti con tabella precedente su IDTestata
Ordine.
Ogni record della tabella RigheOrdiniha un indice progressivo solo che
vorrei metterne uno (su una query) che i da il numero relativo alle righe
per ogni testata e cioè:
se ho due TestateOrdini A e B e ogni testata ha tre righeordine (che avranno
indice 1 2 3 4 5 6 (contatore) nella query vorrey avere:
IDtestata            IDRiga        (mionuovocontatore)
A                        1                   1
A                        2                   2
A                        3                   3
B                        4                   1
B                        5                   2
B                        6                   3
Spero di essere stato sufficientemente chiaro.
Grazie a tutti.
Ciao

 ha scritto nel messaggio
news:FfaU9.109574$Ou4.3...@twister2.libero.it...

Allora la QRY genera un Recordset........!
Tu usi la QRY in modalità VisualizzaFoglioDati..????
Inserisci nella 3° colonna (mionuovocontatore) del QBE la Funzione seguente
che inserirai in un Modulo e ti vengono numerati progressivamente i Records.
Per inserirla digita al posto del nome del campo di riferimento
"=GerRecNum()"
Public Function GetRecNum() As Long
'==========================================================================
'Name      : GetRecNum()
'Purpose   :
'Author    : Maurizio Borrelli
'Web_Site  : 
http://digilander.iol.it/ik2zok/
'E.Mail    : 
ik2...@libero.it
'Date      : 01 febbraio 2002
'Called by :
'Calls     :
'Inputs    :
'Output    : Posizione assoluta del record corrente+1
'==========================================================================
  On Error GoTo erh
  With CodeContextObject.RecordsetClone
    If Not (.BOF And .EOF) Then
      .Bookmark = CodeContextObject.Bookmark
      GetRecNum = .AbsolutePosition + 1
    End If
  End With
ext:
  Exit Function
erh:
  GetRecNum = 0
End Function
@Alex.

 ha scritto nel messaggio
news:nlaU9.109035$TC5.3...@twister1.libero.it...

Ciao Alex,
ho provato la funzione che mi hai dato e noto che funziona per darmi la
posizione assoluta ma, sullla query che viene usata come sorgente per una
sottomaschera a maschere continue o una casella di riepiogo  sulle quali ho
sia i dati della Testata e a seguire quelli delle righe (con ovvia
ripetizione per ogni riga della casella di riepiologodi alcuni dati della
testata) avrei bisogno che "mionuovocontatore" riparta da 1 ad ogni cambio
testata. (la casella di riepilogo non è limitata ad un'unica TestataOrdine
ma me li dà tutti in sequenza).
Non so se mi sono spiegato.
Al momento sto pensando di aggiungere un campo sulla tabella righe da
controllare via codice sull'evento prima di aggiornare che mi dia la
posizione relativa all'ordine specifico. Questo purtroppo mi crea problemi
se viene cancellato a posteriori un record della tabella RigheOrdine.
Grazie e ciao
Jef

 ha scritto nel messaggio
news:QzaU9.109631$Ou4.3...@twister2.libero.it...

Ah...,ma allora devi eseguire dei RAGGRUPPAMENTI e numerare quelli...!!!
La funzione che ho allegato va ancora bene, solo c'è da inserirgli qualche
variante,
cioè il controllo Testata, se noti si fa uso di DAO con l'utilizzo di
RecordsetClone.
Puoi approfittare di questo, in quanto hai l'esatta composizione della QRY,
quindi
controllando CodeContextObject.RecordsetClone.Fields("CampoNomeTestata")
sei in grado di azzerare il contatore quando vuoi....!
@Alex.