Rýchly spôsob čítania dbf c. Ako programovo pripojiť súbor DBF v programe Access? Odstránenie záznamov v súbore DBF

Dnes už asi nikomu netreba hovoriť, že pomerne často sa mnohí používatelia stretávajú so súbormi s príponou .dbf. Najsmutnejšie je, že v operačnom systéme Windows, aj keď je nainštalovaný balík Microsoft Office, nie je s týmto typom súboru spojený ani jeden program. Máme to, teraz sa to pokúsime zistiť. Zároveň sa pozrime, ako môžete nastaviť asociáciu rozšírenia pre následné automatické rozpoznávanie údajov a otvorenie požadovaného súboru.

Formát DBF: popis

V skutočnosti už zo samotnej skratky aplikovanej na príponu súboru tohto typu možno usúdiť, že ide o databázu. Je to trochu špecifické, pretože takéto súbory zvyčajne majú príponu

V tomto prípade tu máme ešte jeden, ktorý však aj napriek svojej špecifickosti uznávajú mnohé programy podporujúce prácu s informáciami tohto typu. Môže to byť rovnaký Excel alebo Access, ktoré sú súčasťou hlavného balíka Microsoft Office, alebo akékoľvek iné kancelárske aplikácie od vývojárov tretích strán.

Ako otvoriť DBF v štandardnej verzii

V skutočnosti, ak náhle narazíte na súbor tohto typu (ikona sa na ňom nepoužíva ani v Prieskumníkovi), neprepadajte panike. Dá sa otvoriť celkom jednoducho pomocou Excelu, pretože v ňom je uložená celá logická štruktúra a vzhľadom na to aj možnosť použitia štandardného vyhľadávacieho systému.

Keďže k samotnému súboru nie je v štandardnej verzii priradený žiadny program, existujú dva spôsoby, ako postupovať. Odporúča sa napríklad jednoducho spustiť Excel alebo Access a potom použiť štandardnú ponuku na otvorenie súboru alebo kombináciu klávesov Ctrl + O. V ponuke, ktorá sa zobrazí v poli typu súboru, by ste však mali zadať „Všetky súbory“ (a nie „natívny“ formát), potom vyberte súbor, ktorý hľadáte. Buďte si istí: každý tabuľkový procesor rozpozná tento typ údajov bez problémov.

Ako je už jasné, problém, ako otvoriť súbor DBF, v našom prípade spočíva iba v použití štandardnej kancelárskej aplikácie v manuálnom režime. Ako je už jasné, táto metóda nie je vždy vhodná a vyžaduje určitý čas.

Súvisiace programy

Teraz sa pozrime na samotný súbor DBF. Ako ho môžem otvoriť bez použitia štandardných programov kancelárskeho balíka? Áno, pomocou rovnakých nástrojov, ktoré sú súčasťou podobných softvérových produktov.

Môže to byť napríklad rovnaký Open Office, Lotus atď. V zásade tu nie je veľký rozdiel, pretože dôležité je len to, aby použitý program bol schopný pracovať s tabuľkovými elektronickými údajmi. Čítanie formátu DBF sa vo všetkých prípadoch vykonáva úplne rovnako. Mimochodom, toto nezávisí od vývojára kancelárskeho balíka, pretože každý má podporu pre tento typ údajov, dokonca aj platformy ako Oracle.

Zmena predvolených možností otvárania

Teraz sa pozrime, ako otvoriť súbory DBF, aby sa použil automatický režim. V najjednoduchšom prípade sa to robí z podponuky vyvolanej kliknutím pravým tlačidlom myši na súbor v obvyklom „Prieskumníkovi“, kde je vybratý príkaz „Otvoriť pomocou...“.

Pre jeden prípad sa použije jedna z uvedených aplikácií. Aby ste si znova nelámali hlavu nad tým, ako otvárať súbory DBF, môžete jednoducho určiť vybranú aplikáciu a potom začiarknuť políčko vedľa riadku „Použiť pre všetky súbory tohto typu“ v dolnej časti. Rovnaký Excel v budúcnosti (ak je vybraný ako predvolený program) otvorí súbor tohto typu bežným dvojitým kliknutím.

Je samozrejmé, že namiesto Excelu si môžete zvoliť Access alebo iné programy, ktoré dokážu rozpoznať a otvoriť tento typ údajov. O to tu nejde. Hlavná vec je nakonfigurovať automatické otváranie databázy. No a s čím po softvérovej stránke pracovať, je na každom jednotlivom používateľovi počítačového systému.

Aký je výsledok?

Aby sme to zhrnuli, stojí za to povedať, že najlepšou možnosťou pri otváraní súborov tohto typu je samozrejme kancelársky balík od spoločnosti Microsoft Corporation, pretože je najrozšírenejší na celom svete. Pravda, nie je nič zlé na tom, že používateľ, ktorý nepoužíva produkty Microsoftu, otvorí dáta tohto typu v akejkoľvek inej aplikácii.

Ako je už zrejmé zo všetkého vyššie uvedeného, ​​tabuľkové editory sú prítomné takmer vo všetkých dnes známych balíkoch. Môžu sa od seba líšiť iba názvami a už vôbec nie funkčnou zostavou, ktorá je spravidla až na ojedinelé výnimky všade rovnaká.

Okrem iného preto môžete použiť mnoho vývojových nástrojov pomocou pomerne veľkého počtu programovacích jazykov. Na rovnakej platforme, ktorá podporuje vytváranie a optimalizáciu serverov SQL, sa takéto súbory otvárajú, ako sa hovorí, okamžite. Po otvorení budú mať pomerne špecifický vzhľad, ktorý je pre bežného používateľa trochu nezvyčajný. Väčšina používateľov však pravdepodobne nebude používať takéto profesionálne vývojové nástroje a obmedzí sa len na štandardnú sadu softvéru.

Dobrý deň všetkým, milí čitatelia blogu. V dnešnom článku budem hovoriť o prístupe k DBF súborom (tabuľkám) rôznymi spôsobmi. S týmto problémom som sa stretol, keď som potreboval získať prístup k tabuľkám FoxPro DBF. Skúšal som cez BDE, nefungovalo to, iba do tabuliek Paradox (dbf), nakoniec som sa rozhodol vyskúšať cez komponent TDBF - tiež sa ukázalo, že to bolo neúspešné. Rozhodol som sa vyskúšať pripojenie cez ADO starým spôsobom a všetko išlo ako po masle.

Preto vám v tomto článku poviem, ako sa môžete pripojiť k tabuľkám DBF tromi spôsobmi:

  • Použitie BDE - táto možnosť mi nefungovala pre tabuľky FoxPro
  • Pomocou ADO - FoxPro tabuľky sa otvorili perfektne
  • Pomocou komponentu TDBF otvára tabuľky Paradox s rôznym kódovaním alebo dobre dBase.

Úprimne povedané, na BDE vôbec nedám dopustiť, ale musel som pracovať s takýmito tabuľkami a prvá možnosť, cez ktorú som sa chcel k nim pripojiť, bolo použiť BDE, čo mi v princípe vyšlo, že je, podarilo sa mi získať zoznam stolov, z čoho som mal radosť a myslel som si, že všetko pôjde podľa predstáv, no nebolo tomu tak. Keď som sa pokúsil pripojiť k tabuľke, vyskytla sa chyba niečo ako:

Skúšal som to nainštalovať aj v samotnom BDE Administrator aj pri pripájaní, ale nič nefungovalo. Ale pomocou tejto metódy som sa dokázal perfektne pripojiť k tabuľkám DBF - Paradox, napríklad dBase.

Preto do formulára zo záložky BDE nainštalujeme nasledujúce komponenty:

  • TTable alebo TQuery
  • Voliteľne môžete použiť TDataSource a TDbGrid

Ďalej vo vlastnosti DatabaseName komponentu TDataBase nastavíme názov databázy, napísal som - MyDB a vo vlastnosti DriverName toho istého komponentu som z rozbaľovacieho zoznamu vybral STANDART. Vlastnosť LoginPromt sme nastavili na hodnotu False, pretože v našich tabuľkách nie je žiadne prihlasovacie meno a heslo. Vo vlastnosti Params nastavujeme parametre pripojenia, ja som zadal iba cestu k našim tabuľkám:

Môžete tiež dvakrát kliknúť na komponent TDataBase a nakonfigurovať potrebné pripojenie a nastaviť vlastnosť Connected na hodnotu True, výsledkom čoho by malo byť pripojenie k tabuľkám bez akýchkoľvek chýb. To je všetko, poďme ku komponentu TTable, kde vo vlastnosti DatabaseName uvádzame názov našej databázy, teda MyDB. Vo vlastnosti TableType vyberieme typ tabuľky, zadal som ttDBase a vo vlastnosti TableName vyberieme názov tabuľky, po ktorej nastavíme vlastnosť Active na True. To je všetko, perfektne sa mi spája a zobrazuje tabuľku v pohode.

Ale táto možnosť mi nefungovala pri FoxPro tabuľkách, ako som spomínal vyššie. Preto som sa na vyriešenie môjho problému rozhodol použiť technológiu ADO. Takže z karty ADO som nainštaloval nasledujúce komponenty:

  • TADOConnection
  • TADOQuery alebo TADOTable
  • Voliteľne môžete nainštalovať TDataSource a TDBGrid

Ďalej už len musíme vytvoriť spojenie, ktoré sme vytvorili pre databázu MS Access, bude sa líšiť v tom, že zvolíme iného poskytovateľa dát, a to Microsoft Visual FoxPro ODBC. To je všetko, potom uvedieme kódovanie a cestu k tabuľkám. Ak ide o tabuľky FoxPro, potom priečinok musí obsahovať súbor so zoznamom všetkých tabuliek s príponou *.dbc. To znamená, že reťazec pripojenia komponentu TADOCONnection bude vyzerať asi takto:

Komponent TADOConnection prepojíme s TADOTable alebo TADOQuery a pracujeme s tabuľkami, ktoré potrebujeme.

Ďalšou možnosťou je pracovať s tabuľkami vo formáte dbf pomocou komponentu TDBF, ktorý používam v projekte. Aby som bol úprimný, chcem to opustiť, funguje to dobre s kódovaním. Nepoviem vám, ako s tým pracovať, ale nechám len odkaz ako príklad.

Možno vám pomôže tento kód:

Funkcia VB, ktorú musíte vložiť do MS Access, je pomerne jednoduchá a v podstate volá metódu TransferDatabase a odovzdá jej DSN (ukazujúce na zdrojovú databázu), názov zdrojovej tabuľky a názov cieľovej tabuľky. kód vyzerá takto:

Public Function Import(dsnName As String, sourceTableName As String, targetTableName As String) ‘ ak tabuľka už existuje, odstráňte ju. Pri chybe GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName End Function, _ targetTableName

A potom kód C#:

objekt pristupObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.Bindingnull access,InvokeMethods.In , nový objekt ( "AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, nový objekt ( "Import", "Názov DSN", "Názov zdrojovej tabuľky", "Názov cieľovej tabuľky" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopírovanie bolo úspešné."); ) catch (exception ex) ( string message = ex.Message; while (ex.InnerException != null) ( ex = ex.InnerException; message += "\r \n----\r\n" + ex.Message; ) MessageBox.Show(správa); ) nakoniec ( if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ))

Zmena jazyka VBA na čítanie acLink namiesto acImport by mala umožniť prepojenie.

Upraviť komentáre

Nemôžem si pomôcť s C#, ale tu je nejaký VBScript, ktorý spája tabuľku z jedného MDB do druhého.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Vytvoriť prepojenie..." Set cn = CreateObject("ADODB.Connection") cn.Otvoriť "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Zdroj údajov=" & strAccessFile & ";" & _ "Persist Security Info=False" Nastaviť adoCat = CreateObject("ADOX.Catalog") Nastaviť adoCat.ActiveConnection = cn Nastaviť adoTbl = CreateObject("ADOX.Table") Nastaviť adoTbl.ParentCatalog = adoCat adoTbl.Name = "Tabuľka odkazov" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Link Provider String") = "MS Access" adoTbl.properties("Jet OLEDB:Názov vzdialenej tabuľky") = "Tabuľka1" adoTbl .properties("Jet OLEDB:Create Link") = True "Pridať tabuľku do kolekcie tabuliek " adoCat.Tables.Append adoTbl

DBF je široko používaný formát na ukladanie údajov, ktorý sa objavil v 80. rokoch minulého storočia. Formát bol prvýkrát použitý v rodine dBase DBMS. Kvôli popularite a rozšírenému používaniu dBase bolo vytvorených mnoho softvérových produktov podobných dBase, spoločne nazývaných xBase. Napriek značnému veku formátu je stále pomerne široko používaný. Tento článok pojednáva o tom, ako pracovať s DBF od 1C:Enterprise.

V 1C:Enterprise sa na prácu so súbormi vo formáte DBF (verzia dBase III) používa špeciálny softvérový objekt xBase. Práca s týmto objektom zvyčajne nespôsobuje ťažkosti.

Pozor!

Pri práci so súbormi DBF nezabudnite, že názov súboru musí spĺňať obmedzenie 8.3.

Pozor!

Objekt xBase je dostupný na strane klienta aj na strane servera. Pri riešení každého konkrétneho problému by ste mali myslieť prostredníctvom interakcie klient-server.

Čítanie súboru DBF

Čítanie údajov zo súboru DBF sa vykonáva v niekoľkých po sebe nasledujúcich krokoch:

  1. Vytvorenie objektu XBase;
  2. Otvorenie súboru;
  3. Postupne iterujte cez všetky riadky súboru a čítajte hodnoty polí;
  4. Zatvorenie súboru.
DBP = Nová XBase; DBP. OpenFile("D:\MyFile.dbf" ); // Fáza 2. Otvorenie súboru Zatiaľ čo cyklus pravdy // Fáza 3. Cyklovanie cez riadky súboru Správa(DBF.NAME); Ak NIE JE DBP. Ďalej () Potom // Pozícia na ďalšom zázname Prerušiť; koniec Ak; EndCycle; DBP. CloseFile(); // Fáza 4. Zatvorenie súboru

Na iteráciu cez riadky súboru môžete použiť mierne upravený algoritmus:

Zatiaľ NIE DBF. Správa AtEnd() slučky (DBF.NAME); DBP. Ďalšie(); EndCycle;

Nahrávanie do súboru DBF

Fázy nahrávania do súboru DBF:

  1. Vytvorenie objektu XBase;
  2. Určenie kódovania (ak nie je uvedené, použije sa kódovanie ANSI);
  3. Popis polí;
  4. Vytváranie súborov;
  5. Slučka s pridávacími a plniacimi linkami;
  6. Zatvorenie súboru.

Pozrime sa na tento proces na príklade:

DBP = Nová XBase; // Fáza 1. Vytvorte objekt XBase DBP. Kódovanie = EncodingXBase. OEM; // Fáza 2. Určenie kódovania DBP. Polia. Add("CODE" , "S" , 9 ); // Fáza 3. Popis názvu a typu poľa DBP. Polia. Add("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf" ); // Fáza 4. Vytvorenie súboru Výber = Adresáre. Nomenklatúra. Vybrať (); Čau výber. Ďalej () Slučka DBP. Pridať (); // Pridať riadok DBP. KÓD = Ukážka. kód; // Vyplňte hodnotu poľa DBP. MENO = Výber. Názov; DBP. Napíšte (); // Napíšte riadok EndCycle; DBP. CloseFile(); // Fáza 6. Zatvorenie súboru

Pri zadávaní kódovania sa používa typ kódovania XBase, ktorý môže nadobúdať dve hodnoty:

  • ANSI- formát Windows;
  • OEM– formát DOS.

Pridanie nového poľa pri popise štruktúry má syntax

Pridať (< Имя>, < Тип>, < Длина>, < Точность>)

K dispozícii sú nasledujúce typy:

  • „N“ – číslo;
  • „S“ – reťazec;
  • „D“ – dátum;
  • „L“ – boolovská hodnota;
  • „F“ – podobne ako „N“ – číslo.

Dĺžka poľa je povinná pre typy polí "N", "F" a "S".

Práca s indexmi

Indexový súbor možno použiť v spojení so súborom DBF, ktorý môže obsahovať informácie o jednom alebo viacerých indexoch. Prítomnosť indexov umožňuje použiť vyhľadávanie, a nie len postupné vyhľadávanie všetkých riadkov súboru.

Pri vytváraní indexového súboru musíte zadať:

  • Zoznam indexov;
  • Cesta k uloženiu indexového súboru (vo fáze 4 nahrávania).

Príklad vytvorenia indexového súboru:

DBP . Indexy. Add("INDCODE" , "CODE" ); DBP. CreateFile("D:\MyFile.dbf" , "D:\index.cdx" );

Syntax na pridanie nového indexu je:

Pridať (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Ak chcete použiť indexy pri čítaní zo súboru DBF:

  • Zadajte cestu k indexovému súboru (v štádiu 2 sťahovania);
  • Nastavte aktuálny index.

Príklad otvorenia súboru DBF pomocou indexového súboru:

DBP . OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); DBP. Aktuálny index = dbf. Indexy. INDCODE;

Pozor!

Pri otváraní súboru DBF sa umiestnenie nachádza na prvom zázname v súbore. Prvá položka v súbore sa nezhoduje s prvou položkou v indexe. Z tohto dôvodu sa pri používaní indexov musíte umiestniť na prvý riadok indexu pred postupným prechádzaním riadkov. Dá sa to urobiť pomocou metódy First(), napríklad:

DBP. Najprv();

Na vyhľadávanie možno použiť jednu z dvoch funkcií:

  • Nájsť (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

V dôsledku oboch funkcií sa vráti hodnota typu Boolean (bez ohľadu na to, či bol záznam so zadanými podmienkami nájdený alebo nie). Ak je vyhľadávanie úspešné, aktuálny ukazovateľ sa nastaví na nájdený riadok. Ako režim vyhľadávania možno použiť jednu z nasledujúcich hodnôt:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

Pozrime sa na vyhľadávanie v súbore DBF pomocou príkladov:

DBP = Nová XBase; DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // Pri otváraní súboru DBF je zadaný ďalší indexový súbor DBP. Aktuálny index = dbf. Indexy. INDCODE; // Nastavenie aktuálneho indexu // vyhľadávanie pomocou metódy Find: Ak DBP. Find("000000003" , "=" ) Potom Report( + DBP. NAME); Else Report("Nenájdené"); koniec Ak; // vyhľadávanie pomocou metódy FindByKey: DBP. kľúč. KÓD = "000000002" ; Ak DBP. FindByKey("=" ) Potom Report( "Nájdené. Názov položky: "+ DBP. NÁZOV); Else Report("Nenájdené"); koniec Ak; DBP. CloseFile();

Odstránenie záznamov v súbore DBF

Odstránenie záznamu sa vykonáva pomocou metódy Delete ():

DBP . Odstrániť();

Ale pri použití tejto metódy nie je záznam natrvalo odstránený zo súboru, je označený ako odstránený. Pri iterácii cez riadky sa záznamy označené na vymazanie preskočia. Ak chcete prehľadať celý súbor vrátane položiek označených na odstránenie, musíte nastaviť vlastnosť na hodnotu True. DisplayDeleted objekt xBase. Či je záznam označený na vymazanie alebo nie, zistíte pomocou funkcie RecordDeleted(). Ak chcete odstrániť značku odstránenia, použite metódu Restore().

DBP . DisplayDeleted = True; Zatiaľ NIE DBF. AtEnd() Loop Ak DBP. RecordDeleted() Potom DBP. Obnoviť (); koniec Ak; DBP. Ďalšie(); EndCycle;

Ak chcete priamo odstrániť označené položky, použite metódu Shrink():

DBP . Komprimovať();

Ak potrebujete odstrániť všetky položky v súbore priamo, môžete použiť metódu ClearFile():

DBP . ClearFile();

Načítanie z DBF pomocou ADO

Na prácu so súbormi DBF je možné použiť technológiu ADO. Ovládače ADO sú súčasťou operačného systému Windows a nie je potrebné ich dodatočne inštalovať.

Pozrime sa na príklad kódu na čítanie zo súboru DBF pomocou technológie ADO:

ADO = Nový COMObject("ADODB.Connection" ); // Vytvorenie objektu COM ADO. OTVORENÉ( "Poskytovateľ=Microsoft.Jet.OLEDB.4.0; |Zdroj údajov=""D:\""; |Rozšírené vlastnosti=DBASE III"); DB = ADO. Execute("Vybrať * z MyFile" ); // požiadavka na získanie všetkých záznamov zo súboru MyFile.DBF Ahoj BD. EOF= 0 Cyklus //Prehľadávanie záznamov súborov DBF Report(DB. Fields("Name" ). hodnota); // Príklad prístupu k hodnote poľa DB. MoveNext(); //Prejdi na ďalší záznam EndCycle; ADO. Zavrieť();

Zobrazený príklad používa reťazec pripojenia "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III". V tomto riadku:

  • Poskytovateľ je použitý ovládač;
  • Zdroj údajov – cesta, kde sa nachádza súbor DBF. Cesta je špecifikovaná presne podľa adresára. Názov súboru sa používa ako názov tabuľky v dotazoch;
  • Rozšírené vlastnosti – pri prístupe k súborom DBF je to povinný parameter. Môžete určiť formát súboru

Pozor!

Pri čítaní pomocou zadanej metódy je predvolené kódovanie OEM. Ak chcete zmeniť kódovanie na ANSI, musíte v registri Windows nastaviť parameter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage na hodnotu „ANSI“.

Možno vám pomôže tento kód:

Funkcia VB, ktorú budete musieť vložiť do MS Access, je pomerne jednoduchá a v podstate volá metódu TransferDatabase a odovzdá jej DSN (ukazujúce na zdrojovú databázu), názov zdrojovej tabuľky a názov cieľovej tabuľky. kód vyzerá takto:

Public Function Import(dsnName As String, sourceTableName As String, targetTableName As String) ‘ ak tabuľka už existuje, odstráňte ju. Pri chybe GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName End Function, _ targetTableName

A potom kód C#:

objekt pristupObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.Bindingnull access,InvokeMethods.In , nový objekt ( "AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, nový objekt ( "Import", "Názov DSN", "Názov zdrojovej tabuľky", "Názov cieľovej tabuľky" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopírovanie bolo úspešné."); ) catch (exception ex) ( string message = ex.Message; while (ex.InnerException != null) ( ex = ex.InnerException; message += "\r \n----\r\n" + ex.Message; ) MessageBox.Show(správa); ) nakoniec ( if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ))

Zmena jazyka VBA na čítanie acLink namiesto acImport by mala umožniť prepojenie.

Upraviť komentáre

Nemôžem vám pomôcť, ale tu je nejaký VBScript, ktorý spája tabuľku z jedného MDB do druhého.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Vytvoriť prepojenie..." Set cn = CreateObject("ADODB.Connection") cn.Otvoriť "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Zdroj údajov=" & strAccessFile & ";" & _ "Persist Security Info=False" Nastaviť adoCat = CreateObject("ADOX.Catalog") Nastaviť adoCat.ActiveConnection = cn Nastaviť adoTbl = CreateObject("ADOX.Table") Nastaviť adoTbl.ParentCatalog = adoCat adoTbl.Name = "Tabuľka odkazov" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Link Provider String") = "MS Access" adoTbl.properties("Jet OLEDB:Názov vzdialenej tabuľky") = "Tabuľka1" adoTbl .properties("Jet OLEDB:Create Link") = True "Pridať tabuľku do kolekcie tabuliek " adoCat.Tables.Append adoTbl