Ātrs veids, kā lasīt dbf c. Kā programmatiski savienot DBF failu programmā Access? Ierakstu dzēšana DBF failā

Šodien, iespējams, nevienam nav jāstāsta, ka diezgan bieži daudzi lietotāji saskaras ar failiem ar paplašinājumu .dbf. Skumjākais ir tas, ka operētājsistēmā Windows, pat ja ir instalēts Microsoft Office, ar šo faila tipu nav saistīta neviena programma. Mums tas ir, tagad mēģināsim to izdomāt. Tajā pašā laikā apskatīsim, kā var iestatīt paplašinājuma saistību turpmākai automātiskai datu atpazīšanai un vajadzīgā faila atvēršanai.

DBF formāts: apraksts

Patiesībā jau no paša saīsinājuma, kas tiek lietots šāda veida faila paplašinājumam, var secināt, ka šī ir datu bāze. Tas ir nedaudz specifisks, jo šādiem failiem parasti ir paplašinājums

Šajā gadījumā mums ir vēl viens, kuru, neskatoties uz tā specifiku, atpazīst daudzas programmas, kas atbalsta darbu ar šāda veida informāciju. Tas var būt tas pats Excel vai Access, kas ir daļa no galvenās Microsoft Office pakotnes, vai jebkura cita biroja lietojumprogramma no trešo pušu izstrādātājiem.

Kā atvērt DBF standarta versijā

Patiesībā, ja pēkšņi saskaraties ar šāda veida failu (ikona uz tā netiek izmantota pat pārlūkprogrammā Explorer), nekrītiet panikā. To var vienkārši atvērt, izmantojot Excel, jo tajā tiek saglabāta visa loģiskā struktūra un, ņemot vērā to pašu, iespēja izmantot standarta meklēšanas sistēmu.

Tā kā standarta versijā neviena programma nav saistīta ar pašu failu, ir divi veidi, kā rīkoties. Ieteicams, piemēram, vienkārši palaist Excel vai Access un pēc tam izmantot standarta faila atvēršanas izvēlni vai taustiņu kombināciju Ctrl + O. Tomēr izvēlnē, kas parādās faila tipa laukā, ir jānorāda “Visi faili”. (un nevis “vietējais” formāts), pēc tam, kāpēc atlasiet failu, kuru meklējat. Varat būt drošs: jebkura izklājlapu programma bez problēmām atpazīs šo datu tipu.

Kā jau ir skaidrs, problēma, kā atvērt DBF failu, mūsu gadījumā ir saistīta tikai ar standarta biroja lietojumprogrammas izmantošanu manuālajā režīmā. Kā jau ir skaidrs, šī metode ne vienmēr ir ērta un prasa noteiktu laiku.

Saistītās programmas

Tagad apskatīsim pašu DBF failu. Kā to atvērt, neizmantojot standarta biroja komplekta programmas? Jā, tās pašas utilītas ir iekļautas līdzīgos programmatūras produktos.

Piemēram, tas varētu būt tas pats Open Office, Lotus utt. Principā šeit nav lielas atšķirības, jo svarīgi ir tikai tas, ka izmantotā programma spēj strādāt ar tabulu elektroniskiem datiem. DBF formāta lasīšana visos gadījumos tiek veikta tieši tāpat. Starp citu, tas nav atkarīgs no biroja komplekta izstrādātāja, jo ikvienam ir atbalsts šāda veida datiem, tostarp pat tādām platformām kā Oracle.

Noklusējuma atvēršanas opciju maiņa

Tagad redzēsim, kā atvērt DBF failus, lai tiktu izmantots automātiskais režīms. Vienkāršākajā gadījumā tas tiek darīts no izsauktās apakšizvēlnes, parastajā “Explorer” ar peles labo pogu noklikšķinot uz faila, kur ir atlasīta komanda “Atvērt ar...”.

Vienā gadījumā tiek izmantota viena no uzskaitītajām lietojumprogrammām. Lai vēlreiz nemocītu DBF failu atvēršanu, varat vienkārši norādīt atlasīto lietojumprogrammu un pēc tam atzīmēt izvēles rūtiņu blakus rindai “Izmantot visiem šāda veida failiem” apakšā. Tā pati Excel nākotnē (ja tā ir izvēlēta kā noklusējuma programma) atvērs šāda veida failu ar parastu dubultklikšķi.

Pats par sevi saprotams, ka Excel vietā varat izvēlēties Access vai citas programmas, kas var atpazīt un atvērt šāda veida datus. Ne par to ir runa. Galvenais ir konfigurēt automātisku datu bāzes atvēršanu. Nu, ar ko strādāt programmatūras ziņā, tas ir katra atsevišķa datorsistēmas lietotāja ziņā.

Kāds ir rezultāts?

Rezumējot, ir vērts teikt, ka labākais risinājums šāda veida failu atvēršanai, protams, ir Microsoft biroja komplekts, jo tas ir visizplatītākais visā pasaulē. Tiesa, nav nekā slikta, ja lietotājs, kurš neizmanto Microsoft produktus, atvērs šāda veida datus jebkurā citā aplikācijā.

Kā jau ir skaidrs no visa iepriekš minētā, tabulu redaktori ir pieejami gandrīz visās mūsdienās zināmajās pakotnēs. Tie var atšķirties viens no otra tikai ar saviem nosaukumiem un noteikti ne pēc funkcionālā komplekta, kas, kā likums, visur ir vienāds, ar retiem izņēmumiem.

Cita starpā attiecīgi jūs varat izmantot daudzus izstrādes rīkus, izmantojot diezgan lielu skaitu programmēšanas valodu. Tajā pašā platformā, kas atbalsta SQL serveru izveidi un optimizāciju, šādi faili tiek atvērti, kā saka, uzreiz. Atverot, tiem būs diezgan specifisks izskats, kas parastam lietotājam ir nedaudz neparasts. Tomēr lielākā daļa lietotāju, visticamāk, neizmantos šādus profesionālās attīstības rīkus un aprobežosies tikai ar standarta programmatūras komplektu.

Labdien visiem, dārgie emuāra lasītāji. Šodienas rakstā es runāšu par piekļuvi DBF failiem (tabulām) dažādos veidos. Es saskāros ar šo problēmu, kad man vajadzēja piekļūt FoxPro DBF tabulām. Es mēģināju caur BDE, tas nedarbojās, tikai uz Paradox tabulām (dbf), galu galā es nolēmu izmēģināt TDBF komponentu - tas arī izrādījās neveiksmīgs. Es nolēmu mēģināt izveidot savienojumu, izmantojot ADO vecmodīgi, un viss noritēja kā pulkstenis.

Tāpēc šajā rakstā es jums pastāstīšu, kā izveidot savienojumu ar DBF tabulām trīs veidos:

  • Izmantojot BDE - šī opcija man nederēja FoxPro tabulām
  • Izmantojot ADO - FoxPro galdi atvērās lieliski
  • Izmantojot TDBF komponentu, tas atver Paradox tabulas ar dažādu kodējumu vai dBase labi.

Ja godīgi, BDE es nemaz nevaru ciest, bet man bija jāstrādā ar šādām tabulām un pirmais variants, caur kuru es gribēju ar tām pieslēgties, bija izmantot BDE, kas principā man sanāca, ka ir, man izdevās dabūt tabulu sarakstu, par ko nopriecājos un domāju, ka viss turpināsies kā cerēts, bet tā nebija. Mēģinot izveidot savienojumu ar tabulu, es saņēmu kļūdu, piemēram:

Mēģināju instalēt gan pašā BDE Administratorā, gan pieslēdzoties, bet nekas neizdevās. Bet izmantojot šo metodi, man izdevās lieliski pieslēgties DBF - Paradox tabulām, piemēram, dBase.

Tāpēc mēs veidlapā instalējam šādus komponentus no cilnes BDE:

  • TTable vai TQuery
  • Pēc izvēles varat izmantot TDataSource un TDbGrid

Tālāk komponenta TDataBase rekvizītā DatabaseName iestatījām datu bāzes nosaukumu, es uzrakstīju - MyDB, un tā paša komponenta rekvizītā DriverName nolaižamajā sarakstā izvēlējos STANDART. Mēs iestatījām LoginPromt rekvizītu uz False, jo mūsu tabulās nav pieteikšanās un paroles. Īpašumā Params mēs iestatām savienojuma parametrus, es norādīju tikai ceļu uz mūsu tabulām:

Varat arī veikt dubultklikšķi uz TDataBase komponenta un konfigurēt nepieciešamo savienojumu un iestatīt rekvizītu Connected uz True, kā rezultātā savienojums ar tabulām tiks izveidots bez kļūdām. Tas arī viss, ejam uz komponentu TTable, kur rekvizītā DatabaseName mēs norādām mūsu datu bāzes nosaukumu, tas ir, MyDB. Rekvizītā TableType atlasiet tabulas veidu, es norādīju ttDBase, un rekvizītā TableName atlasiet tabulas nosaukumu, pēc kura rekvizītu Active iestatām uz True. Tas ir viss, tas man lieliski savienojas un lieliski parāda tabulu.

Bet šī opcija man nederēja ar FoxPro tabulām, kā jau minēju iepriekš. Tāpēc, lai atrisinātu savu problēmu, es nolēmu izmantot ADO tehnoloģiju. Tātad no cilnes ADO es instalēju šādus komponentus:

  • TADOSavienojums
  • TADOQuery vai TADOTable
  • Pēc izvēles varat instalēt TDataSource un TDBGrid

Tālāk mums vienkārši jāizveido savienojums, ko izveidojām MS Access datu bāzei. Tas atšķirsies ar to, ka mēs atlasīsim citu datu nodrošinātāju, proti, Microsoft Visual FoxPro ODBC. Tas arī viss, tad mēs norādām kodējumu un ceļu uz tabulām. Ja tās ir FoxPro tabulas, tad mapē ir jābūt failam ar visu tabulu sarakstu ar paplašinājumu *.dbc. Tas ir, TADOCONnection komponenta savienojuma virkne izskatīsies apmēram šādi:

Mēs savienojam TADOConnection komponentu ar TADOTable vai TADOQuery un strādājam ar mums nepieciešamajām tabulām.

Vēl viena iespēja ir strādāt ar dbf formāta tabulām, izmantojot TDBF komponentu, ko izmantoju projektā. Godīgi sakot, es gribu no tā atteikties, tas vienkārši labi darbojas ar kodējumu. Es nestāstīšu, kā ar to strādāt, bet atstāšu tikai saiti kā piemēru.

Varbūt šis kods var palīdzēt:

VB funkcija, kas jāievieto MS Access, ir diezgan vienkārša un pamatā izsauc TransferDatabase metodi, nododot tai DSN (norāda uz avota datu bāzi), avota tabulas nosaukumu un galamērķa tabulas nosaukumu. kods izskatās šādi:

Publiskās funkcijas importēšana (dsnName kā virkne, avota tabulas nosaukums kā virkne, mērķa tabulas nosaukums kā virkne) “ja tabula jau pastāv, izdzēsiet to. Kļūda GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName FunctionTableName, End_ targetTableName

Un tad C# kods:

objekts accessObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.InvokeFObths.InvokeFObth , jauns objekts ("AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, new Object ("Import", "DSN nosaukums", "avota tabulas nosaukums", "mērķa tabulas nosaukums" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopēšana izdevās."); n----\r\n" + ex.Message; ) MessageBox.Show(message); ) beidzot ( if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ) )

Mainot VBA, lai lasītu acLink, nevis acImport, ir jāļauj izveidot saiti.

Rediģēt komentārus

Es nevaru palīdzēt ar C#, bet šeit ir daži VBScript, kas saista tabulu no viena MDB uz citu.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Izveidot saiti..." Set cn = CreateObject("ADODB.Connection") cn.Atveriet "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Datu avots=" & strAccessFile & ";" & _ "Saglabāt drošības informāciju=False" Iestatīt adoCat = CreateObject("ADOX.Catalog") Iestatīt adoCat.ActiveConnection = cn Iestatīt adoTbl = CreateObject("ADOX.Table") Iestatīt adoTbl.ParentCatalog = adoCat adoTbl.Name" = "LinkTable" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Saites nodrošinātāja virkne") = "MS Access" adoTbl.properties("Jet OLEDB:Attālās tabulas nosaukums") = "Tabula1" adoTbl .properties("Jet OLEDB:Izveidot saiti") = True "Pievienot tabulu tabulu kolekcijai " adoCat.Tables.Pievienot adoTbl

DBF ir plaši izmantots datu uzglabāšanas formāts, kas parādījās pagājušā gadsimta 80. gados. Formāts pirmo reizi tika izmantots dBase DBVS saimē. dBase popularitātes un plašās izmantošanas dēļ ir izveidoti daudzi dBase līdzīgi programmatūras produkti, ko kopā sauc par xBase. Neskatoties uz formāta ievērojamo vecumu, tas joprojām ir diezgan plaši izmantots. Šajā rakstā ir apskatīts, kā strādāt ar DBF no 1C:Enterprise.

1C:Enterprise darbam ar failiem DBF formātā (versija dBase III) tiek izmantots īpašs programmatūras objekts xBase. Darbs ar šo objektu parasti nesagādā grūtības.

Uzmanību!

Strādājot ar DBF failiem, atcerieties, ka faila nosaukumam jāatbilst ierobežojumam 8.3.

Uzmanību!

Objekts xBase ir pieejams gan klienta, gan servera pusē. Risinot katru konkrēto problēmu, jums jādomā par klienta un servera mijiedarbību.

DBF faila lasīšana

Datu nolasīšana no DBF faila tiek veikta vairākos secīgos soļos:

  1. XBase objekta izveidošana;
  2. Faila atvēršana;
  3. Secīgi atkārto visas faila rindas un nolasa lauku vērtības;
  4. Faila aizvēršana.
DBP = Jauna XBase; DBP. OpenFile("D:\MyFile.dbf"); // 2. posms. Faila atvēršana Kamēr patiesības cikls // 3. posms. Atkārtojiet faila rindas Pārskats(DBF.NAME); Ja NAV DBP. Nākamais() Tad // Pozīcija nākamajā ierakstā Pārtraukt; endIf; EndCycle; DBP. CloseFile(); // 4. posms. Faila aizvēršana

Varat izmantot nedaudz modificētu algoritmu, lai iterētu pa faila rindām:

Vēl NAV DBF. AtEnd() Loop Report (DBF.NAME); DBP. Nākamais(); EndCycle;

Augšupielāde DBF failā

Augšupielādes posmi DBF failā:

  1. XBase objekta izveidošana;
  2. Kodējuma norādīšana (ja nav norādīts, tiks izmantots ANSI kodējums);
  3. Lauku apraksts;
  4. Failu izveide;
  5. Cilpa ar pievienošanas un aizpildīšanas līnijām;
  6. Faila aizvēršana.

Apskatīsim šo procesu, izmantojot piemēru:

DBP = Jauna XBase; // 1. posms. Izveidojiet XBase objektu DBP. Kodēšana = EncodingXBase. OEM; // 2. posms. Kodējuma norādīšana DBP. Lauki. Pievienot("KODS" , "S" , 9 ); // 3. posms. Lauka nosaukuma un veida apraksts DBP. Lauki. Pievienot("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf"); // 4. posms. Failu izveide Atlase = Katalogi. Nomenklatūra. Izvēlieties (); Ardievu atlase. Nākamais() Cikls DBP. Pievienot();// Pievienojiet rindu DBP. KODS = paraugs. Kods;// Aizpildiet lauka vērtību(); DBP. NOSAUKUMS = atlase. Vārds;

DBP. Rakstīt (); // Uzrakstiet rindu EndCycle; DBP. Aizvērt failu

  • // 6. posms. Faila aizvēršana Norādot kodējumu, tiek izmantots XBase Encoding tips, kam var būt divas vērtības:
  • ANSI- Windows formāts;

OEM

- DOS formāts. (< Имя>, < Тип>, < Длина>, < Точность>)

Jauna lauka pievienošanai, aprakstot struktūru, ir sintakse

  • Pievienot
  • Ir pieejami šādi veidi:
  • “N” – skaitlis;
  • “S” – stīga;
  • “D” – datums;

“L” – Būla;

“F” – līdzīgi kā “N” – skaitlis.

Indeksa failu var izmantot kopā ar DBF failu, kurā var būt informācija par vienu vai vairākiem indeksiem. Indeksu klātbūtne ļauj izmantot meklēšanu, nevis tikai secīgu meklēšanu visās faila rindās.

Veidojot indeksa failu, jānorāda:

  • Indeksu saraksts;
  • Indeksa faila saglabāšanas ceļš (augšupielādes 4. posmā).

Indeksa faila izveides piemērs:

DBP . Indeksi. Add("INDCODE" , "CODE" ); DBP. Izveidot failu("D:\MyFile.dbf" , "D:\index.cdx" );

Jauna indeksa pievienošanas sintakse ir:

- DOS formāts. (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Lai izmantotu indeksus, lasot no DBF faila:

  • Norādiet indeksa faila ceļu (2. lejupielādes posmā);
  • Iestatiet pašreizējo indeksu.

Piemērs DBF faila atvēršanai, izmantojot indeksa failu:

DBP . OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); DBP. Pašreizējais indekss = dbf. Indeksi. INDCODE;

Uzmanību!

Atverot DBF failu, pozicionēšana notiek faila pirmajā ierakstā. Pirmais ieraksts failā neatbilst pirmajam ierakstam rādītājā. Šī iemesla dēļ, izmantojot indeksus, pirms secīgas rindu šķērsošanas jums ir jānovieto sevi indeksa pirmajā rindā. To var izdarīt, izmantojot metodi First(), piemēram:

DBP. Pirmais ();

Meklēšanai var izmantot vienu no divām funkcijām:

  • Atrast (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

Abu funkciju rezultātā tiek atgriezta Būla tipa vērtība (neatkarīgi no tā, vai ieraksts ar norādītajiem nosacījumiem tika atrasts vai nē). Ja meklēšana ir veiksmīga, pašreizējais rādītājs tiek iestatīts uz atrasto līniju. Kā meklēšanas režīmu var izmantot vienu no šīm vērtībām:

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

Apskatīsim meklēšanu DBF failā, izmantojot piemērus:

DBP = Jauna XBase; DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // Atverot DBF failu, tiek norādīts papildu indeksa fails DBP. Pašreizējais indekss = dbf. Indeksi. INDCODE; // Iestatiet pašreizējo indeksu // meklēt, izmantojot atrašanas metodi: Ja DBP. Find("000000003" , "=" ) Tad Report( + DBP. NAME); Cits ziņojums ("Nav atrasts"); endIf; // meklēt, izmantojot FindByKey metodi: DBP. Atslēga. KODS = "000000002" ; Ja DBP. FindByKey("=" ) Pēc tam ziņot( "Atrasts. Preces nosaukums: "+ DBP. NOSAUKUMS); Cits ziņojums ("Nav atrasts"); endIf; DBP. Aizvērt failu();

Ierakstu dzēšana DBF failā

Ieraksta dzēšana tiek veikta, izmantojot Dzēst () metodi:

DBP . Dzēst();

Bet, izmantojot šo metodi, ieraksts netiek neatgriezeniski izdzēsts no faila, tas tiek atzīmēts kā dzēsts. Atkārtojot rindas, ieraksti, kas atzīmēti dzēšanai, tiek izlaisti. Ja vēlaties pārmeklēt visu failu, tostarp ierakstus, kas atzīmēti dzēšanai, jums ir jāiestata rekvizīts uz True. DisplejsDzēsts xBase objekts. Varat uzzināt, vai ieraksts ir atzīmēts dzēšanai vai nav, izmantojot funkciju RecordDeleted(). Lai noņemtu dzēšanas atzīmi, izmantojiet metodi Atjaunot().

DBP . DisplayDeleted = patiess; Vēl NAV DBF. AtEnd() Loop Ja DBP. RecordDeleted() Tad DBP. Atjaunot();(); EndCycle;

endIf; DBP. Nākamais

DBP Lai tieši noņemtu atzīmētos ierakstus, izmantojiet metodi Shrink():();

. Saspiest

DBP Ja jums ir tieši jādzēš visi faila ieraksti, varat izmantot ClearFile() metodi:();

. ClearFile

Ielādē no DBF, izmantojot ADO

ADO tehnoloģiju var izmantot darbam ar DBF failiem. ADO draiveri ir iekļauti Windows operētājsistēmā, un tie nav jāinstalē papildus.

Apskatīsim koda piemēru lasīšanai no DBF faila, izmantojot ADO tehnoloģiju: ADO = Jauns COMObject("ADODB.Savienojums");// Izveidojiet COM objektu ADO. Atvērt("Provider=Microsoft.Jet.OLEDB.4.0; |Datu avots = ""D:\""; | Paplašinātie rekvizīti = DBASE III ); DB = ADO. Execute("Atlasīt * no MyFile" );// pieprasījums iegūt visus ierakstus no faila MyFile.DBF Čau, BD. EOF= 0 Cikls//Cilpa cauri DBF faila ierakstiem Report(DB. Fields("Nosaukums" ). vērtība);// Piekļuves lauka vērtībai piemērs DB. MoveNext();//Pāriet uz nākamo ierakstu

EndCycle; ADO. Aizvērt ();

  • Tālāk sniegtajā piemērā tiek izmantota savienojuma virkne "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III. Šajā rindā:
  • Pakalpojumu sniedzējs ir izmantotais draiveris;
  • Datu avots – ceļš, kurā atrodas DBF fails. Ceļš ir norādīts precīzi direktorijā. Faila nosaukums tiek izmantots kā tabulas nosaukums vaicājumos;

Uzmanību!

Extended Properties – piekļūstot DBF failiem, tas ir obligāts parametrs. Varat norādīt faila formātu

Lasot, izmantojot norādīto metodi, noklusējuma kodējums ir OEM. Lai mainītu kodējumu uz ANSI, Windows reģistrā ir jāiestata parametrs HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage uz “ANSI”.

VB funkcija, kas jums būs jāievieto MS Access, ir diezgan vienkārša un pamatā izsauc TransferDatabase metodi, nododot tai DSN (norāda uz avota datu bāzi), avota tabulas nosaukumu un galamērķa tabulas nosaukumu. kods izskatās šādi:

Publiskās funkcijas importēšana (dsnName kā virkne, avota tabulas nosaukums kā virkne, mērķa tabulas nosaukums kā virkne) “ja tabula jau pastāv, izdzēsiet to. Kļūda GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName FunctionTableName, End_ targetTableName

Un tad C# kods:

objekts accessObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.InvokeFObths.InvokeFObth , jauns objekts ("AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, new Object ("Import", "DSN nosaukums", "avota tabulas nosaukums", "mērķa tabulas nosaukums" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopēšana izdevās."); n----\r\n" + ex.Message; ) MessageBox.Show(message); ) beidzot ( if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ) )

Mainot VBA, lai lasītu acLink, nevis acImport, ir jāļauj izveidot saiti.

Rediģēt komentārus

Es nevaru palīdzēt šajā jautājumā, bet šeit ir daži VBScript, kas saista tabulu no viena MDB uz citu.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Izveidot saiti..." Set cn = CreateObject("ADODB.Connection") cn.Atveriet "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Datu avots=" & strAccessFile & ";" & _ "Saglabāt drošības informāciju=False" Iestatīt adoCat = CreateObject("ADOX.Catalog") Iestatīt adoCat.ActiveConnection = cn Iestatīt adoTbl = CreateObject("ADOX.Table") Iestatīt adoTbl.ParentCatalog = adoCat adoTbl.Name" = "LinkTable" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Saites nodrošinātāja virkne") = "MS Access" adoTbl.properties("Jet OLEDB:Attālās tabulas nosaukums") = "Tabula1" adoTbl .properties("Jet OLEDB:Izveidot saiti") = True "Pievienot tabulu tabulu kolekcijai " adoCat.Tables.Pievienot adoTbl