Külső adatbázisból olvasás...

Külső adatbázisból olvasás...
2015-03-04T09:31:08+01:00
2015-03-04T10:43:32+01:00
2022-12-02T06:20:39+01:00
B3Outlet
Van egy MSaccess adatbázisom VBA rutinokkal. Valahogy csatlakoznom kellene  egy másik adatbázishoz. Eddig fixen csatoltam a táblákat, de most Portable szerűen lett megoldva accdr-re lefordítva és acces runtime 2010-el van futtatva. Van ini fájlom abba be tudom állítani a paramétereket.
Van két problémám vele. Az egyik, hogy ritkán kell a külső adatbázisból olvasni, ezért jó lenne, ha csak akkor lenne kapcsolat, ha ténylegesen használom. A másik, hogy alapból SQL szerverre kell csatlakozni, de ha nincs kapcsolat, akkor megpróbálné az ini fájlban felsorolt összes kapcsolódással, és ha nem megy akkor egy ACCDB fájlból (az sql szerverről offline mód miatt letükrözött adatbázis) kellene vennie az adatokat.

A kérdés hogyan lehet ezekhez csak az adott pillanatban csatlakozni, hogy kinyerjem az adatokat, majd elengedni az adatbázist ha már nincs rá szükség?
Mutasd a teljes hozzászólást!
VBA-val menet közben is létre lehet hozni kapcsolt táblát és a kapcsolatot bontani is lehet belőle. Gyakorlatilag létre kell hoznod egy új táblát (TableDef) és annak connect tulajdonságát kell beállítanod, majd törölnöd kell a táblát, ha már nincs rá szükséged. Törlés után nem árt egy kompaktálni is a db-t.

Dim tblLinked As DAO.TableDef Set tblLinked = dbs.CreateTableDef("tábla_neve") 'ez jelenik meg névként a db-dben' tblLinked.Connect = "connection string" 'ez jön az ini file-ból. Ha kézzel megcsinálod a csatolást, akkor onnan is ki lehet másolni a connection string-et' tblLinked.SourceTableName = "forrás_tábla_neve" 'ez a tábla neve a forrás db-ben' CurrentDB.TableDefs.Append tblLinked 'létrehozzuk a táblát' tblLinked.RefreshLink


Törlés pedig nagyon egyszerű:

CurrentDB.TableDefs.Delete "tábla_neve" 'vagy DoCmd.DeleteObject acTable, "tábla_neve"
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd