Visualizzazione post con etichetta programmazione. Mostra tutti i post
Visualizzazione post con etichetta programmazione. Mostra tutti i post

martedì 21 agosto 2012

Recordset DAO


Function esempioRecorset(tabellaSorgente As String)

'a. Apertura DB
    Set DBCorrente = CurrentDb 'per aprire un collegamento sul dbcorrente
    'Set dbcorrente = OpenDatabase("C:\Prova.mdb") 'per Aprire un DB esterno
'b. Apertura tabella
    Set rst = DBCorrente.OpenRecordset(tabellaSorgente, dbOpenSnapshot)
    'Set tabella = DBCOrrente.OpenRecordset("Select * from Tabella", dbOpenSnapshot) 'per usare l'SQL
    ' - dbOpenDynaset Apre un recordset di tipo dynaset, con capacita' di scorrimento in entrambi i sensi. Questo tipo di recordset conserva solo un collegamento ai dati, che sono letti direttamente dal database alla bisogna. E' il piu' completo ma il piu' lento.
    ' - dbOpenTable Apre una tabella, in questo caso la stringa SQL si suppone che contenga solo il nome della tabella da aprire e niente altro. Il recordset e' scorribile in entrambe i sensi,
    ' - dbOpenSnapshot Uno snapshot e' un recordset non modificabile, con tutti i dati in memoria. E' il tipo piu' efficiente per operazioni di lettura dei dati.
    
'c. Spostamenti
    rst.MoveNext 'vai al record successivo
    rst.MovePrevious 'vai al record Precedente
    rst.MoveFirst 'vai al primo record
    rst.MoveLast 'vai all'untimo record

'd. variabili
    rst.BOF 'ha un valore true se il record corrente è preceddente al primo record
    rst.EOF 'ha un valore true se il record corrente è Successivo all'ultimo
    
'e. Ricerca di un dato nella tabella
    rst.FindNext "Campo=Criterio" 'ricerca il record successivo che soddisfa l'espressione (es.: "ID=3")
    rst.FindPrevious "Campo=Criterio" 'ricerca il record Precedente che soddisfa l'espressione (es.: "ID=3")
    rst.FindFirst "Campo=Criterio" 'ricerca il primo record che soddisfa l'espressione (es.: "ID=3")
    rst.FindLast "Campo=Criterio" 'ricerca l'untimo record cche soddisfa l'espressione (es.: "ID=3")
    
    rst.NoMatch 'ha un valore true se l'esito della ricerca è negativo
    
'f. Lettura e modifica dati
    variabile = rst.Fields("NomeCampo") 'Lettura

    rst.Edit 'Abilita la modifica del record
    rst.Fields("NomeCampo") = variabile 'imposta il nuovo valore del campo
    rst.Update 'Salva La modifica

    rst.AddNew 'crea ilnuovo record e si posiziona su di esso
    rst.Fields("NomeCampo") = variabile 'imposta il valore del campo
    rst.Update 'Salva il record

    rst.Delete 'eliminazione dati
    
'g. Chiusura Tabelle e collegamento
    rst.Close
    DBCorrente.Close
  
End Function

giovedì 29 dicembre 2011

Progetto Budget


















Dopo svariate ricerche in rete di un software che permettesse poche e semplici funzionalità (il sito www.mybudget.it si avvicinava a malapena ma ora è chiuso) :
  1. Creazione di un budget annuale basandosi su una tabella di spese periodiche.
  2. Stabilizzazione dello storico in base ad un flag "Fatto".
  3. Caricamento di spese non periodiche fatte o previste.
Ho deciso di rimettermi a programmare.
Piattaforma di sviluppo ACCESS.


To-Do progetto Database Budget.

I. CREARE CALENDARIO
1. Elimina tabella CALENTARIO se esiste
2. Ricrea tabella con tracciato da codice
3. Loop record
a. Prendi la data inizio
b. Prendi la periodicità
c. Prendi altri valori
d. Loop data inizio evento, con verifica prima dell'esecuzione: data evento è maggiore o uguale a data oggi.
i. Sommare a data evento la periodicità
ii. Chiudere loop
e. loop scrittura
i. Scrivere il record con la data primo evento
ii. Sommare a data evento la periodicità
iii. Chiudere loop quando data evento e > della data fine analisi
f. Chiudere il loop quando recor è vuoto

II. AGGIUNGERE COLONNA CONTABILITÀ
1. Elimina tabella CONTABILITA se esiste
2. Crea tabella CONTABILITA con campo ID incrementale da una qyery della tabella CALENDARIO ordinata per data e altri criteri
a. Crea tabella vuota CONTABILITA con i seguenti campi: ID; DATA; CATEGORIA; ANNOTAZIONI; IMPORTO; PAGAMENTOTIPO; CONTABILITA
b. Popolare CONTABILITA con i dati di CALENDARIO
3. LOOP per valorizzare contabilità da ID 1 a EXIT quando valore e nullo
a. Assegnare variabili
i. Importo
ii. contabilitaPrev
se è nullo (primo record) settare il SALDO
iii. contabilita = contabilitaPrev + Importo
b. Eseguire Select UPDATATE settando il campo contabilità come la somma del campo contabilità del record precedente e importo del record attuale (utilizzando Dlookup per leggere i dati del record precedente)
UPDATE contabilita
SET contabilita= contabilita
WHERE ID = n

III. SALDO FINE MESE

IV. CALENDARIO CON IL TASTO FATTO

V. AGGIUNGERE A CALENDARIO SPESE FATTE NON PERIODICHE

VI. AGGIUNGERE A CALENDARIO SPESE FUTURE NON PERIODICHE

VII. INTEGRARE A CALENDARIO ESTRATTO CONTO BANCARIO