Caselle combinate

di il
22 risposte

Caselle combinate

Salve a tutti.
Vorrei creare un database importando un file di Excel.
Il file di Access avrà le stesse, identiche colonne di quello di Excel.

Ma c’è un problema che non so risolvere per alcune di queste.
Faccio l’esempio di una.
La colonna fornitore:
una volta importata, troverò tutti i record compilati ma quando, da maschera, vado ad aggiungere un nuovo acquisto, non posso utilizzare, per quel campo, una casella combinata che, cliccando, mi faccia vedere tutti i fornitori dai quali scegliere.
Ho provato a cambiare, in struttura, il tipo di campo utilizzando la configurazione guidata e prendendo la lista dei fornitori da un’altra tabella contenente tutti i fornitori ma quando do l’ok, mi cancella tutti i record di quella colonna, per cui dovrei riscriverli uno ad uno.
Esiste un modo per fare ciò che vorrei fare senza perdere tutti i dati?
I record che dovrei riscrivere sono qualche centinaio…..

Spero di aver spiegato bene il mio problema.


Attendo riscontri.

Grazie

22 Risposte

  • Re: Caselle combinate

    Dal tuo esempio qualche cosa mi lascia perplesso...!

    In Excel, che non è un Database, non ci sono le ChiaviPrimarie, quindi la prima cosa di cui ti devi preoccupare è Quale sarà la mia chiave primaria...?
    Ovviamente NON potrà essere il Nome dell'azienda, ancorchè possa essere la Ragione Sociale, perchè non è un dato UNIVOCO.
    Potresti usare la P.IVA, se disponibile o il C.F., altrimenti devi avere una PK di tipo Counter o equivalente a livello funzionale.

    Ora ti stai preoccupando della pagliuzza, ma sospetto tu non abbia visto la trave...
    Quando importi devi essere certo che il fornitore non sia già presente in anagrafica ed attribuire ai movimenti la PK che recuperi dalla ANAGRAFICA nella tabella di Access non di Excel, se l'anagrafica è NUOVA, devi prima inserirla, recuperare la PK ed assegnare ai movimenti la nuova PK...

    Ti sei posto questa problematica...?
  • Re: Caselle combinate

    Ti consiglio di pensare un attimo al progetto del DB senza farti influenzare dal foglio Excel.
  • Re: Caselle combinate

    O non ho capito io ( cosa probabilissima ) o non mi sono spiegato.
    Quando creo la tabella importando i dati del file di Excel, Access mi crea automaticamente la chiave primaria, durante la composizione dell'importazione e fin qui tutto bene.
    Ma il mio problema è un altro.
    Access mi categorizza automaticamente la colonna Fornitore come testo breve per cui, nella futura maschera derivata dalla tabella che avrà creato, per quel campo, non posso utilizzare una casella combinata che mi elenchi tutti i fornitori perchè se lo faccio, cambiando la struttura di quella colonna in tabella, mi cancella tutti i dati importati ( di quella colonna).

    Io volevo sapere se si può ovviare a questo problema.
  • Re: Caselle combinate

    Oregon

    Non c'entra l'influenza di Excel.....non voglio dover ricopiare tutti i dati presenti sul file excel anche perchè come ho detto, si tratta di centinaia di record
  • Re: Caselle combinate

    beasissi ha scritto:


    O non ho capito io ( cosa probabilissima ) o non mi sono spiegato.
    Quando creo la tabella importando i dati del file di Excel, Access mi crea automaticamente la chiave primaria, durante la composizione dell'importazione e fin qui tutto bene.
    Ma il mio problema è un altro.
    Access mi categorizza automaticamente la colonna Fornitore come testo breve per cui, nella futura maschera derivata dalla tabella che avrà creato, per quel campo, non posso utilizzare una casella combinata che mi elenchi tutti i fornitori perchè se lo faccio, cambiando la struttura di quella colonna in tabella, mi cancella tutti i dati importati ( di quella colonna).

    Io volevo sapere se si può ovviare a questo problema.
    Puoi definire specifiche di Importazione chevanno a definire per ogni Colonna il Type.
    Cerca in rete proprio su questo argomento...!

    https://support.microsoft.com/it-it/office/salvare-i-dettagli-di-un-operazione-di-importazione-o-esportazione-come-specifiche-6b94e183-2b10-4333-a31a-001fe75321b5

    https://support.microsoft.com/it-it/office/eseguire-una-specifica-salvata-di-importazione-o-esportazione-6969e099-4573-40f0-a1e0-f3042bddb640

    Ora però non capisco, affermi che:

    beasissi ha scritto:


    O non ho capito io ( cosa probabilissima ) o non mi sono spiegato.
    Quando creo la tabella importando i dati del file di Excel, Access mi crea automaticamente la chiave primaria, durante la composizione dell'importazione e fin qui tutto bene.
    Cosa intendi...?
    Access non è intelligente, se si trova 2 volte lo stesso fornitore lo crea 2 volte...? Come viene fatto il criterio di Verifica di presenza Anagrafica se dici che è Access che crea la PK, quindi immagino campo COUNTER...?
  • Re: Caselle combinate

    La colonna Fornitore che importo da Excel ( OFFERTE ) contiene ovviamente, piu volte uno stesso fornitore il quale comparirà poi nella tabella creata da Access riferito al file Excel.
    La tabella fornitori da me citata è un'altra tabella che creerò io senza alcuna importazione......sarà solo una tabella che mi servirà per fare la configurazione guidata del campo Fornitore del nuovo file OFFERTE creato da Access.

    E' fatica spiegare questa cosa
  • Re: Caselle combinate

    beasissi ha scritto:


    Oregon

    Non c'entra l'influenza di Excel.....non voglio dover ricopiare tutti i dati presenti sul file excel anche perchè come ho detto, si tratta di centinaia di record
    Nessuno ha parlato di ricopiare... solo che quando si lavora con dati da Excel, la procedura AUTOMATICA 90 volte su 100 non va bene... e si processano più agevolmente da codice, introducendo i necessari criteri di ricerca/validazione, proprio per ovviare a possibili anomalie...
    Ma vedrai tu.
  • Re: Caselle combinate

    No, Alex....stiamo dicendo due cose diverse ed io non riesco a spiegarmi ( anche perchè non è facile ).
    Niente...mi rassegnerò a ricopiarmi i dati che access mi cancella.

    Grazie lo stesso
  • Re: Caselle combinate

    beasissi ha scritto:


    La colonna Fornitore che importo da Excel ( OFFERTE ) contiene ovviamente, piu volte uno stesso fornitore il quale comparirà poi nella tabella creata da Access riferito al file Excel.
    La tabella fornitori da me citata è un'altra tabella che creerò io senza alcuna importazione......sarà solo una tabella che mi servirà per fare la configurazione guidata del campo Fornitore del nuovo file OFFERTE creato da Access.

    E' fatica spiegare questa cosa
    Esempio pratico semplificato:
    
    [Nome Azienda] 			[Quantità] 		[Codice matertiale]
    Mauro Rossi Ferramente		1			0356888000
    Fornitore2 SPA			7			6688996220
    Fornitore2 SPA			3			6688996221
    In Access dovresti avere una Tbl Anagrafica così
    
    idFornitore
    RagineSociale
    ecc...
    E ti troveresti:
    [IdFornotore] 			[RagioneSociale] 		[altri campi...]
    1				Mauro Rossi Ferramente		....
    2				Fornitore2 SPA			....
    Quindi nella tabella Movimenti non devi più avere riferimenti a [Mauro Rossi Ferramente] ma devi avere [1] e relazionare la tabella Anagrafica 1-M con la tabella movimenti.

    Tu come fai a creare l'anagrafica fornitori... e come fai ad associare alla PK della Tabella Anagrafica alla Tabella dei Movimenti... che in Excel non c'è...?
    Io ho il sospetto che tu stia usando il campo Descrizione in realtà per relazionare... e questo è assurdo.

    Ricorda una regola, quando ti devi inventare cose strane per fare cose semplici, e quando pensi che gli altri non ti capiscono, sei sicuramente sulla strada sbagliata.

    In ogni caso, siamo in un Forum italiano, se non ci si riesce a far capire... ci si sforza e si spiega con calma lo scenario dando a tutti la possibilità di comprendere, altrimenti... evitiamo di aprire 3D.
  • Re: Caselle combinate

    Forse credo di capire cosa vuoi dire ma ti chiedo una cosa:
    riferendomi al tuo 2° esempio, che nel mio caso sarebbe la tabella OFFERTE......quando io aggiungo un'offerta fatta a Mauro Rossi, in 1° colonna mi verrà ID 1 ed in 2° colonna mi verrà riscritto Mauro Rossi Ferramenta, giusto?
    Quindi, a prescindere dal 'ID in quella tabella io lo vedrò scritto più volte quel fornitore....o mi sbaglio?
  • Re: Caselle combinate

    Sbagli in modo assoluto, ed è proprio quì che dimostri di non aver proprio capito come funziona un Database Relazionale... stai lavorando ancora con Excel come ti ha detto Oregon, e per la tua carenza di basi non comprendi i suggerimenti...

    Con Access(con un Database) nulla è a prescindere dai campi ID(sono le chiavi primarie e chiavi esterne)... e tu non lo hai colto.

    Credo ti serva una pausa di riflessione.
  • Re: Caselle combinate

    @beasissi ... facciamo al contrario, per capirci. Dicci come dovrebbe essere una tabella Fornitori e una tabella Ordini su un DB Access (o altro DB) secondo te. E come quelle tabelle potrebbero essere popolate a partire dal tuo file Excel.
  • Re: Caselle combinate

    MI sembra una mission impossible questa qui....comunque ci provo.

    La mia tabella FORNITORI è composta da due campi: ID FORNITORE e FORNITORE ed è compilata con svariati fornitori associa al relativo ID.

    La mia tabella OFFERTE ha i seguenti campi: ID OFFERTA, N° OFFERTA, DATA OFFERTA, FORNITORE, CONTENUTO OFFERTA, IMPORTO, NOTE.

    L'ID FORNITORE della tabella FORNITORI è relazionata al campo FORNITORE della tabella OFFERTE
    Cosi facendo quando visualizzo la tabelle OFFERTE le vedo tutte mentre se vado sulla tabella FORNITORI e clicco sul + affiancvo ad un determinato fornitore vedo le offerte di quel fornitore

    I 7 campi della tabella OFFERTE, tranne l'ID OFFERTA contengono i dati del file di Excel.

    Ora offendetemi dicendo che ho fatto un casino
  • Re: Caselle combinate

    Hai fatto quello che avevo intuito, ma non va bene... il campo relazionale tra Anagrafica e Offerte deve essere IDFornitore non Fornitore, sono 2 cose molto differenti... come concetto intendo.
    Nella Tabella Offerte il Fornitore nemmeno deve apparire.
Devi accedere o registrarti per scrivere nel forum
22 risposte