作者:手机用户2502937527 | 来源:互联网 | 2023-05-17 14:21
我要檢查DBGRID1的Columns[4]值,是不是輸入O或是為NULL如果不是O或不是NULL就請跳出視窗告知程式碼如下IF(DBGRID1.Columns[4]<
我要檢查DBGRID1的Columns[4]值,是不是輸入"O"或是為NULL
如果不是"O"或不是NULL就請跳出視窗告知
程式碼如下
IF (DBGRID1.Columns[4] <> 'O' OR DBGRID1.Columns[4] IS NIL) THEN
BEGIN
MessageDlg('是否輸入O以外字',mtWarning,[mbok],0);
abort;
END;
可是他會出現"Operator not applicable to this operand type"這個錯誤訊息
出錯點在"DBGRID1.Columns[4] IS NIL"這裡,請問該怎麼判斷他是否為空值
或是怎麼在Columns[4]屬性質的地方設定他就只能是空值或O,其他符號不可以輸入
10 个解决方案
Columns[4]返回的 列索引,他包含很多的单元格,你至少也需要指定那个cell吧
如果你DataSet用的 ADOQuery
建议你这样做
IF ((ADOQuery1.FieldByName('字段名').AsString <> '0') OR ADOQuery1.FieldByName('字段名').IsNull) THEN
指定是当前行
謝謝大家提供意見...
Dear kye_jufei:
謝謝幫忙,他預設是空值,"判斷為空就好"不可以防呆呀@@
對不起
可能我說的不是很清楚
DBGRID1.Columns[4],我是從資料庫拉資料出來,要讓user修改
但輸入前希望可以判斷他只能輸入"O"跟"空值"
或是要怎麼樣讓DBGRID1.Columns[4]這個地方只能輸入"O"或是"空值"其他KEY
楼主语法本身就有错。。
1、判断nil不能用is,is是判断类的。用assigned或者直接用等号
2、or前后两部分如果是表达式的华,要加括号,不然编译不过
至于判断null的话,也不是用nil,参看楼上各楼
那就直接在数据集的beforepost事件中判断当前字段的值就好了