【发布时间】:2012-09-25 13:39:27
【问题描述】:
我正在尝试移动到具有特定 ID 的记录。
我在这篇文章中尝试了解决方案:MS Access search for record by textbox instead of dropdown
但没有成功
这是我的代码
Private Sub btnShowPrevious_Click()
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.FindFirst "[ID]=" & ParentID
If rs.NoMatch Then
MsgBox "Sorry, no such record '" & ParentID & "' was found.", _
vbOKOnly + vbInformation
Else
Me.Recordset.Bookmark = rs.Bookmark
End If
rs.Close
End Sub
它总是没有匹配,但 parentID = 1 并且有一条 ID = 1 的记录..
有人知道出了什么问题吗?
谢谢
记录来源是这张表:
CREATE TABLE [dbo].[ProposalFollowUp](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ProposalID] [int] NOT NULL,
[MillID] [int] NULL,
[ClientID] [int] NULL,
[Comment] [nvarchar](max) NULL,
[Method] [nvarchar](128) NULL,
[Contact] [int] NULL,
[ContactDate] [datetime] NULL,
[Done] [bit] NOT NULL,
[CreatedBy] [nvarchar](50) NULL,
[CreatedDate] [datetime] NULL,
[ModifiedBy] [nvarchar](50) NULL,
[ModifiedDate] [datetime] NULL,
[EAIEmployee] [nvarchar](50) NULL,
[PersonInCharge] [nvarchar](50) NULL,
[ParentID] [int] NULL,
这是表单属性的截图
最后,如果我显示导航栏,我可以看到有一个过滤器。 可能是因为我这样打开表格
DoCmd.OpenForm "ProposalsFollowUp", , , "[ID] = " & txtID, acFormEdit, acDialog
如果我删除过滤器,它会起作用。
好的 这是最终代码
Private Sub btnShowPrevious_Click()
Dim parent As Integer
parent = ParentID
Me.Filter = ""
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.FindFirst "[ID]=" & parent
If rs.NoMatch Then
MsgBox "Sorry, no such record '" & parent & "' was found.", _
vbOKOnly + vbInformation
Else
Me.Recordset.Bookmark = rs.Bookmark
End If
rs.Close
End Sub
【问题讨论】:
-
谢谢,问题已更新
-
您的示例代码适用于我的链接 SQL Server 表。你是如何连接表格的,表格的记录源属性是什么?你有过滤器吗?
-
没有过滤器,我已经链接了 SQL Server 表 :( 我更新了表单属性的屏幕截图
-
手动查找记录时会发生什么情况(单击父 ID 框并在菜单中选择查找)?如果替换值
rs.FindFirst "[ID]=1"会发生什么 -
我试图找到,没有结果。如果我在 parentID=1 上应用过滤器,它会将我带到新记录。所有字段均为空。同样
rs.FindFirst "[ID]=1"等于不匹配。