Newsgroup: it.comp.appl.access
Titolo: registrazione multipla di un record

Salve! Avrei bisogno di aiuto per il seguente problema in Access:
ho creato 4 tabelle:
la tabella AUTOMEZZI composta da:
IDAUTOMEZZO = chiave primaria
TARGA= TARGA AUTOMEZZO
La tabella COSTI composta da:
ID COSTO= chiave primaria
DATA
CAMION= collegato a tabella CAMION
VOCE DI SPESA= collegato a tabella VOCI SPESA (che contiene le varie
voci di spesa possibili)
DESCRIZIONE
Q.Tà
FORNITORE= collegato a tabella FORNITORI (che contiene l'anagrafica
fornitori)
KM CAMION
IMPORTO
Vorrei creare una maschera di inserimento dati che mi consenta di
memorizzare "in un colpo solo" un costo su tutti i camion.
Esempio:
devo registrare la bolletta dell'enel. L'importo di questa bolletta lo
suddivido su tutti i camion. I dati da registrare sono:
data	Voce di spesa	q.ta	Fornitore	Km camion   Importo	Camion
01/03	Pagamento enel	0	Enel	0	    2,25	tutti
Attualmente sono costretto a scrivere questa registrazione per piu di
20 volte.
Vorrei invece creare una maschera che faccia questa registrazione sul
singolo camion, se il costo è relativo solo a quel camion, su tutti i
camion se, come nel caso della bolletta Enel, il costo si divide su
tutti i camion.
Spero di essere stato chiaro e che ci sia soluzione.
Grazie a tutti.

 wrote in message 
news:1173283512.3...@t69g2000cwt.googlegroups.com...
Salve! Avrei bisogno di aiuto per il seguente problema in Access:
ho creato 4 tabelle:
la tabella AUTOMEZZI composta da:
IDAUTOMEZZO = chiave primaria
TARGA= TARGA AUTOMEZZO
[...]
Questa fa tante registrazioni nella tabella Costi quanti sono
i camion nella tabella Automezzi.
Andrà adattata sostituendo ai valori 1, 2, 3, 4 le costanti
specifiche ed aggiungendo i campi mancanti.
Non l'ho provata perché non ho voluto impazzire a creare
le due tabelle coi dati.
Ma è talmente semplice che non dovrei averla sbagliata.
=============================
Private Sub Command59_Click()
Dim db As Database
Dim RS0 As Recordset, RS1 As Recordset
Set db = CurrentDb
Set RS0 = db.OpenRecordset("Automezzi", dbOpenDynaset)
Set RS1 = db.OpenRecordset("Costi", dbOpenDynaset)
Do Until RS0.EOF
    With RS1
        .AddNew
        ![ID_Automezzo] = RS0![ID_Automezzo]
        ![ID_Costo] = 1
        ![Data] = 2
        ![Fornitore] = 3
        ![Importo] = 4
        .Update
    End With
    RS0.MoveNext
Loop
End Sub
=================================
Bruno 

 ha scritto nel messaggio 
news:1173283512.3...@t69g2000cwt.googlegroups.com...







-----------------------------------
Si tratta di spalmare i costi....e imputarli a ciascun settore (nel tuo caso 
ai camion).
La procedura di per se non è difficile devi solo decidere quando applicarla: 
sempre o solo per alcune voci di spesa; e a chi applicarla.
Usando il tuo esempio e supponendo che vuoi dividere la spesa per tutti i 
camion se i camion sono 10 e la spesa è di 100 euro, ciascun camion avrà un 
costo aggiunto di un decimo (100/10) della spesa totale.
Prima cosa da fare è conoscere l'importo, poi il numero di "imputati", 
infine la voce di spesa.
Un semplice ciclo dovrebbe risolvere il problema.
L'esempio che segue prevede una query con tutti i camion (SQCamion) e che tu 
passi alla funzione sia la "voce" di spesa che l'importo:
tipicamente va chiamata così:
AccodaVoceDiSpesa(TuaVocePerEsempioENEL, 355)
Public Function AccodaVoceDiSpesa(Voce As String, Importo As Currency)
Dim rcs As Recordset, RcsCosti As Recordset
Dim ImportoDiviso As Currency
Dim i As Integer
Set rcs = CurrentDb.OpenRecordset("SQCAMION")
Set RcsCosti = CurrentDb.OpenRecordset("Costi")
rcs.MoveLast
rcs.MoveFirst
ImportoDiviso = Importo / rcs.RecordCount
For i = 1 To rcs.RecordCount
    With RcsCosti
    .AddNew
    !camion = rcs!ID
    !VoceSpesa = Voce
    !descrivi = "1/" & rcs.RecordCount & " " & Voce
    !Valore = ImportoDiviso
    .Update
    End With
rcs.MoveNext
Next i
rcs.Close
Set rcs = Nothing
RcsCosti.Close
Set RcsCosti = Nothing
End Function
E' solo un esempio ma potrebbe darti più di uno spunto.
Ciao, Carlo

 ha scritto nel messaggionews:1173283512.3...@t69g2000cwt.googlegroups.com...

Grazie, di spunti me ne avete dati 1000. Un dubbio pero: il numero di
camion puo' variare nel tempo.
Per esempio fino alla data 28/02 ho 20 camion. Per cui tutti gli
importi delle fatture li divido per 20. Dal giorno 01/03 i camion sono
aumentati (o anche diminuiti). Per cui tutti gli importi delle fatture
li dividero per 21 (o per 19 se i camion sono diminuiti).
come posso impostare il db per tener presente questa questo fattore?

 ha scritto nel messaggio 
news:1173288005.9...@h3g2000cwc.googlegroups.com...
cut
Grazie, di spunti me ne avete dati 1000. Un dubbio pero: il numero di
camion puo' variare nel tempo.
Per esempio fino alla data 28/02 ho 20 camion. Per cui tutti gli
importi delle fatture li divido per 20. Dal giorno 01/03 i camion sono
aumentati (o anche diminuiti). Per cui tutti gli importi delle fatture
li dividero per 21 (o per 19 se i camion sono diminuiti).
come posso impostare il db per tener presente questa questo fattore?
-----------------------------
Penso che il problema non si pone perchè il costo va spalmato su tutti i 
camion, 20 o 19 o 100 che siano.
Cosa diversa è se devi spalmare solo su "alcuni" camion.
Infatti si spalmano i costi comuni e non i costi specifichi.
Se cambi l'olio ad un camion imputerai il costo solo a quello altrimanti a 
tutti i camion che in quel momento sono presenti.
Ciao, Carlo