Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 捕获主键值_Ms Access_Vba - Fatal编程技术网

Ms access 捕获主键值

Ms access 捕获主键值,ms-access,vba,Ms Access,Vba,我正在使用以下代码将记录添加到表中: Dim rs1 As DAO.Recordset Set rs1 = CurrentDb.OpenRecordset("QUOTE-Run", dbOpenDynaset) rs1.AddNew rs1.Fields("[QuoteNumber]").value = [txtQuoteNumber].value rs1.Fields("[LeadTime]").value = [txtLeadTime].value rs1.Fields("[Qty]").

我正在使用以下代码将记录添加到表中:

Dim rs1 As DAO.Recordset
Set rs1 = CurrentDb.OpenRecordset("QUOTE-Run", dbOpenDynaset)

rs1.AddNew
rs1.Fields("[QuoteNumber]").value = [txtQuoteNumber].value
rs1.Fields("[LeadTime]").value = [txtLeadTime].value
rs1.Fields("[Qty]").value = [txtQty].value
rs1.Fields("[Title]").value = [txtTitle].value
rs1.Fields("[Date]").value = VBA.DateTime.Date
rs1.Fields("[Time]").value = VBA.DateTime.Time
rs1.Fields("[InitiatedBy]").value = Application.CurrentUser
rs1.Fields("[IncompleteProblemNotes]").value = [txtIncompleteProblemNotes].value
rs1.Fields("[CustomerNotes]").value = [txtCustomerNotes].value
rs1.Fields("[Memo]").value = [txtMemo].value
rs1.Fields("[Memo1]").value = [txtMemo1].value
rs1.Fields("[PrefferedQuoteRunSelect]").value = [txtPrefferedQuoteRunSelect].value
rs1.Fields("[CombinedRun]").value = [chkCombinedRun].value
rs1.Update

创建记录时,有一个名为RunID的自动编号主键字段,它获取一个值。我需要知道该值是什么,以便稍后在代码中使用它。获取该值的最简单方法是什么?

我能想到的获取RunID值的最简单方法是在更新记录之前声明一个变量并将该变量设置为等于字段。大概是这样的:

   Dim rs1 As DAO.Recordset
   Set rs1 = CurrentDb.OpenRecordset("QUOTE-Run", dbOpenDynaset)
   Dim TempRunID As Long

   rs1.AddNew
   rs1.Fields("[QuoteNumber]").value = [txtQuoteNumber].value
   rs1.Fields("[LeadTime]").value = [txtLeadTime].value
   rs1.Fields("[Qty]").value = [txtQty].value
   rs1.Fields("[Title]").value = [txtTitle].value
   rs1.Fields("[Date]").value = VBA.DateTime.Date
   rs1.Fields("[Time]").value = VBA.DateTime.Time
   rs1.Fields("[InitiatedBy]").value = Application.CurrentUser
   rs1.Fields("[IncompleteProblemNotes]").value = [txtIncompleteProblemNotes].value
   rs1.Fields("[CustomerNotes]").value = [txtCustomerNotes].value
   rs1.Fields("[Memo]").value = [txtMemo].value
   rs1.Fields("[Memo1]").value = [txtMemo1].value
   rs1.Fields("[PrefferedQuoteRunSelect]").value = [txtPrefferedQuoteRunSelect].value
   rs1.Fields("[CombinedRun]").value = [chkCombinedRun].value

   TempRunID = rs1.Fields("[RunID]").value
   rs1.Update

您可以运行使用该函数的第二个查询

SELECT LAST_INSERT_ID();

这是一个MySQL函数。如果后端是MySQL,则可以将其与ADODB查询一起使用。如果后端由MS Access表组成,则您将无法执行此功能。