Ms access 如何在ODBC连接中结束文件上的Windows锁定?
我使用Access从一系列结构相同的SQLite 3数据库导入数据。我有一个“Import.db”的系统/用户DSN。My Access DB已将表链接到Import.DB中的表 我的目标是通过链接表将数据导入Access表,然后删除import.db,然后将下一个SQLite3 db复制到同一位置,并将其命名为import.db,然后继续重复该过程,直到导入所有数据 我采用这种方法是因为我不知道如何动态创建DSN和SQLite3数据库的链接表。SQL Server,是的,但不是SQLite3。所以我想,只要使用相同的DSN,但改变实际的文件 问题是,在打开my Access DB并打开链接表后,Access会在Import.DB上创建一个Windows文件锁。所以我不能删除和替换它。相反,我可以导入一个,然后关闭Access,重新打开Access,然后重复。没那么热Ms access 如何在ODBC连接中结束文件上的Windows锁定?,ms-access,sqlite,linked-list,odbc,dsn,Ms Access,Sqlite,Linked List,Odbc,Dsn,我使用Access从一系列结构相同的SQLite 3数据库导入数据。我有一个“Import.db”的系统/用户DSN。My Access DB已将表链接到Import.DB中的表 我的目标是通过链接表将数据导入Access表,然后删除import.db,然后将下一个SQLite3 db复制到同一位置,并将其命名为import.db,然后继续重复该过程,直到导入所有数据 我采用这种方法是因为我不知道如何动态创建DSN和SQLite3数据库的链接表。SQL Server,是的,但不是SQLite3。
建议?您可以通过以下方式获取链接表的连接字符串:
Debug.Print CurrentDb.TableDefs("MyLinkedTable").Connect
现在,您已经获得了创建在不使用链接表的情况下导入的查询所需的信息
您可能会得到这样的结果:
ODBC;DSN=SQLite3;Database=Z:\Docs\Import.db;StepAPI=0;SyncPragma=NORMAL;
NoTXN=0;Timeout=;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;
FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;
但您可能不需要大部分,因此:
sODBC = "[ODBC;DSN=SQLite3;Database=Z:\Docs\Import.db;]"
''Create table query, but append and update are also easy enough
sSQL = "SELECT * INTO SQLite_Import FROM " & sODBC & ".SQLiteTableNameHere"
CurrentDb.Execute sSQL, dbFailOnError