|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
[VBA Access] Prelevare valore da un campo indicato da due variabili
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.
__________________
STEFANO66 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
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. Codice:
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
Ultima modifica di john_revelator : 01-07-2009 alle 13:06. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
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
__________________
STEFANO66 |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
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
__________________
STEFANO66 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
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ì Codice:
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 |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
Ottimo!
Prometto di seguire di più il forum. Grazie infinite. Stefano
__________________
STEFANO66 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Prego. Ribadisco il consiglio di lasciare la struttura inalterata.
Comunque contento tu, contenti tutti. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:03.



















