| Цитата(mrbrooks @ 3.3.2008, 13:18) | Кул ИМХО - все работает и с Microsoft Office Access 2000 на мой взгляд заслуженно +1 к репе |
Собственно это я и имел ввиду вот тоже вполне рабочий примерчик.
| Код | include <ComObj.hpp> //... void __fastcall TFExport::CreateDB() { String dbdir = ExtractFilePath(FContMain->SrcName); // подставь своё имя источника String dbname = DateToStr(Date()); for (int i = 0; i < dbname.Length(); i++) // и сформируй своё имя приёмника if (dbname.c_str()[i] == '.') dbname.c_str()[i] = '_'; char buf[1024]; sprintf(buf, "%sbmd_exp_%02d_%s.MDB", dbdir.c_str(), FContMain->EntId, dbname.c_str()); // само имя БД String DstName = String(buf); sprintf(buf, "%sbmd_exp_%02d_%s.LOG", dbdir.c_str(), FContMain->EntId, dbname.c_str()); // имя лога String RepName = String(buf); //------------------------------------------------------------------------- if (FileExists(DstName)) { SetFileAttributes(DstName.c_str(), FILE_ATTRIBUTE_NORMAL); DeleteFile(DstName); // или наоборот - сообщить, что такая база уже есть и закончить работу, сам выбирай } WideString name = WideString(DstName); Variant acs = CreateOleObject("Access.Application"); acs.OleFunction("NewCurrentDatabase", name); acs.OleFunction("Quit"); acs = Unassigned; sprintf(buf, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False", DstName.c_str()); Conn->ConnectionString = String(buf); Conn->Connected = true;
|
|