"Bug" strano su DB

di il
5 risposte

"Bug" strano su DB

Buongiorno,

considerando che sto da sabato a pensarci e non riesco assolutamente a capire il perchè o per cosa, l'ho chiamato Bug, ma son sicuro ci sarà qualche errore involontario e di dimenticanza che ho fatto. Vi spiego subito,

Ho una maschera che prende i dati da una tabella, all'interno ci sono 4 caselle di testo collegate ai campi della tabella, 11 caselle di testo non associate ed infine un controllo strutture a schede all'interno dove ci sono otto sottomaschere

ogni sottomaschera è collegata con l'id univoco alla maschera principale, le sottomaschere sono in visualizzazione foglio di calcolo come impostazione predefinita, e nel piede di ciascuna sottomaschera effettuo la somma dei dati presenti nel corpo della stessa per poi trasmetterli alla maschera principale in uno di quelle 8 caselle di testo non associate, tutte con nome univoco.

Adesso viene il problema, all'inizio nell'evento current della sottomaschera avevo questo codice

Private Sub Form_Current()
	me.Parent!CC = me.TCarC
End Sub

e funzionava all'inizio, poi all'improvviso ha smesso

Ho provato a risolvere in modo differente, dalla maschera principale nell'evento current  richiamavo il valore del campo totale nella sottomaschera

Private Sub Form_Current()
	Debug.Print "TotCli " & Me.[CF_CarichiC]![TCli] & " €"
	Debug.Print "TCAcc " & Me.[CF_IncassiC]![TCAcc] & " €"
	Me.CC = Me.[CF_CarichiC]![TCli]
	Me.AC = Me.[CF_IncassiC]![TCAcc]
End Sub

adesso il fatto strano è che ci sono 5 sottomaschere, con 3 va bene in entrambi i modi, e le altre 2 "andava bene"

la cosa strana è che se anche nella sottomaschera il valore del campo totale mi risulta null, ma se da vba inserisco un break per verificare in corso d'opera i dati ed i calcoli, esegue tutto e funziona e sinceramente non riesco a capire come mai questo "problema"

se vedo la sottomaschera in modalità normale il totale a piede funziona bene. Cosa mi son dimenticato e non ho notato?

grazie a tutti per l'aiuto

5 Risposte

  • Re: "Bug" strano su DB

    14/07/2025 - Nemesi ha scritto:

    Ho una maschera che prende i dati da una tabella

    Come si chiamano tabella e maschera?

    14/07/2025 - Nemesi ha scritto:

    all'interno ci sono 4 caselle di testo collegate ai campi della tabella

    Come si chiamano?

    14/07/2025 - Nemesi ha scritto:

    11 caselle di testo non associate

    Come si chiamano?

    14/07/2025 - Nemesi ha scritto:

    ed infine un controllo strutture a schede all'interno dove ci sono otto sottomaschere

    Come si chiamano? Perché hai 8 sottomaschere?

  • Re: "Bug" strano su DB

    14/07/2025 - OsvaldoLaviosa ha scritto:

    14/07/2025 - Nemesi ha scritto:

    Ho una maschera che prende i dati da una tabella

    Come si chiamano tabella e maschera?

    CF_Chiusura - CF_Chiusura

    14/07/2025 - Nemesi ha scritto:

    all'interno ci sono 4 caselle di testo collegate ai campi della tabella

    Come si chiamano?

    ID_CF_Chiusura (numerazione automatica)

    CF_ID_CliFor (numerico)

    CF_Data (Data/ora)

    CF_Note (Testo lungo)

    14/07/2025 - Nemesi ha scritto:

    11 caselle di testo non associate

    Come si chiamano?

    CC - AC - CF - AF - CT - AT - CR - AR 

    qui riprendo i totali delle singole sottomaschere

    TAvere - TDare - TPrev_CF

    qui effettuo dei calcoli tra le altre 8 caselle

    14/07/2025 - Nemesi ha scritto:

    ed infine un controllo strutture a schede all'interno dove ci sono otto sottomaschere

    Come si chiamano? Perché hai 8 sottomaschere?

    CF_CarichiC - CF_CarichiF - CF_CarichiT - CF_CarichiR - CF_IncassiC - CF_Incassi F - CF_IncassiT - CF_IncassiR

    Sono sottomaschere basate su query per estrapolare i dati dalle relative tabelle e renderle selezionabili dalla maschera principale

    per effettuare le chiusure relative all'anagrafica

  • Re: "Bug" strano su DB

    Passi la struttura tabelle...che non mi convince. Invece di IMPOSTARE valori nelle caselle di testo, in ogni casella di testo puoi direttamente scrivere la sintassi di calcolo, prelevando i valori dalle query corrispondenti, penso a qualcosa del tipo:
    =DSum("[NomeCampo]";"NomeQuery")

  • Re: "Bug" strano su DB

    15/07/2025 - OsvaldoLaviosa ha scritto:

    Passi la struttura tabelle...che non mi convince. Invece di IMPOSTARE valori nelle caselle di testo, in ogni casella di testo puoi direttamente scrivere la sintassi di calcolo, prelevando i valori dalle query corrispondenti, penso a qualcosa del tipo:
    =DSum("[NomeCampo]";"NomeQuery")

    Grazie Osvaldo,

    certo assegnando il valore al campo facendo la somma con dsum sull'evento current funziona perfettamente, anche se mi rimane sempre "strano" perchè il semplice richiamare il valore da un campo nella sottomaschera non funzioni, preferivo prendere i valori per evitare di appesantire troppo la maschera, ma sarà una fissa sbagliata mia da persona che ancora apprende...

    Però proprio su questo punto, visto che mi piace poter imparare e confrontarmi in merito, sono curioso di capire cos non ti convince della struttura con le tabelle, in modo da poter avere uno spunto per ragionarci su ed eventualmente trovare ulteriori idee che non mi sono passate per la testa, come quella della somma in effetti

  • Re: "Bug" strano su DB

    15/07/2025 - Nemesi ha scritto:

    dsum sull'evento current

    Non devi stuzzicare alcun evento. L'espressione =DSum la scrivi direttamente nella proprietà Origine controllo.

    15/07/2025 - Nemesi ha scritto:

    preferivo prendere i valori per evitare di appesantire troppo la maschera

    È esattamente il contrario. Codice VBA appesantisce la maschera rispetto all'espressione diretta nella casella di testo.

    15/07/2025 - Nemesi ha scritto:

    cosa non ti convince della struttura con le tabelle

    CF_Chiusura - CF_Chiusura. Generalmente si dà un nome al plurale alla tabella. La sua denominazione...non capisco a cosa fa riferimento.
    Rispetto alla tua "chiara" descrizione e alla problematica che hai esposto, non mi sento di dire nulla.
    Per capirci meglio sarebbe utile conoscere:
    - di cosa parla il database
    - quali tabelle/campi usi (ripeto, servono nomi comprensibili)
    ...però qui il discorso diventa diverso...per approfondire occorre aprire una nuova discussione, preferibilmente nella sezione "Progettazione database".

Devi accedere o registrarti per scrivere nel forum
5 risposte