以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多条件find返回错误?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176568)

--  作者:hitzfeld
--  发布时间:2022/4/18 16:13:00
--  多条件find返回错误?
Dim x As String = e.Form.Controls("combobox1").text
Dim y As String = e.Form.Controls("combobox2").text
Dim z As String = e.Form.Controls("combobox3").text
Dim a As String = e.Form.Controls("textbox1").text
Dim d As DataRow = DataTables("hqhz").Find("bh = \'"& x &"\' and lx = \'"& y &"\' and zy = \'"& z &"\'")
If d IsNot Nothing Then
msgbox("已存在相同区域,无法添加")
Return
Else
Tables("hqhz").addnew
Tables("hqhz").Current("bh") = e.Form.Controls("combobox1").text
Tables("hqhz").Current("lx") = e.Form.Controls("combobox2").text
Tables("hqhz").Current("zy") = e.Form.Controls("combobox3").text
Tables("hqhz").Current("qc") = e.Form.Controls("textbox1").text
Tables("hqhz").save
DataTables("hqhz").load
msgbox("添加完成")
End If

这段代码,无论怎么搞都是返回"已存在相同区域,无法添加",但是我非常确定xyz的值是唯一的,并且后台的数据表实际上是有添加记录,但是处于未保存状态。
之前find也用过很多次了,单条件下没用碰到过这样的问题。难道是find不能使用多条件?

--  作者:有点蓝
--  发布时间:2022/4/18 16:32:00
--  
find用法没有任何问题。肯定有重复的数据。find是查询前台界面数据的,和后台数据库没有什么关系,和保存不保存也没有什么关系。

combobox1这些控件是不是绑定了列?

新增行赋值的用法反而是不正确的,应该这样用

dim r as row = Tables("hqhz").addnew
r("bh") = e.Form.Controls("combobox1").text

--  作者:hitzfeld
--  发布时间:2022/4/18 22:25:00
--  
谢谢蓝老师!果然是绑定列了!图片点击可在新窗口打开查看太不应该了.........