如何检查TDBCheckBox是否已在运行时设置

rob*_*ert 0 delphi ms-access boolean

我必须使用Access 2003 .mdb文件作为数据存储库在Delphi中创建一个程序.

Access数据库有一个表,其中包含一个名为"original"的布尔值(在Access中为Yes/No)字段.

我已将此字段映射到TDBCheckBox,其显示已检查为true且未选中为false,并显示半灰色检查是否尚未设置字段.

我想要的是将字段的字段设置为false(复选框未选中),并将字段值保存为false,如果用户没有明确设置字段.

我试过if(DVDQuery.FieldByName('Original').AsBoolean <> True)和(DVDQuery.FieldByName('Original').AsBoolean <> False)然后是DVDQuery.FieldByName('Original').AsBoolean:= False;

但这对新记录不起作用.我使用查询来访问数据集,因为有大量动态创建的where语句来过滤数据集.

非常感谢您的帮助指导.

Lar*_*tig 5

你能改变数据库中的结构吗?默认值的适当位置在列定义中.如果可以更新结构,请将字段更改为默认值"否".然后,您将永远不需要围绕此问题进行任何编码,即使直接通过Access输入,您的数据也将保证正确.

如果需要检查代码中的值,请使用if DVDQuery.FieldByName('Original').IsNull以确定该字段是否为空.

最后,如果您必须更改代码中的值而不是数据库默认值,请在相应的TDataset事件(AfterInsert,AfterScroll等)中进行更改.