【问题标题】:Look for duplicate records before adding a record在添加记录之前查找重复记录
【发布时间】:2017-03-20 09:47:12
【问题描述】:

我从另一篇文章中截取了这个,因为它与我需要的相似。我不需要使用 me.ID 等,而是需要引用另一个表中的字段,特别是名为 Brief Sheet 的表中的 [Formdate]。

我尝试了很多变体,例如表格“Brief Sheet”。Formdate 但没有运气

正确的语法是什么?

rst.FindFirst "[ID] <> " & Me.ID & _
 " AND [TitleText] = '" & Me.TitleText & _
 "' AND [UnitCode] = " & Me.UnitCode & _
 " AND [AcademicYear] = " & Me.AcademicYear & _
 " AND [Titleofchapterjournalarticle] = '" & Me.Titleofchapterjournalarticle &     "'"

【问题讨论】:

  • 你的字段必须在你的记录集中——你的记录集查询现在是什么样子的?如果它在那里,您只需使用 [Formdate] 与其他字段相同。

标签: ms-access vba


【解决方案1】:

使用 Dlookup。在您发布的 sn-p 中,编码器已经实例化了一个记录集,并正在使用记录集方法在其中查找记录。你说你想做的其实简单一点。

以下是说明从表中获取日期值的测试过程。

您没有说明您将使用什么标准从“Brief Sheet”表中选择正确的 FormDate,因此我添加了“ID=3”,它将选择 ID=3 的 FormDate 记录。根据需要进行调整。

另外,如果您的表名确实是“Brief Sheet”,并且您可以重命名它,我强烈建议为您的表建立一些命名约定规则,首先不要有任何空格。即使是 Brief_Sheet 也会让您的生活更轻松。

    Public Sub Test1()

    'dimension a variable to hold the date value    
    Dim datFormDate As Date

    'fill the variable with the value you need to reference
    datFormDate = DLookup("FormDate", "Brief Sheet", "ID = 3")

    'Print the value to the "immediate" pane (just for testing)
    Debug.Print datFormDate

    'If you're running this code from within your form module, you can assign
  'the value in your variable to a field in your table as such:
me.DateFieldtxtbx = datFormDate

    End Sub

【讨论】:

  • 注意,如果没有找到值,dlookup 会返回 null,所以Dim datFormDate As Date 会遇到问题。
  • 好点,菲奥娜拉。可以将 FormDate 标注为变体“Dim varFormDate as variant”,或者将 Dlookup 语句包装在 Nz() 函数中。
猜你喜欢
  • 2013-10-23
  • 2019-09-24
  • 2013-08-06
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2019-03-28
相关资源
最近更新 更多