Perché NON dovete usare direttamente un foglio Excel collegato in Access
Quando si collega un file Excel come "tabella collegata", Access:
indovina il tipo di colonna dai primi 8 record, decide se è numerico o testo automaticamente, converte i numeri lunghi in notazione scientifica
tronca gli zeri iniziali, trasforma valori non compatibili in Null, crea nomi di campi non prevedibili (F1, A, intestazioni errate…),
può generare errori nelle SELECT e nelle UPDATE
Soluzione professionale (usata nei software gestionali veri)
1️⃣ Creare una tabella temporanea in Access con tipi fissi
Esempio:
F1 → Testo
F2 → Testo
F3 → Testo
ecc.
2️⃣ Svuotarla prima di ogni importazione
CurrentDb.Execute "DELETE FROM TmpUnlock"
3️⃣ Importare il file Excel nella tabella temporanea
Con:
DoCmd.TransferSpreadsheet _
acImport, acSpreadsheetTypeExcel12Xml, _
"TmpUnlock", "C:\file.xlsx", False
oppure trascinando manualmente il file, purché il tipo sia già impostato.
Il codice diventa instabile, imprevedibile e causa errori difficili da diagnosticare.
1️⃣ Creare una tabella temporanea in Access con tipi fissi
Esempio:
F1 → Testo
F2 → Testo
F3 → Testo
ecc.
2️⃣ Svuotarla prima di ogni importazione
CurrentDb.Execute "DELETE FROM TmpUnlock"
3️⃣ Importare il file Excel nella tabella temporanea
Con:
DoCmd.TransferSpreadsheet _
acImport, acSpreadsheetTypeExcel12Xml, _
"TmpUnlock", "C:\file.xlsx", False
oppure trascinando manualmente il file, purché il tipo sia già impostato.