Newsgroup: it.comp.appl.access
Titolo: Raggruppamento campi

Salve a tutto il NG,
ho 2 tabelle:
1)Prodotti (IdProdotto,CodiceProdotto,CategoriaProdotto)
2)CategorieProdotto (IdCategoria,IdProdotto,Categorie)
da come si evince la seconda tabella contiene tutti i tipi di categorie
nel quale rientra un determinato tipo di prodotto (es. A,B,C,D,E).
Dopo aver inserito il prodotto apro una maschera correlata nel quale per
quel prodotto inserisco le varie categorie, (una categoria per record),
una volta chiusa la maschera categorie però nel campo della maschera
prodotto, indicante "categorie", vorrei visualizzare le categorie inserite
nella precedente (es se nella form categorie avevo inserito A,B,E) il
campo categorie della form prodotti vorrei mi visualizzasse "A+B+E",
putroppo ho la necessità di inserire una categoria per ogni record per
evitare inserimenti liberi.
Vorrei d'altro campo visualizzare il riepilogo di tutte le categorie di
quel prodotto nella maschera principale, quando lo richiamo, per evitare
di aprire 2 maschere tutte le volte che devo visualizzarlo.
Grazie
Lucio 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Lucio 
Dovresti mettere nella maschera prodotto una sottomaschera che mostri
tutte le categorie del prodotto visualizzato, cosě appena hai finito di
inserirle ti basta fare il requery della sottomaschera per vederle.
Oppure se le vuoi per forza tutte in un'unica casella ti scrivi una
funzione che dato l'ID_prodotto apre un recordset e genera un'unica
stringa tipo "A+B+E" come volevi tu, tipo
  public function categorie(ID_prodotto as long) as string
Namor
-- 
namor at inwind punto it


 Namor
Sono a secco...
-- 


 Sono a secco...
E' ora di cominciare.
Apri un recordset che ti dia solo i record con l'ID che ti serve (č come
una query) e lo scorri prendendo le varie categorie e accodandole ad una
stringa che sarŕ il risultato della funzione:
public function categorie(ID_prodotto as long) as string
dim Rst as dao.recordset, Risult as string
set rst=currentdb.openrecordset("SELECT [categoria] FROM [tabella] " & _
        "WHERE ID_prodotto=" & ID_Prodotto & " ORDER BY [categoria];")
risult=""
with rst
  .movefirst
  while not .eof
    risult=risult & nz(!categoria,"")
    .movenext
  wend
end with
rst.close:set rst=nothing
categorie=risult
end function
La salvi in un modulo e la richiami in una textbox nella maschera, con la
formula =categorie(ID_Prodotto)
Richiede il riferimento alla libreria DAO. Cerca sulla guida openrecordset
e movefirst/last/next/ecc... per capire come funzionano, anche se si
commentano da soli.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 


 > Sono a secco...



Ho risolto egregiamente...
Se non fosse per un piccolo problemino;
per visualizzare il campo + nella casella di testo ho fatto cosě:
risult=risult & nz(categoria, "") & "+"
il problema che mi mette il + anche alla fine, ovvero:
piuttosto che "A+B+C", "A+B+C+".
Senza cercare la luna nel pozzo...
Si puň in qualche maniera risolvere?
Grazie
Lucio
-- 


 Lucio
Hai due modi:
o fai un test e non lo metti all'inizio:
  risult=risult & iif(risult="","","+") & nz(!categoria,"")
o lo metti sempre e alla fine togli l'ultimo:
  if len(risult)>1 then categorie=left(risult,len(risult)-1)
Consiglio la seconda che viene eseguita una volta sola e non reiterata nel
ciclo.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
