Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Problema con database condiviso

  1. #1
    FrancescoZ non è in linea Scolaretto
    Buona sera
    ho una maschera principale di nome M_FASI_3_PROVA che richiama una maschera (M_COORD_COLL) con una serie di combo box con lo scopo di selezionare una serie di utenti tramite le combo box)
    Le due maschere si trasmettono informazioni tramite delle variabili globali.
    In particolare la prima maschera ha un tasto per richiamare la seconda comunicandole un ID che permette alla seconda di leggere i nomi da una tabella (T_ATTIVITA_GEN) da restituire alla prima.

    Il codice del tasto sulla prima maschera è il seguente:

    Private Sub C1_Click()
    ID_T_GEN = Me.AT6.Column(0)
    
    
        DoCmd.OpenForm "M_COORD_COLL"
    
    End Sub
    
    Al caricamento della seconda leggo in tabella per vedere se ci sono nomi associati all'ID passatomi dalla prima maschera e con questi carico la seconda form:

    Private Sub Form_Load()
    
    
    If ID_T_GEN <> 0 Then
        
        Me.C1 = DLookup("COGNOME_ASS", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.C2 = DLookup("COGNOME_ASS2", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.C3 = DLookup("COGNOME_ASS3", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.C4 = DLookup("COGNOME_ASS4", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.C5 = DLookup("COGNOME_ASS5", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
     '
    
            
            
        Me.CL1 = DLookup("COGNOME_COLL", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.CL2 = DLookup("COGNOME_COLL2", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.CL3 = DLookup("COGNOME_COLL3", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.CL4 = DLookup("COGNOME_COLL4", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
        Me.CL5 = DLookup("COGNOME_COLL5", "T_ATTIVITA_GEN", "ID = " & ID_T_GEN)
    
    end if
    
    Ora il tutto funziona se non divido il database.
    Appena divido il database in debug ho visto che me.c1 per esmpio viene valorizzato ma nella form non vedo il valore.

    Come è possibile?

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Scusa ma se i dati provengono tutti dalla stessa tabella... non si usano le funzioni di aggregazione per recuperare i valori dei campi... si apre un recordset che con 1 sola chiamata restituisce tutti i valori.
    Poi altra curiosità... perché se devi popolarli non associ la maschera alla tabella...?
    Chi valorizza [ID_T_GEN] su Load della Maschera...?

    Secondo me qualche cosa nell'impostazione di quello che ci esponi è poco chiaro e con possibili margini di errore strutturale.
    Ultima modifica di @Alex; 25-03-2021 07:44 
    ℹ️ Leggi di più su @Alex ...

  3. #3
    FrancescoZ non è in linea Scolaretto
    Grazie Alex della risposta.
    Descrivo meglio lo scenario: Ho creato una form (M_FASI_3_PROVA) per lo scambio di informazioni tra utenti in merito ad una determinata attività. In questa form dalla combo box AT6 scelgo l'attività di interesse e poi, mediante un tasto, richiamo una piccola form (M_COORD_COLL) per scrivere gli assegnatari per la gestione dell'attività.
    La form M_COORD_COLL è fatta da 10 combo box (legata ad una tabella di anagrafica degli assegnatari) da ognuna delle quali posso scegliere a chi affidare l'attività.
    Per fare questo ho realizzato quanto riportato sopra.
    Ho pensato a quanto mi consigli ma, utilizzando le combo box nella form (M_COORD_COLL) e non nella tabella (T_ATTIVITA_GEN) a cui la form si riferisce, non avrei l'effetto che vorrei.

    In merito all'utilizzo del recordset hai ragione, ho gestito male la cosa. Purtroppo ho provato ad usare il recordset ma il problema che con il db condiviso i valori sulla maschera non si vedono rimane.

    Pensavo che sbagliavo io nel valorizzare le combo box ma poi riflettendo perchè con db non diviso funziona e con quello diviso no?

    Sto facendo alcune prove. Se avreste qualche suggerimento da darmi potri indirizzare meglio le mie prove.

    Grazie mille

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da FrancescoZ Visualizza il messaggio
    Grazie Alex della risposta.
    Descrivo meglio lo scenario: Ho creato una form (M_FASI_3_PROVA) per lo scambio di informazioni tra utenti in merito ad una determinata attività. In questa form dalla combo box AT6 scelgo l'attività di interesse e poi, mediante un tasto, richiamo una piccola form (M_COORD_COLL) per scrivere gli assegnatari per la gestione dell'attività.
    La form M_COORD_COLL è fatta da 10 combo box (legata ad una tabella di anagrafica degli assegnatari) da ognuna delle quali posso scegliere a chi affidare l'attività.
    Per fare questo ho realizzato quanto riportato sopra.
    Ho pensato a quanto mi consigli ma, utilizzando le combo box nella form (M_COORD_COLL) e non nella tabella (T_ATTIVITA_GEN) a cui la form si riferisce, non avrei l'effetto che vorrei.
    Francamente non capisco... ma mi fermo.
    Quote Originariamente inviato da FrancescoZ Visualizza il messaggio
    In merito all'utilizzo del recordset hai ragione, ho gestito male la cosa. Purtroppo ho provato ad usare il recordset ma il problema che con il db condiviso i valori sulla maschera non si vedono rimane.

    Pensavo che sbagliavo io nel valorizzare le combo box ma poi riflettendo perchè con db non diviso funziona e con quello diviso no?
    Io non ho mai avuto problemi con le Linked Table... quindi affermare che sia un problema faccio fatica... mi verrebbe più facile pensare a qualche tuo errore in generale...
    Quote Originariamente inviato da FrancescoZ Visualizza il messaggio
    Sto facendo alcune prove. Se avreste qualche suggerimento da darmi potri indirizzare meglio le mie prove.

    Grazie mille
    No, anche perchè per capire come orientarti sarebbe utile capire quanta autonomia hai nel prodotto... altrimenti si rischi di darti suggerimenti che poi si faticano a concretizzare.
    ℹ️ Leggi di più su @Alex ...

  5. #5
    FrancescoZ non è in linea Scolaretto
    Ciao Alex
    ho seguito la tua dritta (spero di averla intesa bene) ed ho cambiato in tabella i campi dei referenti delle attività da textbox a combobox legando queste ultime alla tabella di anagrafica.
    Dopo ho creato la maschera della tabella T_ATTIVITA_GEN ed ho cancellato i campi che non mi interessano.
    Alla fine ho ottenuno una form simile a quella che avevo all'inizio però legata alla tabella.
    Al caricamento della form M_COORD_COLL appena ricreata passo il seguente codice:

    Private Sub Form_Load()
    
    Me.FilterOn = True
    Me.Filter = "ID = " & ID_T_GEN
    Me.Requery
    
    
    End Sub
    
    ed ora quando richiamo la form vedo correttamente i nomi delle persone associate all'attività in quanto vedo il dato già filtrato come richiesto dalla form chiamante.

    Il problema sorge se voglio aggiungere o modificare un referente in quanto il sistema non mi permette di farlo.
    Ho controllato se avessi il DATA ENTRY a YES e lo ho.

    A cosa potrebbe essere dovuto?
    Ultima modifica di FrancescoZ; 25-03-2021 10:39 

  6. #6
    FrancescoZ non è in linea Scolaretto
    Quote Originariamente inviato da FrancescoZ Visualizza il messaggio
    Ciao Alex
    ho seguito la tua dritta (spero di averla intesa bene) ed ho cambiato in tabella i campi dei referenti delle attività da textbox a combobox legando queste ultime alla tabella di anagrafica.
    Dopo ho creato la maschera della tabella T_ATTIVITA_GEN ed ho cancellato i campi che non mi interessano.
    Alla fine ho ottenuno una form simile a quella che avevo all'inizio però legata alla tabella.
    Al caricamento della form M_COORD_COLL appena ricreata passo il seguente codice:

    Private Sub Form_Load()
    
    Me.FilterOn = True
    Me.Filter = "ID = " & ID_T_GEN
    Me.Requery
    
    
    End Sub
    
    ed ora quando richiamo la form vedo correttamente i nomi delle persone associate all'attività in quanto vedo il dato già filtrato come richiesto dalla form chiamante.

    Il problema sorge se voglio aggiungere o modificare un referente in quanto il sistema non mi permette di farlo.
    Ho controllato se avessi il DATA ENTRY a YES e lo ho.

    A cosa potrebbe essere dovuto?
    Ho risolto. Avevo erroneamento impostato il Recordset type a snapshot.

  7. #7
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Temo che tu faccia una somma di cose concettualmente non sensate...
    Spiega a cosa serve questo...? (le azioni sono invertite, prima si applica la proprietà FILTER, poi si forza FILTERON).
    Me.FilterOn = True
    Me.Filter = "ID = " & ID_T_GEN
    Me.Requery
    
    La form la puoi aprire passando come parametro la WHERE CONDITION che fa quel lavoro in modo NATIVO... perchè tu lo vuoi fare su LOAD in modo così maldestro...?

    P.S. il Requery NON SERVE, se operi il FilerOn dopo la modifica di Filter.... insomma ho la quasi certezza tu abbia le idee poco chiare.
    Ultima modifica di @Alex; 25-03-2021 17:41 
    ℹ️ Leggi di più su @Alex ...

  8. #8
    FrancescoZ non è in linea Scolaretto
    Ho seguito il tuo consiglio. E' tutto più semplice.
    Grazie

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 6
    Ultimo Post: 30-06-2017, 09:22
  2. Database condiviso con doppia maschera
    Da leo1986pc nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 16-03-2016, 09:58
  3. Database SQL Express LocalDB condiviso
    Da salvatore76 nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 12-08-2014, 01:18
  4. Database sql o access condiviso on-line
    Da pauldomy nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 21-05-2011, 14:49
  5. Problema con Database condiviso
    Da zorretto nel forum Microsoft Word
    Risposte: 4
    Ultimo Post: 16-10-2006, 20:42