Import/Link se radi u nekoliko koraka.
Osnova za import/link je Docmd.TransfreDatasheet metod. Ovako:
Code:
DoCmd.TransferSpreadsheet TransferType:=intLinkOrImport _
, SpreadsheetType:=acSpreadsheetTypeExcel7 _
, TAbleName:=strTargetTable _
, FileName:=strFileName _
, HasFieldNames:=True
Imamo mnogo parametara, sve o njima mozes naci u Help ako otkucas 'Display and Use the File Dialog Box'
Problematican parametar je FileNAme, tu moras da zadas bnesto kao "D:\Podaci\MojExeclFile.XLS"
Kako doci do naziva fajla i putanje - preko OpenFile dialog boxa. U primeru koji sam zakacio, koristiom ono sto nudi Access 2007 pa nagore. Mislim da moze i u 2003. AKo imas 2003, u temi "Baza znanja" imas primer kako se otvara OpenFile dialog box na starinski, stari dobri porvereni nacin.
Jos jedna stvar na koju treba paziti: kad se tabele importuju (TransferType := acImport), Access ce podatke iz Excela dodati (kao Append) na postojecu tabel i podatke.. Ako tabela ne postoji, Access ce je kreirati.
Ako linkujes podatke (TransferType := acLink), i vec postoji linkovana tabela sa istim imenom, Access ce napraviti dodatni link, sa istim imenom ali na kraju imena dodaje broj (tblLink, tblLink1, tblLink2 i tako dalje). Ako se to ne zeli, treba prvo otkaciti postojeci link. To se radi tako sto s eobrise table-def objekt.
Sve u svemu, trebaju ti tri funkcije:
Glavna funkcija, koja poziva druge dve:
LinkOrImportExcelFileAsTable(intLinkOrImport As Integer, strTargetTable As String, Optional flgRelink As Boolean = False) As Boolean
Ovo su pomocne funkcije:
GetExcelFilePAth() As String
DeleteTableDef(strTargetTable As String) As Boolean
U zakacenom primeru imas sve tri funkcije i jos objasnjenja u komentarima.
Nadam se da je pomoglo