Hej! Jag gissar på att det är så att du glömt lägga till tabellen i TabelDefs Collectionen. Den läggs därför inte till. Istället skapas tabellen vid importen. Den får därför en anna datastruktur. Hej Andreas!Problem med temp-tabell vid import av data från excel till access.
Jag ska importera data in i access från en excelfil.
Excelfilen innehåller ett fält som heter "Customer Code" och innehåller siffror men typen på det fältet måste vara TEXT eftersom kundnumren ibland börjar med "00".
När jag ska importera excelfilen skapar jag en temptabell att lägga datat i.
(Det ska nämligen bara användas för att uppdatera information i en annan tabell, sen ska temptabellen bort igen).
Jag skapar tabellen enligt nedan:
Set tmpTable = db.CreateTableDef("tmpMTDImport")
With tmpTable
.Fields.Append .CreateField("Customer Code", dbText, 50)
....
End with
Med detta importerar jag datat:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel7, "tmpMTDImport", FileDir & FileName, True
Allt datat importeras men nu är datatypen för fältet [Customer Code] satt till TAL i min temptabell.
Detta fast jag satte att typen skall vara TEXT när jag skapade tabellen och typen för kolumnen i excel var också TEXT.
Det blir dels fel på datat men också fel när jag sen ska fortsätta i och med att den då har fel datatyp för att "joinas" med de andra tabellerna.
Hur kan jag lösa detta?
Mvh,
SofiaSv: Problem med temp-tabell vid import av data från excel till access.
Jag föreslår att du skapar tabellen i designläge. och låter den ligga kvar. Istället tömmer du den efter varje import med "DELETE FROM tmpMTDImport". Du slipper då förändar datastrukturen. Utan importerar bara data.Sv: Problem med temp-tabell vid import av data från excel till access.
Jag vill inte använda mig av den lösningen du föreslår då det skulle åsamka massa onödiga tabeller (det är ett ganska stort system).
Det jag däremot hade glömt, som du påpekade helt riktigt var följande rad:
db.TableDefs.Append tmpTable
Då funkar allt kalas!
Tänk vad man kan bli blind på sin egen kod....
Tack!
/Sofia