Newsgroup: it.comp.appl.access
Titolo: database multiazienda

Ho creato un database per l'emissione di fatture, mandati di pagamento
ed altri documenti contabili. Tutto ok. Visto che gestisco più di una
azienda, vorrei trasformare il db in multiazienda. Devo creare più
tabelle per ogni ditta e per ogni documento? Grazie per l'aiuto?

Credo tu possa:
1) creare un DB per ogni azienda
2) creare un campo AZIENDA per ogni tabella interessata (testata
fatture, DDT, mov. di magazzino, ecc..)
ciao.
k.
peppino ha scritto:


Ho creato una tabella azienda con IDAzienda e NomeAzienda. Poi nella
tabella X ho aggiunto il campo NomeAzienda e quindi ho creato più
query tante sono le azienda da gestire. Come faccio prima di inserire
un nuovo documento a segliere la maschera in base alla query associtata
all'azienda per cui devo inserire il nuovo documento? Grazie per la
disponibilità.
kerm...@libero.it
 ha scritto:


credo di aver capito come proseguire. L'unico problema è che ad
esempio nel caso delle fatture non riesco ad avere nella stessa tabelle
due numeri di fattura uguali ma appartenenti ad aziende diverse.
Utilizzo per la numerazione un campo che aumenta di 1 unità
progressivamente (es. 001/05) e se l'anno dell'orologio di windows lo
porti ad es. nel 2007 riparte da 001/07.
Come faccio. Grazie per l'aiuto.


 ha scritto nel messaggio 
news:1155222786.7...@m73g2000cwd.googlegroups.com...
credo di aver capito come proseguire. L'unico problema è che ad
esempio nel caso delle fatture non riesco ad avere nella stessa tabelle
due numeri di fattura uguali ma appartenenti ad aziende diverse.
Utilizzo per la numerazione un campo che aumenta di 1 unità
progressivamente (es. 001/05) e se l'anno dell'orologio di windows lo
porti ad es. nel 2007 riparte da 001/07.
Come faccio. Grazie per l'aiuto.
[risposta]
Chiave primaria su due campi?
NFattura e Azienda.
Fatt 1 Az. 1
Fatt 1 Az. 12
Fatt 1 Az. 3
Ciao,Carlo 

Ti ringrazio per la risposta. C'è solo un piccolo altro problema che
ho dimenticato di sottolineare nel precedente post. La maschera per
l'inserimento fattura contiene una sottomaschera in cui seleziono i
prodotti che è collegata alla maschera attraverso il n. fattura. Per
cui, con la chiave primaria su due campi, riesco ad inserire il numero
uguale solo che si incrementa non in base all'ultima fattura inserita
tenenco conto dell'azienda, ma all'ultimo record e quando forzando
inserisco il numero fattura la sottomaschera mi dà  i prodotti
inseriti col medesimo numero ma dell'azienda con cui ho iniziato il db.
Lo schema è pressochè quello di northwind. Grazie per l'aiuto.
Carlo Costarella ha scritto:


Scusa ho risolto il problema del collegamento tra maschera e
sottomaschera. L'ultimo problema resta quello dell'incremento numero
fattura che mi propone sempre in base al più alto senza tener conto
dell'azienda per cui inserisco la nuova fattura. Il campo che mi
aggiorna il numero ha il seguente codice;
="" & Format(IIf(IsNull(DMax("[ID]";"[Ordini]";"[ID] like '???/" &
Format(Date();"aa") & "'"));1;Mid(DMax("[ID]";"[Ordini]";"[ID] like
'???/" & Format(Date();"aa") & "'");1;3)+1);"000") & "/" &
Format(Date();"aa")
come lo devo modificare?
Ringrazio anticipatamente.
peppino ha scritto:


 ha scritto nel messaggio 
news:1155399203.1...@75g2000cwc.googlegroups.com...
Scusa ho risolto il problema del collegamento tra maschera e
sottomaschera. L'ultimo problema resta quello dell'incremento numero
fattura che mi propone sempre in base al più alto senza tener conto
dell'azienda per cui inserisco la nuova fattura. Il campo che mi
aggiorna il numero ha il seguente codice;
="" & Format(IIf(IsNull(DMax("[ID]";"[Ordini]";"[ID] like '???/" &
Format(Date();"aa") & "'"));1;Mid(DMax("[ID]";"[Ordini]";"[ID] like
'???/" & Format(Date();"aa") & "'");1;3)+1);"000") & "/" &
Format(Date();"aa")
come lo devo modificare?
Ringrazio anticipatamente.
[risposta]
ricorda di scrivere sempre dopo l'ultima risposta e non prima.
Puoi seguire diverse strade.
Per esempio c'è quella di fare una tabella con la ditta in uso e il suo 
ultimo numero di fattura inserito, che se è zero diventa uno e così via. 
Questo comporta qualche riga di codice per aggiornare il valore ogni volta 
che si aggiunge una fattura ma anche una sola riga per aggiungerne una 
nuova. Comporta, inoltre, una scelta preventiva (ad apertura del db)  da 
parte dell'utente sulla ditta in uso, qualche variabile globale (opzionale) 
e poco altro. Questa mi sembra una strada molto ordinata e pulita.
Altra strada è quella della classica query con parametri che contiene la 
ditta e il progressivo delle sue fatture.
I parametri li passi a mezzo funzioni pubbliche:
Public Function DimmiDittaInUso() As Long
DimmiDittaInUso = Forms!TuaForms!TuoIDDitta
End Function
La query:
SELECT Fatture.IDDitta, Fatture.NFattura
FROM Fatture
WHERE (((Fatture.IDDitta)=DimmiDittaInUso()))
ORDER BY Fatture.NFattura;
Salva la query per esempio con "SQFattureDitta".
Il valore sarà ottenuto da:
nz(Dmax("NFattura";"SQFattureDitta");0) + 1
Esistono ancora altre strade ma comincia a provare con queste.
Da domani sono in ferie...
Buone vacanze a tutti, ci vediamo il 29.
Ciao, Carlo

Carlo Costarella ha scritto:

Grazie per l'aiuto, spero di riuscire a metterlo in pratica.
Scusa per il posizionamento del post precedente. Buone ferie, ti auguro
che il tempo migliori. Ciao, Giuseppe.