giaconstefano
01-07-2009, 11:16
Sono alle prime armi, ed il problema è più grande di me, aiutatemi.
In un primo form ho due campi: Paese (IT, DE, FR, ES, ecc.) ed Anno (da 1 a 20), che possono prendere un valore qualsiasi tra i paesi previsti e le annulità.
In una tabella "Tasse" ho la lista delle tasse (dall'anno 1 all'anno 20) per tutti i vari Paesi per tutti gli anni.
Vorrei trasportare in un terzo campo del primo form, la tassa da pagare prelevata dalla tabella "Tasse", a seconda dei vari valori che possono prendere i due campi Paese ed Anno .
Detta così è semplice, ma finora non ci sono riuscito.
Ringrazio tutti anticipatamente.
Ciao.
john_revelator
01-07-2009, 11:56
Se ho capito bene ti basta usare la funzione dlookup.
Dai uno sguardo al file di esempio che ti ho fatto. :)
http://myfreefilehosting.com/f/a8d2b0db66_0.16MB
edit. Se l'esempio ricalca ciò che ti serve bisogna migliorare un pochino il codice. Quanto meno verificare che entrambe le voci siano compilate.
Private Sub Comando4_Click()
If IsNull(cmbPaese) Or IsNull(cmbAnno) Then
MsgBox ("Specificare sia l'anno che il paese")
Exit Sub
End If
Me![txtTassa] = DLookup("[tassa]", "tasse", "[paese] ='" & Me![cmbPaese] & "' And [anno]=" & Me![cmbAnno])
End Sub
giaconstefano
01-07-2009, 13:14
Grande! john_revelator
E' proprio quello che cercavo.
La prossima modifica che cercherò di eseguire è di modificare la tabella tasse in cui un paese compaia solo in una riga con nelle successive colonne tutte le annualità! (Oso troppo nel chiedere un aiutino?;)
Grazie ancora delle superveloce e competente risposta!
Stefano
john_revelator
01-07-2009, 13:23
Grande! john_revelator
E' proprio quello che cercavo.
La prossima modifica che cercherò di eseguire è di modificare la tabella tasse in cui un paese compaia solo in una riga con nelle successive colonne tutte le annualità! (Oso troppo nel chiedere un aiutino?;)
Grazie ancora delle superveloce e competente risposta!
Stefano
Non chiedi troppo ma non ho proprio capito cosa devi fare. :fagiano:
giaconstefano
01-07-2009, 14:56
Grazie della comprensione!
Tanti records in ciascuno dei quali il primo campo è il Paese (in prima colonna)
e nei campi successive le tasse (dalla seconda alla n-esima colonna).
Grazie della collaborazione, è la prima volta che trovo tanta disponibilità e competenza!
Stefano
john_revelator
01-07-2009, 17:01
Ma che forum hai frequentato finora. :)
Se fossi in te eviterei di fare la trasposizione delle righe in colonne. Al fine della gestione del database è molto più pratica la struttura che hai adesso. Se proprio volessi farla dovresti fare così:
ti crei una nuova tabella (che nel mio esempio chiamo anni) nella quale inserisci un campo contatore, un campo paese, e 20 campi con nomi anno1,anno2,...anno20. A questo punto vai in visualizzazione sql e fai una query così
insert into anni (paese,anno1,anno2,anno3,anno4,anno5,anno6,anno7,anno8,anno9,anno10,anno11,anno12,anno13,anno14,anno15,anno16,anno17,anno18,anno19,anno20)
SELECT paese,
sum(IIf(anno=1,tassa,0)) AS anno1,
sum(IIf(anno=2,tassa,0)) AS anno2,
sum(IIf(anno=3,tassa,0)) AS anno3,
sum(IIf(anno=4,tassa,0)) AS anno4,
sum(IIf(anno=5,tassa,0)) AS anno5,
sum(IIf(anno=6,tassa,0)) AS anno6,
sum(IIf(anno=7,tassa,0)) AS anno7,
sum(IIf(anno=8,tassa,0)) AS anno8,
sum(IIf(anno=9,tassa,0)) AS anno9,
sum(IIf(anno=10,tassa,0)) AS anno10,
sum(IIf(anno=11,tassa,0)) AS anno11,
sum(IIf(anno=12,tassa,0)) AS anno12,
sum(IIf(anno=13,tassa,0)) AS anno13,
sum(IIf(anno=14,tassa,0)) AS anno14,
sum(IIf(anno=15,tassa,0)) AS anno15,
sum(IIf(anno=16,tassa,0)) AS anno16,
sum(IIf(anno=17,tassa,0)) AS anno17,
sum(IIf(anno=18,tassa,0)) AS anno18,
sum(IIf(anno=19,tassa,0)) AS anno19,
sum(IIf(anno=20,tassa,0)) AS anno20
FROM tasse
GROUP BY paese
giaconstefano
01-07-2009, 17:20
Ottimo!
Prometto di seguire di più il forum.
Grazie infinite.
Stefano
john_revelator
01-07-2009, 17:30
Prego. Ribadisco il consiglio di lasciare la struttura inalterata.
Comunque contento tu, contenti tutti. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.