Salve! Sono un utilizzatore occasionale di Access con discrete basi teoriche di DB relazionali, ma poca pratica. Sto preparando un db dove registrare i progetti seguiti dalla società dove lavoro.
Per ciascun progetto mi è necessario identificare ciascuna "Categoria opere" toccata dal progetto (in tutto sono quasi 50 categorie possibili) e registrare l'importo dei lavori per ciascuna categoria toccata dal progetto (in maniera da poter fare ricerche per trovare progetti che hanno un almeno un importo X per la categoria Y).
Sto quindi cercando di costruire una maschera per l'inserimento dei dati relativi ai progetti che mostri le caselle per registrare gli importi solamente per le categorie rilevanti in ciascun singolo progetto.
Visto il gran numero di categorie possibili, ho preparato una casella combinata che va a pescare i nomi delle categorie dalla tabella "CategorieOpere" (dove ho registrato gli ID delle categorie e il loro nome per esteso). Questa casella ammette valori multipli.
Ora, vorrei ottenere che nella maschera apparissero i campi per inserire l'importo corrispondente ai lavori solamente per le categorie di opere selezionate nella precedente casella.
Ho cercato a lungo nelle discussioni già presenti nel forum ma quello che sono riuscito a trovare finora non sembra risolvere il mio problema. Per esempio, sulla base di quanto visto nel forum (es. qui
https://www.iprogrammatori.it/forum-programmazione/access/formattazione-condizionale-controlli-maschera-t14693.html, qui
https://www.iprogrammatori.it/forum-programmazione/access/nascondere-campi-pulsanti-una-maschera-t20164.html e qui
https://www.iprogrammatori.it/forum-programmazione/access/per-negozio-t17598.html#p8498654) ho fatto cose di questo tipo:
Private Sub Form_Current()
Me![Categoria opere].SetFocus
Me![Importo OG1].Locked = (Me![Categoria opere].Value <> "OG1")
End Sub
e
Private Sub Form_Current()
Me![Categoria opere].SetFocus
Me![Importo OG1].Locked = (Not Me![Categoria opere].Value = "OG1")
End Sub
Più numerose altre varianti, che come queste non funzionano.
L'avviso che mi dà Access è: Errore di run-time '13' - Tipo non corrispondente.
Non riesco a capire se è solo un problema di sintassi (che cerco di comporre prendendo qui e là dagli esempi che trovo in rete) oppure - che ne so - magari non è possibile richiedere questo controllo su una casella combinata.
La mia idea, una volta trovato come operare questo comportamento condizionale nella maschera, è di replicarlo per tutti i campi "Importo OGY" - o c'è qualche maniera più intelligente di fare questa cosa?
Chiedo umilmente lumi a chi ne sa di più e di seguito fornisco maggiori informazioni su come ho cosruito finora il DB.
-Tabelle-
CategorieOpere:
ID (in forma OG1, OG2 ecc...)
Nome esteso (testo)
Progetti:
Titolo (testo)
Descrizione (memo)
...
Categoria opere (realizzato come Ricerca guidata sulla tabella CategorieOpere, lasciando in vista l'ID)
Importo OG1 (valuta)
Importo OG2
...
Lavoro con MS Access 2010.
Grazie mille!
Marco
PS: nel comporre questo messaggio mi sono accorto che il link al regolmaneto (sotto il riquadro di composizione) non funziona.