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 从Access中的表中获取记录_Ms Access - Fatal编程技术网

Ms access 从Access中的表中获取记录

Ms access 从Access中的表中获取记录,ms-access,Ms Access,我有这个要求,我必须根据其他字段中给出的数据检查数据。我有一个带有“N”字段的表。我应该允许用户从表中选择4个字段。然后我应该获取该特定记录的所有其他字段,并将其显示给用户,以便用户可以验证他输入到表中的数据是否正确。请帮忙 谢谢我现在对您的需求有了更清晰的了解-希望这就是您所需要的: 假设你有一张叫做“电话”的桌子 电话表有三个主要字段:制造商、操作系统和运营商 除这些主要字段外,还有次要等级库字段。现在我们有三个:屏幕大小、频率和价格 我创建了一个包含三个组合框的表单:Manufacture

我有这个要求,我必须根据其他字段中给出的数据检查数据。我有一个带有“N”字段的表。我应该允许用户从表中选择4个字段。然后我应该获取该特定记录的所有其他字段,并将其显示给用户,以便用户可以验证他输入到表中的数据是否正确。请帮忙


谢谢

我现在对您的需求有了更清晰的了解-希望这就是您所需要的:

假设你有一张叫做“电话”的桌子

电话表有三个主要字段:制造商、操作系统和运营商 除这些主要字段外,还有次要等级库字段。现在我们有三个:屏幕大小、频率和价格

我创建了一个包含三个组合框的表单:ManufacturerFilter、OperatingSystemFilter和CarrierFilter。 每个组合框的行源类似于:

SELECT Carrier FROM Phones GROUP BY Carrier ORDER BY Carrier; 
其中,载体分别由制造商和[操作系统]替换

然后我添加所有辅助字段,每个字段都绑定到各自的字段

您还可以添加一个名为Retrieve的按钮,暂时将单击代码留空

现在你有几个选择。我将突出显示两个选项,但这两个选项都需要以下步骤:

Private Function FilterStr() As String
  Dim myFilterStr As String

  ' Include each filter if they are entered
  If Nz(Me.ManufacturerFilter, "") <> "" Then myFilterStr = myFilterStr & "[Manufacturer]='" & Me.ManufacturerFilter.Value & "' AND"
  If Nz(Me.OperatingSystemFilter, "") <> "" Then myFilterStr = myFilterStr & "[Operating System]='" & Me.OperatingSystemFilter.Value & "' AND"
  If Nz(Me.CarrierFilter, "") <> "" Then myFilterStr = myFilterStr & "[Carrier]='" & Me.CarrierFilter.Value & "' AND"

  ' Remove the last AND statement
  If myFilterStr <> "" Then myFilterStr = Mid(myFilterStr, 1, Len(myFilterStr) - 4)
  FilterStr = myFilterStr
End Function
这使用相同的FilterStr函数返回搜索字符串,但使用记录集的FindFirst方法查找记录。如果找到,它将移动到记录


希望这能回答你的问题。正如我所指出的,确切的行为会有所不同,但基本原则仍然是一样的。

你能编辑你的帖子并给我们举个例子吗?还有,你有什么具体问题?你的代码在哪里被破坏了?对那些被否决的投票人说:如果你不告诉OP他们做错了什么,为什么还要麻烦否决呢?所以我有一个输入表格,可以将数据输入表中。用户现在希望在输入数据后检查数据。为了进行检查,他们希望选择表中已经存在的四个字段,其他字段应该显示出来。例如:假设表单有4个字段-FirstName Primary、LastNamePrimary、dobbrimary和Gender。现在用户想要检查他输入的数据。所以我需要填写一份和报名表类似的检查表。我将允许用户从主键中选择-组合为FirstName,组合为LastName和组合为DOB-应显示此用户的性别值。您似乎是新的。当您需要在问题中添加大量相关信息时,最好将这些信息编辑到原始信息中。你也应该重新措辞,以便更清楚地知道你有什么,你想做什么,什么是不起作用的-即使这意味着问题有点长。嘿,DHW…谢谢你的建议…但是在记录被输入后必须对其进行输入和检查…输入和检查被执行多次…如果我使用上述方法,用户必须再次检查所有记录,因为他无法选择具体记录。让我试着详细说明我想做的事情——我有一份报名表。数据通过此对话框输入表中。现在,我向用户提供主要字段。所以这些是从表中获取数据的组合框。当用户选择所有主键时,类似于使用查询调出记录字段而不是查找字段。只是我应该能够在各自的文本框中显示检索到的字段。我一直在努力这方面的工作很长时间。但我不知道该怎么做。我想我明白了-你想用主键查找记录,然后显示记录。让我用一个解决方案来修改我的答案。请给我一点时间来写代码。谢谢……我会试试这个方法的
Private Sub RetreiveButton_Click()
  Dim myFilterStr As String
  myFilterStr = FilterStr

  If myFilterStr <> "" Then
    Me.Filter = myFilterStr
    Me.FilterOn = True
  Else
    Me.Filter = ""
    Me.FilterOn = False
  End If
End Sub
Private Sub RetreiveButton_Click()
  Dim rst As DAO.Recordset
  Dim myFilterStr As String

  myFilterStr = FilterStr()

  If myFilterStr = "" Then
    MsgBox "No Filter Selected", vbOKOnly, "Error"
    Exit Sub
  End If

  Set rst = Me.RecordsetClone
  rst.FindFirst myFilterStr
  If rst.NoMatch Then
    MsgBox "No Matching Records were found", vbOKOnly, "No Data"
  Else
    Me.Bookmark = rst.Bookmark
  End If

  Set rst = Nothing
End Sub