Maschera con due tabelle

di il
18 risposte

Maschera con due tabelle

Buongiorno, sono nuovo del Forum.
Vi spiego il mio quesito.
Ho una Maschera che mi visualizza i record di una tabella con Maschere continue... quindi come se fosse un report.
Questa Maschera punta ad una Tabella... la tabella COMMERCIALISTI... questa maschera ha una combobox che ha dei valori al suo interno che possono essere in comune con l'altra tabella che voglio aggiungere a questo "report" che si chiama AGRONOMI.

Sia la tabella Commercialisti che Agronomi hanno gli stessi campi... e denominati allo stesso modo.
Se vado su proprietà Maschera e poi clicco su Origine Record mi apre il generatore di Query che però al momento punta ai campi della tabella Commercialisti... non saprei quindi come UNIRE la tabella commercialisti con quella degli agronomi nella stessa maschera.

a voi...l'ardua sentenza
grazie

18 Risposte

  • Re: Maschera con due tabelle

    Non devi avere 2 tabelle che riportano gli stessi campi Cognome, Nome, Indirizzo ecc.... Devi avere una sola tabella Professionisti con l'aggiunta di un campo [QualificaProfessionale] che distingue se si tratta di Commercialista, Agronomo...eventualmente anche altro (Geometra, Ingegnere, Avvocato...).
  • Re: Maschera con due tabelle

    Ho capito.... però volevo tenere distinte le due cose...
    Infatti appena apri l'access ho creato un Menù con due sezioni... COMMERCIALISTI ED AGRONOMI ... se clicco su commercialisti mi entra in tutta la sezione a loro relativa.. e così anche per gli agronomi...
    Non c'è alcun modo?
  • Re: Maschera con due tabelle

    Secondo te potrei ovviare in questo modo?
    questa maschera potrei farla puntare ad una tabella generata da una query di accodamento... così ho tutte e due le funzioni di Agronomo e Commercialista insieme...?
  • Re: Maschera con due tabelle

    1. La TABELLA è UNA e si chiama Professionisti.
    2. Crea una query di selezione in cui importi la tabella Professionisti e poi sfrutti il Criterio sul campo QualificaProfessionale
    "Commercialista"
    Salva la query con nome Commercialisti
    3. Crea una query di selezione in cui importi la tabella Professionisti e poi sfrutti il Criterio sul campo QualificaProfessionale
    "Agronomo"
    Salva la query con nome Agronomi
  • Re: Maschera con due tabelle

    Ok fatto... poi cosa devo fare?.. ovvio che al momento le due query sono VUOTE perché la tabella ELENCOGENERALE (che tu chiami professionisti) è vuota.
  • Re: Maschera con due tabelle

    1. Crea una query di accodamento da Commercialisti in Professionisti, sfruttando tutti i campi "equivalenti", ossia tranne il campo chiave primaria IDCommercialista
    2. Nel campo QualificaProfessionale dovrai compilare Commercialista a tutti
    3. Ricicla la query di accodamento da Agronomi in Professionisti
    4. Nel campo QualificaProfessionale di questi ultimi scriverai Agronomo a tutti.
    5. Terminata questa fase di "normalizzazione" puoi eliminare la query di accodamento
    6. A piacere potresti creare una tabella Qualifiche (monocampo) e la relazione Qualifiche.Qualifica uno-a-molti Professionisti.Qualifica e compili tutte le categorie professionali che tu conosci e prevedi di trattare (per ora solo Commercialista e Agronomo...)
    7. Nella tabella Professionisti fai diventare il campo Qualifica una casella combinata. In questo modo sei sicuro di digitare un valore sempre uguale e immune da errori di digitazione
  • Re: Maschera con due tabelle

    Grazie mille.
    Ora ho la maschera che mi prende entrambe le tabelle in quanto queste due tabelle creano quella unica ELENCOGENERALE.
    Dentro l'elenco a fianco di ogni record ho due pulsanti... uno che mi consente di modificare la scheda del commercialista (mi apre la maschera commercialisti, tramite la MACRO APRI MASCHERA, e mi va a visualizzare la scheda di quel commercialista) e uno che elimina il record relativo a quel commercialista.

    Ora che la cosa si è fatta più complicata...e si sono aggiunti gli agronomi... ho creato una maschera per visualizzare le schede degli agronomi (uguale alla maschera per visualizzare la scheda dei commercialisti) e vorrei che quel pulsante puntasse alla MASCHERA o dei commercialisti o degli agronomi in base a quello che c'è scritto nel campo FUNZIONE che contiene.. o agronomo o commercialista.

    Praticamente il comando di apertura maschera dovrebbe essere.. aprimi la maschera dei commercialisti se nel campo funzione c'è scritto commercialisti... oppure.. aprimi la maschera Agronomi se nel campo funzione c'è scritto AGRONOMO.
  • Re: Maschera con due tabelle

    alessandro.vitale ha scritto:


    Ora ho la maschera che mi prende entrambe le tabelle in quanto queste due tabelle creano quella unica ELENCOGENERALE.
    Dopo il mio suggerimento di avere una tabella unica, le EX tabelle Commercialisti e Agronomi le devi eliminare.
    Hai messo il campo Qualifica in Professionisti (o ElencoGenerale)? Ti consiglio di usare i nomi-tabelle al PLURALE.

    Una volta assodato ciò, devi riprogettare la tua maschera e...a questo punto io non ho capito cosa vuoi fare.
  • Re: Maschera con due tabelle

    Lascia stare quanto ho scritto prima...
    Ora io ho una Maschera chiamata Maschera Generale che punta alla tabella ELENCO GENERALE.. così da contenermi sia gli agronomi che i commercialisti.
    Ho 2 menù uno dedicato alla sezione dei commercialisti e uno dedicato agli agronomi... dentro questi menù c'è un pulsante che mi apre la MASCHERA GENERALE. AL momento non mi fa differenza... quindi appena apro MSC Generale me la apre con i dati sia degli agronomi che dei commercialisti... ho provato ad inserire una MACRO nel pulsante di apertura della maschera nel menù degli agronomi.. una macro di apertura maschera... alla quale macro però vorrei dire di farmi vedere solo le schede dei record che hanno nel campo FUNZIONE il valore AGRONOMI ... e lo stesso vorrei farlo anche per aprire la MSC Generale solo per i record dei commercialisti
  • Re: Maschera con due tabelle

    La macro ApriMaschera--->[MASCHERA GENERALE] ha un argomento che si chiama Condizione WHERE. Dentro ci devi scrivere:

    Per il pulsante ApriCommercialisti
    [Qualifica] = "Commercialista"

    Per il pulsante ApriAgronomi
    [Qualifica] = "Agronomo"
  • Re: Maschera con due tabelle

    Ok ora se dovessi aprire la maschera non in base ad un testo fisso come Agronomi ma in base a quanto contenuto dentro un campo denominato COGNOME E NOME?
  • Re: Maschera con due tabelle

    alessandro.vitale ha scritto:


    in base a quanto contenuto dentro un campo denominato COGNOME E NOME?
    Condizione WHERE:
    [COGNOME E NOME] = [Maschere]![ELENCO GENERALE]![COGNOME E NOME]
  • Re: Maschera con due tabelle

    Benone... GRAZIE...
    (scusa ma con la tua immensa disponibilità sto mettendo a posto un po di errori)
    Ora ho una maschera con due CAMBOBOX a cascata... la prima con le provincie e la seconda con i comuni e funzionano alla grande... cioè.. se seleziono la provincia di Palermo mi da tutti i comuni della provincia di Palermo nella seconda combo....e mi filtra l'elenco secondo i criteri stabiliti
    Poi ho una casella di testo... nella quale vorrei eseguire una semplice ricerca testuale solo sul campo COGNOM E NOME della tabella... ma non riesco...
    I filtri vengono applicati tramite un pulsante che esegue un vba :
    Private Sub ApplicaFiltro_Click()
    On Error GoTo Err_ApplicaFiltro_Click
    
    Dim strFiltro As String
    
        If Len(Me.ELENCOCOMBPRO.Value & vbNullString) > 0 Then strFiltro = strFiltro & "PV=" & "'" & Me.ELENCOCOMBPRO.Column(0) & "' AND "
        If Len(Me.ELENCOCOMBCOMU.Value & vbNullString) > 0 Then strFiltro = strFiltro & "CITTA=" & "'" & Me.ELENCOCOMBCOMU.Column(0) & "'" & " AND "
        If Len(Me!Cercapernome & vbNullString) > 0 Then strWH = "COGNOME E NOME LIKE '*" & Me!Cercapernome & "'" & " AND "
        'If Len(Me.cboCercaArea.Value & vbNullString) > 0 Then strFiltro = strFiltro & "area=" & "'" & Me.cboCercaArea.Column(0) & "'" & " AND "
        'If Len(Me.cboCercaStato.Value & vbNullString) > 0 Then strFiltro = strFiltro & "stato_PC=" & "'" & Me.cboCercaStato.Column(0) & "'" & " AND "
        'If Len(Me.cboAnno.Value & vbNullString) Then strFiltro = strFiltro & "Year([DTD Entrata])=" & Me.cboAnno & " AND "
        'If Len(Me.DallaData.Value & vbNullString) Then strFiltro = strFiltro & "[DTD Entrata] between #" & Me.DallaData & "# AND "
        'If Len(Me.AllaData.Value & vbNullString) Then strFiltro = strFiltro & "#" & Me.AllaData & "# AND "
        If Len(strFiltro) > 0 Then strFiltro = Left(strFiltro, Len(strFiltro) - 5)
    
      ''  MsgBox strFiltro
        
        Me.Filter = strFiltro
        Me.FilterOn = True
    
    Exit_ApplicaFiltro_Click:
     Exit Sub
    
    Err_ApplicaFiltro_Click:
        MsgBox Err.Description
        Resume Exit_ApplicaFiltro_Click
    End Sub
    

    DOVE SBAGLIO^?
  • Re: Maschera con due tabelle

    alessandro.vitale ha scritto:


    DOVE SBAGLIO^?
    1) Non impieghi i tag-code (come previsto dal regolamento del forum quando si allega del codice);

    2) Chiediti cosa è strWH nel filtro ?
Devi accedere o registrarti per scrivere nel forum
18 risposte