我有一个查询,每次关闭它时都会从表中删除第一条记录。
我正在做的事情的背景。我创建了一个查询和一个表单,我用它来将条件输入到该查询中。当用户点击运行时,它会打开查询并显示他们输入的条件。
我遇到的问题是,只要用户在表单上留下空白的文本字段,查询就会将其视为NULL并返回所有内容。我正在使用这个(像[Forms]![myForm]。[myCriteria]&" *")。它工作正常,直到用户关闭Access并再次打开它,它将使表格的第一行中的条件为空。
在表单上我有两个文本框(textbox1和textbox2),它们都来自两个不同的表。如果用户将textbox1留空,请运行查询,关闭Access,然后重新打开它。与textbox1关联的记录在其透视表中将为空白,但仅在第一行中。不完全确定为什么会发生这种情况
我试图尽可能清楚,如果有任何混淆或需要任何其他信息,请告诉我。
修改
我会尝试进一步扩展。
有3个表都有记录。其中一些记录在查询运行时用于标准。
Table1将有Component, 表2将具有状态, 表3将包含标准不需要的其他记录,但仍然显示查询运行的时间
组件和状态应该用作查询的条件,用户将在表单上的文本框中键入该文件,然后打开查询。如果用户将组件或状态的文本框留空,则应在查询运行时显示表中的所有组件或所有状态。它会这样做但是在你关闭然后重新打开Access组件字段或它们各自表中的Status字段将是空白但只在该表的第一行
答案 0 :(得分:0)
您在帖子中提到您使用“查询”从表单中提供条件,但控件(两个文本框)与数据库中的两个不同表相关。这听起来就像Form没有Unbound,表单被一个表锁定,每次加载表单时,表单都会加载表中的数据,使其直接编辑/删除记录。为了实现您想要的搜索功能,请执行以下操作。更多关于Unbound& bound:http://www.baldyweb.com/BoundUnbound.htm
<强> Qry_searchDB 强>
SELECT
tblCustomer.CustomerName,
tblCustomer.CustomerTelephone,
tblOrders.OrderNumber,
tblOrders.OrderDate
FROM
tblCustomer INNER JOIN tblOrders
ON
tblCustomer.CustomerID = tblOrders.CustomerID_FK
WHERE
tblCustomer.CustomerName Like "*" & Forms!Frm_searchQry!txtCriOne & "*"
Or
tblOrders.OrderReference Like "*" & Forms!Frm_searchQry!txtCriTwo & "*"
现在保存此查询。然后编写单击按钮以打开此查询。像。的东西。
Private Sub runQryBtn_Click()
DoCmd.OpenQuery "Qry_searchDB"
End Sub
这将根据条件打开查询,或列出所有记录(如果两者都留空)。希望这可以帮助。