2016-08-18 2 views
0

В принципе, форма, которую я открыл, отображает набор данных из таблицы. Эти данные представляют собой строку в таблице в базе данных Access. Я пытаюсь использовать vba для получения текущего идентификатора формы/строки. Пример того, что я пытаюсь сделать, это в коде ниже:Идентификатор текущей текущей формы (первичный ключ)

If Me.process_status = 4 Then 
    ssql = "UPDATE [activity_submissions_tb] SET [Edit] = True WHERE" _ & 
    "submissionID =" & Forms![Form_Frm2_Activity_Submission_Edit]![submissionID] 
    DoCmd.RunSQL ssql 
Else 
    ssql = "UPDATE [activity_submissions_tb] SET [Edit] = False WHERE " _ & 
    "submissionID =" & Forms![Form_Frm2_Activity_Submission_Edit]![submissionID] 
    DoCmd.RunSQL ssql 
End If 

Я пытаюсь обновить таблицу, но не может получить условие WHERE работать, как я не знаю, что поставить на currentID.

Я не знаю, как бы я хотел получить идентификатор текущей формы/строки с помощью vba. Любая помощь будет оценен

+0

неродственного к вашей проблеме, но вы можете найти 'currentdb.execute' полезных альтернатива 'docmd.runSQL'. [Здесь] (http://www.utteraccess.com/wiki/index.php/RunSQL_vs_Execute) сообщение на эту тему. – LiamH

ответ

0

Вы можете попробовать это так:

ssql = "UPDATE [activity_submissions_tb] SET [Edit] = True WHERE [submissionID] = [currentID]" 

Надеется, что это помогает

+0

'currentID' не настроен ни на что, мне нужно, чтобы он ссылался на идентификатор текущей формы, который я не знаю. – mYxCHa

0

Были довольно просто просто не достаточно исследований. Простой Me.submissionID сделал трюк.

+0

'Forms! [Form_Frm2_Activity_Submission_Edit] .form! [SubmitID] .value' должен работать одинаково. – LiamH

0

Я думаю, что вы хотите recordset.clone ...

Dim rs as Recordset 
Dim ID as Integer 

Set rs = me.Form.Recordset.Clone 
ID = rs![FieldNameID] 

Или, если вы знаете номер столбца

ID = rs.Fields(0) 
Debug.Print ID 
Смежные вопросы