Как сослаться на путь к профилю пользователя из инструкции Microsoft Access SQL INSERT INTO? - PullRequest
0 голосов
/ 11 февраля 2020

Я использую диск облачного хранилища, чтобы делиться некоторыми сложными базами данных Access со своими коллегами. Я бы хотел, чтобы базы данных выполнялись напрямую из локального облачного хранилища.

C:\Users\example.dude\CloudDrive\Other Folders\Main Database.accdb
C:\Users\example.dude\CloudDrive\Other Folders\Archive Database.accdb

Я смог заставить большинство из них работать. Однако у меня есть несколько запросов на добавление в основной базе данных, которые добавляют данные в архивную базу данных. Не полный оператор SQL ниже, просто пример.

::: Query in Main Database :::

INSERT INTO [Some Table] ( ID, [Other Fields] ) IN 'C:\Users\example.dude\CloudDrive\Other Folders\Archive Database.accdb\Archive Database.accdb'
SELECT [Some Table].ID, [Some Table].[Other Fields] AS etc etc etc

Проблема в том, что "example.dude" - это путь профиля пользователя только одного пользователя. Как получить доступ к OS% USERPROFILE% в операторе SQL?

Я не склонен к какому-либо решению VBA, которое динамически воссоздает SQL; У меня есть по крайней мере дюжина из этих SQL утверждений, и некоторые из них ОЧЕНЬ длинны.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Не является ответом на этот точный вопрос, но я нашел обходной путь.

Я использовал команду 'subst' в командной строке Windows, чтобы сопоставить букву диска с% userprofile% \ CloudDrive \ et c

Эта команда не является постоянной, поэтому я создал задачу в планировщике задач для запуска при входе пользователя и запуска subst.

Затем все, что мне нужно было сделать, это изменить SQL на точку к новой букве диска и пути.

0 голосов
/ 11 февраля 2020

Использование Окружающая среда :

INSERT INTO [Some Table] ( ID, [Other Fields] ) IN 'C:\Users\" & Environ("username") & "\CloudDrive\Other Folders\Archive Database.accdb\Archive Database.accdb'
...