Newsgroup: it.comp.appl.access
Titolo: Gestione scadenzario da db esterno

Buonasera a tutti,
stavo pensando a come gestire uno scadenzario di fatture da pagare.
Ho un db per la registrazione delle fatture per ciascun anno in cui ho uno 
scadenzario in cui inserisco le scadenze dalla form [INSERISCI SCADENZA] con 
il tasto SALVA che ha su click l'evento:
Private Sub SALVA_Click()
On Error GoTo myError
Me.Form.Requery
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim rs As DAO.Recordset
    Set rs = db.OpenRecordset("SCADENZARIO INTESTAZIONE")
    With rs
        .AddNew
        ![PROTOCOLLO SCADENZARIO] = Me.PROTOCOLLO
        ![PROTOCOLLO NUMERICO] = Val(Mid$((Me.PROTOCOLLO), 3, 4))
        ![FT NUMERO] = Me.FT_NUMERO
        !IMPORTO = Me.IMPORTO
        ![RAGIONE SOCIALE] = Me.RAGIONE_SOCIALE
        .Update
        .Close
    End With
    Set rs = Nothing
    Set db = Nothing
Me.Form.Requery
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SCADENZARIO DETTAGLI")
    With rs
        .AddNew
        !ID = Forms![INSERISCI SCADENZA]![SCADENZARIO DETTAGLI]![ID]
        ![PROTOCOLLO FT] = Forms![INSERISCI SCADENZA]![PROTOCOLLO]
        ![PROTOCOLLO NUMERICO] = Val(Mid$((Forms![INSERISCI 
SCADENZA]![PROTOCOLLO]), 3, 4))
        !IMPORTO = Forms![INSERISCI SCADENZA]![SCADENZARIO 
DETTAGLI]![IMPORTO]
        !SCADENZA = Forms![INSERISCI SCADENZA]![SCADENZARIO 
DETTAGLI]![SCADENZA]
        .Update
        .Close
    End With
DoCmd.Close
myExit:
  Exit Sub
myError:
    Select Case Err.Number
        Case 3022
            MsgBox "SCADENZA GIA' INSERITA PER QUESTA FATTURA!"
            Resume myExit
        Case Else
            MsgBox "Piccola eccezione " & vbCrLf & _
                Err.Number & " " & Err.Description
         Resume myExit
    End Select
End Sub
Questo però, soprattutto i primi mesi dell'anno mi costringe ad andare a 
cercare se ho delle scadenze in sospeso per l'anno passato.
Ho pensato quindi di creare un db apposito per uno scadenzario "provvisorio" 
e soprattutto "comune" a tutti i db degli anni,  in cui andranno inseriti i 
record dal suddetto tasto SALVA ma che poi verranno eliminati nel momento in 
cui avverrà il pagamento.
Per far ciò però dovrei per prima cosa far riferimento a questo db esterno 
alla form [INSERISCI SCADENZA], come modifico la stringa
Dim db As DAO.Database
    Set db = CurrentDb
?
Grazie a chi avrà avuto voglia di leggere e saprà darmi una mano.
Giorgia 


Ciao Giorgia,
ma perchè tutto questa complicazione ? Quando mi è capitata l'esigenza
ho messo nella tabella fatture (UNICA NON
UNA PER ANNO)  il campo scadenza se unica, altrimenti UNA tabella
collegata per le scadenze.
Ovviamente poi, avere una maschera con tutte le fatture risulterebbe
scomodo, quindi alimento la maschera con:
Fatture anno corrente (default)
oppure (a richiesta con pulsante)
Fatture anno precedente
oppure
Fatture tutte.
Ciao
Alberto

 ha scritto nel messaggio 
news:ihv3bg$3d7$1...@speranza.aioe.org...

Come puoi inserire una fattura senza registrare la scadenza.
Nella Fattura Fornitore (Tabella Fatture Fornitori) ci deve essere:
ID Serie Fattura Fornitore
ID Fornitore
Riferimento Fattura
Data Fattura
Data Fattura Caricamento
Data Fattura Ammortamento
Nota Fattura
ID Pagamento --->Esempio 60/90 sono 2 inserimenti nella tabella (Scadenze 
Fatture Fornitori)
ID Banca
Prezzo Totale Fattura
ID IVA
Fattura Registrata
Operatore
Nome Banca
Agenzia
Iban
Codice Swift
Codice Through
ID Gestione Banca
Ragione Sociale
ID Nazione
ID Tipo Fornitore
Nella (Tabella Scadenze Fatture Fornitori) ci deve essere:
ID Scadenza Fattura Fornitore
ID Serie Fattura Fornitore
Data Scadenza
Data Presentazione
Importo
Pagato
Cod tipo pag
Nota Fattura Fornitore
ID Gestione Banca
Operatore
Aprendo la maschera per inserimento dei dati relativi a Fatture Fornitori 
premendo il pulsante REGISTRA FATTURA deve automaticamente inserire i dati 
nella Tabella Scadenze Fatture Fornitori.
Poi devi avere un'altra maschera FATTURE FORNITORI REGISTRATE. Aprendo 
questa deve essere tutto bloccato e vedo quanto ho scritto nell'inserimento 
dati Fattura Fornitore e nella sottomaschera in funzione del pagamento le 
relative scadenze. Qui devi avere un pulsante che abilita molti campi:
Una volta premuto abilita nella sottomaschera deve essere abilitato tutto e 
visibile il pulsante NUOVO RECORD per inserimento di nuove scadenze
Non è facile scrivere se vuoi puoi chiamarmi su skype,nome 
utente:franchi.flaviosrl, che con condivisione ti posso far vedere quello 
che ho combinato in 15 anni di database AMATORIALE solo passione nel 
programmare ma non è il mio mestiere.
Mi dimenticavo:la differenza tra ID Banca e ID Gestione Banca e che è che ID 
Banca è la banca del fornitore(hai i dati per fare il bonifico) mentre ID 
Gestione Banca è una delle tue banche (puoi gestire quante banche vuoi).
Ciao
Graziano
 

Giorgia ha scritto:




Non so se può essere d'aiuto, ma io ho abbandonato immediatamente la struttura
una tabella per anno di gestione......solo complicazioni in più con gli
strumenti di archiviazione che ci sono oggi.....In fondo basta creare una tab
con chiave composita IdFattura e anno (oppure data fattura) e in un unica
tabella ci stanno tutte le fatture di tutti gli anni che vuoi......quando crei
query o recordset, la condizione WHERE sarà sempre su Id e Anno e non puoi
sbagliare. Le maschere che visualizzano i dati saranno dotate di una combo che
contiene tutti gli anni dalla prima fattura all'anno corrente. Un esempio. Su
Caricamento della Form
SELECT * FROM FattureTestate
WHERE year(dataFattura)=year(now()) or (year(dataFattura)<year(now()) AND
Pagato=false) [così visualizzi anche i sospesi, poi magari con la
formattazione condizionale le colori come vuoi...]
Su Dopo Aggiornamento della combo:
SELECT * FROM FattureTestate
WHERE year(dataFattura)=me.ComboAnno.value
e sei a posto per sempre.....
-- 

 -- 
Grazie davvero per tutti i consigli!
Vi stupirò con un'affermazione da vera neofita.....ho sempre gestito un db
per anno perchè pensavo che con troppi dati il db si rallentasse troppo.....
ma leggendo la frase "con gli strumenti di archiviazione che ci sono
oggi...." vuol dire che mi sto sbagliando.
Hai voglia Fair87 di chiarirmi a quali strumenti ti riferisci?
Giorgia

 -- 
Fair87 stavo pensando che io ho una maschera [AVVIO DATA], che mi serve per 
controllare il campo [REGISTRAZIONE IVA] in questo modo:
Private Sub REGISTRAZIONE_IVA_LostFocus()
If Month([REGISTRAZIONE IVA]) <> Month(Forms![AVVIO DATA]!DATA) Or 
Year([REGISTRAZIONE IVA]) <> Year(Forms![AVVIO DATA]!DATA) Then MsgBox "Data 
fuori periodo IVA"
End Sub
Posso utilizzare questa stessa form per inserire le fatture nell'anno 
corretto in sostituzione del tuo esempio di cui sopra?
Giorgia

 ha scritto nel messaggio 
news:ii8f76$uha$1...@speranza.aioe.org...

Mi sono accorta di non essermi spiegata per nulla....
nella form che uso per registrare una nuova fatture ho il numero di 
PROTOCOLLO che ha valore predefinito
=Nz(DMax("[PROTOCOLLO]";"[FATTURE ACQUISTO]");0)+1
e poi ho il campo
[PROTOCOLLO SCADENZARIO] con val predef.=Format("A") & Format("/") & 
Format([DETTAGLI_FATTURE_ACQUISTO_PROTOCOLLO];"0000") & Format("/") & 
Format(Right(Year(Now());2))
A questo punto, come posso accorpare i 2 campi in un unico campo che 
consideri un contatore diverso a seconda dell'anno impostato nella maschera 
[AVVIO DATA]?
....non so se ora la situazione sia pi� chiara....
Giorgia 

 Giorgia
 UltimoID = DMax("[ID Serie Fattura Fornitore]", "Fatture Fornitori",
"(Int([ID Serie Fattura Fornitore]/100000))=((Year(Date()))-1995)")
  If IsNull(UltimoID) Then UltimoID = ((Year(Date) - 1995) * 100000)
Vedi nel Post con allegato del 29/1
Ma il grosso lavoro è leggere tutti i dati per anno e trasferirli in una 
tabella unica.
ciao