Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    RE...

    Ciao ragazzi,
    rieccomi, ho provato ma sinceramente non ne esco da questo problema, il seguente codice che vi ho postato funziona, esegue la somma delle fatture pagate ma in qualsiasi data che inserisco.
    Code:
    S.Open "SELECT SUM(TOTALEFATTURA) FROM DB_FATTURE WHERE RIFERIMENTO LIKE 'PAGATA%' GROUP BY DATA_FATTURA BETWEEN # " & Label9 & "# AND #" & Label11 & "#", DB

    Quello che vorrei che lui facesse, è fare la somma delle fatture pagate ma in un determinato periodo, so' che lo già detto ma non so' dove sto' sbagliando.
    Gentilmente vi posto l'intero codice iniziale da dove ho preso spunto inizialmente per fare la somma di tutte le fatture (pagate e non pagate), vi chiedo di dagli un'occhiata e farmi capire come dovrebbe essere il codice giusto inserendo le date (Label9 e Label11).

    Private Sub Form_Activate()
    Label9 = Format(Label9.Caption, "mm/dd/yyyy")
    Label11 = Format(Label11.Caption, "mm/dd/yyyy")
    End Sub



    Private Sub CMD_SOLOPAGATE_Click()
    Dim DB As ADODB.Connection
    Dim S As ADODB.Recordset
    Dim strCnn As StringSet DB1 = OpenDatabase("C:\...\DB.mdb")

    S.Open "SELECT SUM(TOTALEFATTURA) FROM DB_FATTURE",DB
    Do While Not rst1.EOF
    TXT_PIVA.text = rst1.Fields("Piva").Value
    rst1.MoveNext
    Loop
    rst1.Close
    DB1.Close
    End Sub

    Grazie mille
    vrwclaudio

  2. #12
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Accantoniamo per il momento la questione delle date. Vedo un problema più importante.

    Tu esegui una query di selezione (SELECT SUM(TOTALEFATTURA)....) la quale, come suo dovere, restituisce un recordset ( S ) che, poiché la query usa una funzione di aggregazione (SUM), sarà composto da un solo record, con un solo campo, contenente la somma dei campi TOTALEFATTURA di tutta la tabella DB_FATTURE (strano nome per una tabella). Siccome nella query non hai assegnato un nome al campo risultante, questo potrà essere individuato, essendo l'unico, con S.Fields(0).

    Fatto questo, inizi un ciclo Do While... Loop su un altro recordset (rst1) che non si sa da dove spunta, e nel quale ad ogni giro metti il valore di un campo (Piva) sempre nella stessa TextBox (TXT_PIVA).

    A me sembra che ci sia un po' di confusione ben prima di arrivare alla questione della date; che ne dici?

  3. #13
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    RE...

    Ciao carissimo, sicuramente è come dici tu, ma ti posso garantire che dopo averlo testato, funziona e anche bene.
    E' chiaro che probabilmente ha bisogno di modifiche o altro, ma in tanto è quello che ho saputo "buttar giu'" studiando qua e là, infatti come hai potuto ben constatare non ho molta dimistichezza con le connessioni a db locali ma ci provo, sono aperto a qualsiasi critica costruttiva per imparare.
    vr-claudio

    PS: Grazie per l'attenzione che mi state dimostrando fino ad ora.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    ...sono aperto a qualsiasi critica costruttiva per imparare...
    Bene. E quindi, ripeto la domanda: che cos'è, da dove spunta e a cosa dovrebbe servire il recordset rst1 ?

  5. #15
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Pienamente ragione...

    Ciao Grumpy
    in effetti è stato un mio errore di trascrizione, non centra nulla rst1 ma va sostituito con S
    scusami ancora vr-claudio

  6. #16
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Il rischio degli... "errori di trascrizione" si riduce assegnando alle variabili dei nomi significativi. "S" o "rst1" non lo sono. Meno che mai DB_FATTURE che farebbe pensare forse ad un database mentre invece è una tabella.
    Credimi, queste non sono fisime o inutili pignolerie; la programmazione ha come presupposto che chi scrive il codice - ma anche chi lo legge - abbia sempre ben chiaro cosa sono gli oggetti trattati. Nel tuo precedente post hai affermato che il tuo programma "...funziona e anche bene": non lo metto in dubbio, ma il buon funzionamento, inteso come ottenimento dei risultati attesi, è solo uno degli obiettivi che ci si deve porre quando si realizza un progetto.

    Torniamo al tuo codice.
    Anche sostituendo "S" a "rst1", un ciclo Do While...Loop serve a scorrere tutti irecord di un recordset e a fare, per ciascuno di essi, qualcosa di significativo. Poiché come abbiamo detto il tuo recordset è composto da un solo record (ti è chiaro questo, vero?) a cosa serve un ciclo Do While...Loop ?

  7. #17
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Re...

    Mi sembra di essere a scuola, ma va bene cosi, comunque ritorniamo a noi
    ...a cosa serve un ciclo Do While...Loop ?

    Il ciclo Do While...Loop etc etc, o per meglio dire "condizione" consente di eseguire un'azione finchè la condizione risulti essere vera (esistente)
    Questo penso di averlo capito...
    vr-claudio

  8. #18
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760

    Re: Re...

    Originariamente inviato da vr-claudio
    Mi sembra di essere a scuola...
    Capisco che preferiresti che qualcuno ti scrivesse pari pari il codice per risolvere quello che tu erroneamente ritieni essere l'unico problema del tuo programma, ma non è nelle mie abitudini.

    Originariamente inviato da vr-claudio
    Il ciclo Do While...Loop etc etc, o per meglio dire "condizione" consente di eseguire un'azione finchè la condizione risulti essere vera (esistente)
    Questo penso di averlo capito...
    Vedo che, come in passato, abbiamo una certa difficoltà di comprensione. La mia domanda era un tantino retorica, nel senso che andava intesa come "A cosa ti serve un ciclo se disponi di un solo record?". La risposta mi sembrava ovvia.
    La lettura ciclica potrà servirti solo se nella query ripristinerai la GROUP BY (che inopinatamente hai tolto) per mezzo della quale otterrai un record per ogni valore di DATA_FATTURA.

    Tornando alla tua esigenza di limitare la selezione ai record con DATA_FATTURA compresa in un certo intervallo, un qualunque abbecedario di SQL ti avrebbe rivelato che BETWEEN è un operatore della clausola WHERE, non di GROUP BY.

  9. #19
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Scusa ma mi sembra un po' esagerato...

    Ciao carissimo,

    Capisco che preferiresti che qualcuno ti scrivesse pari pari il codice per risolvere quello che tu erroneamente ritieni essere l'unico problema del tuo programma, ma non è nelle mie abitudini.
    Come ho già accennato nelle diverse risposte tipo:

    ...non ho molta dimistichezza con le connessioni a db locali ma ci provo, sono aperto a qualsiasi critica costruttiva per imparare.
    ...scusa ma a mio parere nessuno vuole il codice già fatto, è un po' che utilizzo questo sito per apprendere imparando dai consigli degli altri e non copiando qua e là.
    Inoltre in questo sito cè la possibilità di dialogare e di confrontarsi, ecco perchè chiedo sempre gentilmente di farmi capire le cose, magari con modi e rispsoste un pochino diverse con persone che magari si sono solo appassionate a questo mondo e non sono esperti di programmazione.

    Comunque, io ti ringrazio per l'aiuto che stai dando al sottoscrito e ad altri utenti, cerchero' di rivedere quello che gentilmente mi hai risposto nell'ultimo messaggio!

    PS: Grazie per l'attenzione che mi state dimostrando fino ad ora.
    Ciao vr-claudio

  10. #20
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760

    Re: Scusa ma mi sembra un po' esagerato...

    Originariamente inviato da vr-claudio
    ...scusa ma a mio parere nessuno vuole il codice già fatto, è un po' che utilizzo questo sito per apprendere imparando dai consigli degli altri e non copiando qua e là.
    Inoltre in questo sito cè la possibilità di dialogare e di confrontarsi, ecco perchè chiedo sempre gentilmente di farmi capire le cose, magari con modi e rispsoste un pochino diverse con persone che magari si sono solo appassionate a questo mondo e non sono esperti di programmazione.
    Se la mia risposta ti è sembrata troppo brusca mi spiace.
    Se, come dici, appartieni alla categoria delle "persone che si sono appassionate a questo mondo" (cosa lodevole) e frequenti il forum da diverso tempo, ti dovrebbe essere chiaro che alcune nozioni fondamentali, come le strutture base della codifica (iterazioni, decisioni...) e la sintassi del linguaggio SQL devono essere apprese prima e al di fuori dei forum, per esempio studiando su qualche buon libro.
    E inoltre, quando non comprendi un suggerimento che ti viene dato, sarebbe meglio chiedere chiarimenti anziché ignorarlo.
    Scusa la franchezza eh!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.