假设我有一个名为'test'的表,其中有三列名为test_id
,test_name
和test_age
。我使用了一个名为:al_test_id
的检索参数来提示用户插入一个id并在数据库中搜索相应的id条目,如果找到,则将其显示给用户。现在,如果没有找到条目,那么我希望用户能够使用他/她输入的id作为检索参数来插入新行。
我该怎么做?
答案 0 :(得分:3)
因此,这个问题有很多解决方案。这是一个。
在用户启动搜索时触发的事件中(注意ii_TestID是一个实例变量,其他变量声明在本地并留给您):
ii_TestID = Integer (sle_SearchTest.Text)
ll_RowCount = dw_Test.Retrieve (ii_TestID)
IF ll_RowCount = 0 THEN dw_Test.InsertRow(0)
我将假设UI中没有按钮来添加新的测试结果,因此我们将一次只处理一个。如果要保存:
li_ID = dw_Test.GetItemNumber (1, "test_id")
IF IsNull (li_ID) OR li_ID = 0 THEN dw_Test.SetItem (1, "test_id", ii_TestID)
dw_Test.Update()
为什么我要在最后一分钟之前设置test_id?所以我可以在窗口的CloseQuery事件中编写类似的代码:
IF dw_Test.ModifiedCount() > 0 or dw_Test.DeletedCount() > 0 THEN
CHOOSE CASE MessageBox ("Huh?", "Would you like to save your changes before exiting?", Question!, YesNoCancel!)
CASE 1
EVENT ue_Save()
CASE 2
// do nothing
CASE 3
RETURN 1
END CHOOSE
END IF
如果我在InsertRow()之后立即更改了test_id,那么即使用户还没有做任何事情,ModifiedCount()也会立即将该行注册为已更改。没有比让计算机提示我保存我的更改更令人讨厌的事情。
祝你好运,特里。