Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 4 123 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38

Problema con Maschera e Report di un database

  1. #1
    Endar non è in linea Scolaretto
    Post
    53
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve a tutti,
    sono un nuovo utente del forum e spero riusciate a darmi una mano su come risovere un paio di problemi su un database.
    Attualmente sto modificando un database esistente, realizzato in passato da altri, per adattarlo ad alcune nuove esigenze. Ho alcuni problemi che posso risolvere solo tramite codice, solo che ho alcune difficoltà perché finora ho scritto solo qualche semplice riga di codice in vba per excel e mai per access. Lo sto studiando su alcuni testi, anche inglesi, però ho paura di non riuscire a trovare rapidamente la soluzione.
    I problemi riguardano una maschera di inserimento dati e la restituzione di un report legato a quella maschera. Partirei dalla maschera ed una volta trovata la giusta soluzione con il vostro aiuto passerò ad esporre meglio il problema sul report.
    Alcune info sul database:
    In una tabella (T1) inserisco l'elenco delle aree che appartengono a ciascuna sede. Le aree possono avere anche lo stesso nome, ma appartenere a sedi diverse. Quindi la tabella ha: un IDarea; un campo "sede" che richiama l'elenco delle sedi tramine una caselle combinata dalla tabella (T0) relativa alle sedi; un campo "area" nel quale inserisco le aree.
    Poi ho la tabella (T2) sulla quale agisce la maschera per la quale ho bisogno di un aiuto. Questa tabella prevede l'inserimento di una serie di dati che sono associati a ciascuna area. La tabella ha dunque: un ID; il campo "area" (casella combinata che richiama il valore dalla tabella T1); una serie di campi in successione con i dati da associare a quell'area. Capiterà che per aree uguali dovrò inserire dati diversi quindi avrò una serie di record che avranno la stessa area ma dati differenti.

    Il problema che ho sulla maschera di inserimento dati è il seguente:
    Nell'intestazione ho inserito un campo che richiama l'elenco delle sedi dalla tabella dedicata (T0) in modo che l'utente finale può scegliere su quale sede agire. Poi nel corpo vi è la parte di inserimento dei dati che presenta tutti i campi della tabella T2. Quello che vorrei ottenere è la possibilità di visualizzare nel campo area solo l'elenco delle aree relative alla sede scelta in intestazione. Un filtro in pratica. Il filtro dovrebbe agire in questo modo:
    - Una volta scelta la sede, se non ho ancora inserito alcun dato per qualsiasi area mi deve apparire solo il primo record nel quale andare a inserire i dati. Ovviamente il campo area dovrà mostrare solo le aree relative a quella sede.
    - Una volta scelta la sede, se avevo già inserito dati in funzione delle aree mi devono apparire tutti i record, in modo che possa andare ad aggiungere ulteriori record per quella sede.

    Ho cercato un po' nel forum per vedere qualche soluzione ed ho trovato un filtro che però non faceva al caso mio poiché questo richiamava in intestazione tutte le "aree", ma come detto io posso avere anche aree con lo stesso nome che appartengono a sedi diverse perciò sarebbe stato inappliccabile, o almeno non sono riuscito a capire come adattarlo al caso in questione.
    Spero di esser stato chiaro nella descrizione della problematica. Aspetto vostri consigli o soluzioni e vi ringrazio in anticipo per l'attenzione.

  2. #2
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    Post
    2,058
    Like Inviati  
    0
    Like Ricevuti  
    0
    quindi la tua situazione è questa:
    T0: COD_SEDE, DES_SEDE
    T1: COD_SEDE, COD_AREA, DES_AREA
    T2: ID, COD_AREA, campi accessori
    con T0-T1 (1-N) e T1-T2 (1-N)
    giusto? nel caso spero vivamente che COD_AREA della T1 sia univoco alla stregua di COD_SEDE della T0.

  3. #3
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Post
    3,097
    Like Inviati  
    0
    Like Ricevuti  
    1
    Benvenuto nel forum.

    Quote Originariamente inviato da Endar
    Poi ho la tabella (T2) sulla quale agisce la maschera per la quale ho bisogno di un aiuto. Questa tabella prevede l'inserimento di una serie di dati che sono associati a ciascuna area. La tabella ha dunque: un ID; il campo "area" (casella combinata che richiama il valore dalla tabella T1); una serie di campi in successione con i dati da associare a quell'area. Capiterà che per aree uguali dovrò inserire dati diversi quindi avrò una serie di record che avranno la stessa area ma dati differenti.
    Questo passaggio non mi è affatto chiaro. Perchè hai campi in T2 che vengono influenzati dal campo T1.IDArea? Potresti elencare tutti i campi di T2?

    Potresti dare una descrizione dei campi un po' come avrebbe accennato muttley005? Anche lì non mi sono chiare alcune cose.

  4. #4
    Endar non è in linea Scolaretto
    Post
    53
    Like Inviati  
    0
    Like Ricevuti  
    0
    Si sono campi univoci. Infatti io identifico se un'area appartiene ad una determinata sede utilizzando l'IDArea della tabella T1. Nello specifico la tabella T1 ha i seguenti campi:
    IDArea, IDsede (casella combinata), Nome_Area, Des_area

  5. #5
    Endar non è in linea Scolaretto
    Post
    53
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da OsvaldoLaviosa Visualizza il messaggio
    Benvenuto nel forum.


    Questo passaggio non mi è affatto chiaro. Perchè hai campi in T2 che vengono influenzati dal campo T1.IDArea? Potresti elencare tutti i campi di T2?

    Potresti dare una descrizione dei campi un po' come avrebbe accennato muttley005? Anche lì non mi sono chiare alcune cose.
    Tabella T0:
    IDSede, Nome_sede, Desc_sede

    Tabella T1:
    IDArea, IDSede (casella combinata che mostra Nome_sede), Nome_Area, Des_area

    Tabella T2:
    IDVR (Id iniziale); IDArea (casella combinata che mostra Nome_Area); IDCR (casella combinata da altra tabella); LD; Locale; Soggetti; Fattore, Riferimento
    Ultima modifica di Endar; 17-04-2015 11:03 

  6. #6
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    Post
    2,058
    Like Inviati  
    0
    Like Ricevuti  
    0
    per il resto di quello che hai scritto devi agire da VBA.
    Devi agire sull'evento "AfterUpdate" della tua casella combinata.
    se tu avessi avuto nella T2 anche il campo COD_SEDE avresti potuto semplicemente usare questo codice:
    Private Sub SceltaSEDE_AfterUpdate()
        Me.Filter = "COD_SEDE='" & Me.SceltaSEDE & "'"
        Me.FilterOn = True
    End Sub
    
    ma siccome mi sembra di capire che COD_SEDE non è sulla T2 per me ti basta modificare l'origine dati della form così
    SELECT T1.COD_SEDE, T2.* FROM T2 INNER JOIN T1 ON T2.COD_AREA = T1.COD_AREA;
    

  7. #7
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    Post
    2,058
    Like Inviati  
    0
    Like Ricevuti  
    0
    ok, ho postato che avevi risp ... ok ... è come ti ho detto (adattando i nomi dei campi)

  8. #8
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    Post
    2,058
    Like Inviati  
    0
    Like Ricevuti  
    0
    ed essendo ID numerici e non codici alfanumerici nel filtro togli gli apici

  9. #9
    Endar non è in linea Scolaretto
    Post
    53
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da muttley005 Visualizza il messaggio
    ed essendo ID numerici e non codici alfanumerici nel filtro togli gli apici
    Ok, grazie mille muttley. Ora provo a sistemare la maschera.

  10. #10
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Post
    3,097
    Like Inviati  
    0
    Like Ricevuti  
    1
    Quote Originariamente inviato da Endar
    Il problema che ho sulla maschera di inserimento dati è il seguente:
    Nell'intestazione ho inserito un campo che richiama l'elenco delle sedi dalla tabella dedicata (T0) in modo che l'utente finale può scegliere su quale sede agire. Poi nel corpo vi è la parte di inserimento dei dati che presenta tutti i campi della tabella T2. Quello che vorrei ottenere è la possibilità di visualizzare nel campo area solo l'elenco delle aree relative alla sede scelta in intestazione. Un filtro in pratica. Il filtro dovrebbe agire in questo modo:
    - Una volta scelta la sede, se non ho ancora inserito alcun dato per qualsiasi area mi deve apparire solo il primo record nel quale andare a inserire i dati. Ovviamente il campo area dovrà mostrare solo le aree relative a quella sede.
    Mi pare di capire che tu hai bisogno di un meccanismo che va sotto il nome in gergo di "caselle combinate a cascata". Digita queste parole chiave in Ricerca e troverai molti thread che ne parlano.

+ Rispondi al messaggio
Pagina 1 di 4 123 ... ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 6
    Ultimo Post: 30-06-2017, 09:22
  2. Stampa report - stampa maschera problema
    Da nanni_prippa nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 09-02-2017, 21:51
  3. Problema stampa tutti i report in maschera filtrata
    Da eatsleepriderepeat nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 21-11-2016, 21:30
  4. database che non apre maschere e report
    Da atelierinformatico nel forum Microsoft Access
    Risposte: 23
    Ultimo Post: 06-10-2015, 03:29
  5. Problema Report Database
    Da Pablito9001 nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 16-11-2013, 21:53