Access 2007 vba Как связать запрос с кнопкой, которая заполнит поле в форме? - PullRequest
0 голосов
/ 01 октября 2011

Так как все были так полезны для меня, как новичок в Access / SQL / VBA, я решил попробовать другой вопрос.Я создаю форму отслеживания системы для некоторых наших процессов обеспечения информации, и у меня есть кнопка в форме, в которой я хочу взять поле в формате CSV под названием Affered_Machine_Name из таблицы B и вставить его в поле Affered_Machine_Name в таблице A,на этом основана форма.

Запрос (All_Machine_Names), который я написал, чтобы попытаться сделать это, выглядит следующим образом:

INSERT INTO TableA (Affered_Machine_Name. [Value])ВЫБЕРИТЕ TableB.Acted_Machine_NameFROM TableA, TableB;

После некоторых исследований в одной из других публикаций я связал ее с кнопкой VBA onClick следующим образом:

Public Sub All_Button ()

Screen.ActiveDatasheet! Acted_Machine_Name = DoCmd.OpenQuery "All_Machine_Names"

End Sub

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

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

Любая помощьэто может быть предоставлено, будет принята с благодарностью!Спасибо!ОБНОВЛЕНИЕ: Так как я искал варианты того, как завершить это, и думаю, что мне нужно закрыть этот вопрос и переопределить мою проблему.Спасибо всем, кто предоставил некоторые советы и указания.

1 Ответ

0 голосов
/ 01 октября 2011

Я собираюсь предположить, что у вас есть уникальный идентификатор машины (PK?) В вашей форме, и вы хотите, чтобы Affered_Machine_Name из таблицы B, где Machine_ID (или какой-либо ID / PK) равняется текущей записи машиныиз таблицы A. Предположим, что ваша форма BOUND (не только основана на) для TableA, а поле ID в обеих таблицах называется Machine_ID.

Если это так, то в коде должно работать следующеекнопка на форме:

me!Affected_Machine_Name = dlookup("Affected_Machine_Name", "TableB", "Machine_ID = " & me!Machine_ID

В этом коде "я!"способ ссылки на поля связанной таблицы для текущей выбранной записи.Dlookup возвращает данные из таблицы с аргументами dlookup (поле, таблица, условие).Таким образом, будет возвращено имя компьютера из TableB, у которого тот же идентификатор, что и у текущей записи в форме.

(Дополнительный вопрос: почему вы храните данные CSV в базе данных, а не разбиваете их на отдельную таблицу?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...