У меня возникли некоторые проблемы с некоторыми функциями моего приложения. Существует конкретный экземпляр, в котором у меня есть экземпляр «ожидающего класса» в форме для проверки администратором. Форма заполняется учащимися, связанными с этим ожидающим классом. После того, как их оценки закончены, у меня есть кнопка в нижнем колонтитуле, которая удалит этот класс из моей «ожидающей» таблицы и добавит оценки всем ученикам. Это работает. Однако я хочу по существу копировать этот ожидающий класс, который просто имеет имя класса, дату и учитель до завершенной таблицы классов, прежде чем он будет удален из ожидающего. Поскольку в этой форме не сохраняется никаких данных об этом классе, отличном от первичного ключа (номер класса), я не могу заполнить другие поля (имя класса, дата) строки в моей заполненной таблице классов.MS access SELECT INTO in vba
Я пытаюсь выполнить операцию «SELECT INTO» в VBA, чтобы получить эти значения. Это происходит так:
dim cname as String
dim classdate as Date
dim pid as integer
dim teacher as String
dim qry as String
pid = [Forms]![frmClasses]![txtID]
qry = "Select className INTO cname FROM tblPending WHERE tblPending.id = " & " ' " & pid & " ' " & ";"
db.execute qry
debug.print qry
debug.print cname
Отсюда, я делаю те же операции для каждой другой переменной, построить мой ВСТАВИТЬ запрос и выполнить его. Проблема в том, что мой выбор не работает. Debug.print показывает, что локальные переменные никогда не инициализировались из инструкции SELECT INTO. Есть предположения?
Это запрос таблицы make, я считаю, что вы хотите добавить запрос. Я действительно не думаю, что ваш идентификатор - это текст. Если pid равно null (пустое), то кажется вероятным, что [Forms]! [FrmClasses]! [TxtID] пуст. Попробуйте использовать ключевое слово Me и посмотрите, какие контрольные имена он вызывает - Me. будет воспитывать intellisense. – Fionnuala
Я не могу использовать ключевое слово Me в этом случае. Вместо того, чтобы открывать форму с параметром, я использую поле из предыдущей формы. Поле с txtID (текстовое поле с идентификатором соответствующего класса) находится в предыдущей форме. Кроме того, эта часть работает по назначению. Выведенный запрос: «Выберите ClassName INTO cName FROM tblPending WHERe tblPending.id = '17';" Я также попытался удалить одиночные кавычки вокруг критериев id, так как это целое число, но это не имеет значения. – Scotch
В зависимости от того, какой выбор я сделал из предыдущей формы, я получаю правильный соответствующий класс ID – Scotch