Nano Hash - криптовалюты, майнинг, программирование

MS Access: как заставить Access искать имя файла на основе того, что пользователь выбрал в поле со списком?

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

Например, если пользователь выбирает «A» в поле со списком, Access должен искать электронную таблицу с именем «Spreadsheet_A». Каков синтаксис для этого?

Что я пробовал:

Я попытался создать макрос и использовать действие ImportExportSpreadsheet. Я пытался указать имя файла как J:\blah\Spreadsheet_[Combo353], а также J:\blah\Spreadsheet_+[Combo353] и даже J:\blah\Spreadsheet_+"[Combo353]", но все они возвращают одну и ту же ошибку:

Ядру базы данных Microsoft Access не удалось найти объект «J:\blah\Spreadsheet_[Combo353].xlsx. Убедитесь, что объект существует.....

Я уверен, что путь правильный, мне просто нужно знать синтаксис того, как заставить его использовать значение в поле со списком. Если это невозможно, я также доволен решением VBA.


Решение состояло из двух частей: написать правильный синтаксис (см. ответ ниже), а также отключить переменную strpath


  • Проверьте поле со списком. Отображается ли имя электронной таблицы в раскрывающемся списке связанного столбца или это скрытый идентификатор связанного столбца? 26.05.2016

Ответы:


1

Ваш синтаксис не совсем правильный:

"J:\blah\Spreadsheet_" & [Forms]![MyFormName]![Combo353].Value & ".xls"

Предполагая, что код запускается из формы, содержащей поле со списком.

Путь является статическим, поэтому он считается строкой. Строки заключаются в двойные кавычки. Затем мы хотим добавить комбо-значение в конец этой строки. Когда вы добавляете строку к строке, вы выполняете «конкатенацию», для которой требуется амперсанд, чтобы показать, что две строки должны быть сложены вместе. Поскольку ссылка на поле со списком идентифицирует элемент управления, значение которого мы хотим поместить в строку, он не входит в кавычки, поэтому Access оценивает значение, а не само имя элемента управления.

25.05.2016
  • Код запускается с кнопки, которую я сделал в той же форме, что и поле со списком. 25.05.2016
  • Я думаю, что он использует макрос, а не vba, поэтому он должен быть = "J:\blah\Spreadsheet_" & [Forms]![myForm]![Combo353].Value 25.05.2016
  • @whatwhatwhat, я забыл добавить расширение файла. Я отредактировал свой ответ. Если вы получите ту же ошибку, опубликуйте источник управления вашего поля со списком и код, открывающий файл. 25.05.2016
  • @BitAccesser да, я пытаюсь сделать это в макросе. Я указал VBA на тот случай, если это невозможно с помощью макроса (для простоты!) 25.05.2016
  • Та же ошибка @ChristopherD. Что вы подразумеваете под источником управления и кодом, открывающим файл? Для поля со списком я использую событие On Click для запуска встроенного макроса, а затем на экране, где можно создать макрос, я использую действие ImportExportSpreadsheet. 25.05.2016
  • @Что мой комментарий сработал для вас, если не показать сообщение об ошибке! 25.05.2016
  • @BitAccesser это не сработало. Я получаю одно и то же сообщение об ошибке для всех предложенных комбинаций (см. ошибку в вопросе). Кажется, он не может найти объект. Я скопировал путь непосредственно из проводника Windows, а также скопировал первую часть имени файла, чтобы не было возможности сделать опечатку. 25.05.2016
  • Это действительно странно - он распознает путь к файлу дважды, хотя в моем макросе я, конечно, не пишу его дважды... 25.05.2016
  • @what Пожалуйста, опубликуйте свой макрос и источник управления своим полем со списком. Источник управления находится в свойствах вашего поля со списком. Это должен быть оператор SQL. Отредактируйте свой вопрос, чтобы включить эти две вещи. 25.05.2016
  • @что ты пропустил = в начале! 25.05.2016
  • @КристоферД. странно, но источник управления для поля со списком пуст, но я все еще получаю 4 значения, которые хочу .... немного отредактировав вопрос, нужно сменить местоположение / компьютеры. 25.05.2016
  • Я понял, что вызывало эту ошибку. Проблема заключалась в том, что пока я тестировал это, я использовал некоторый код VBA, который нашел в Интернете, чтобы установить strPath в местоположение файла. Поэтому я просто очистил переменную, используя Set strPath = Nothing. Но теперь я получаю другую ошибку - Field 'F1' doesn't exist in the destination table 'table_A.' 26.05.2016
  • В моей таблице есть 2 поля: поле автонумерации ID и поле item. Мне нужно очистить содержимое таблицы перед импортом, а затем импортировать только 1 столбец электронной таблицы в столбец item в таблице. есть идеи? 26.05.2016
  • @whatwhatwhat Я не могу вам помочь, так как я не знаю макроса, импортирующего таблицу. Учитывая, что вы получаете сообщение об ошибке на новой строке, я предлагаю закрыть этот вопрос и задать другой вопрос для решения вашей новой проблемы. 26.05.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..