主题:请教:已知字段名,怎样知道它是表中的第几个字段?
qjbzjp
[专家分:8830] 发布于 2009-08-29 13:58:00
用FIELD()函数可以得到表中第N 个字段的字段名。
是否有这样的函数反过来,已知字段名求它是第N个字段?
谢谢!
最后更新于:2009-08-29 13:59:00
回复列表 (共7个回复)
沙发
homayzh [专家分:7040] 发布于 2009-08-29 14:30:00
可以的!
板凳
homayzh [专家分:7040] 发布于 2009-08-29 14:46:00
fName = UPPER(allt(INPUTBOX("输入你要找的字段名")))
USE 表文件
*-看看有几个字段
n = 0
DO WHILE .t.
n = n+1
IF TYPE(FIELD(n))="U"
EXIT
ENDIF
ENDDO
*-看看你要找的是第几个
FOR n = 1 TO n
IF FIELD(n) = fName &&如果你要找name
MESSAGEBOX(fname +"是第"+ALLTRIM(STR(n))+'个字段')
RETURN
ENDIF
ENDFOR
MESSAGEBOX("没有找到")
3 楼
sywzs [专家分:5650] 发布于 2009-08-29 15:04:00
自定义函数,代码如下:
FUNCTION FIELDN
PARAMETERS cFIELD
FOR I=1 TO FCOUNT()
IF FIELD(I)=cFIELD
RETURN I
ENDIF
NEXT
RETURN 0
?FIELDN("字段名")
4 楼
homayzh [专家分:7040] 发布于 2009-08-29 15:10:00
原来就有测试表有几个字段的函数啊
FCOUNT()
呵呵,学习了,
fName = UPPER(ALLTRIM(INPUTBOX("输入你要找的字段名")))
USE book
FOR n = 1 TO FCOUNT()
IF ALLTRIM(FIELD(n)) == fName &&如果你要找name
MESSAGEBOX(fname +"是第"+ALLTRIM(STR(n))+'个字段')
RETURN
ENDIF
ENDFOR
MESSAGEBOX("没有找到!")
5 楼
qjbzjp [专家分:8830] 发布于 2009-08-29 15:30:00
谢谢楼上二位!
看来VF没有现成函数,只能做个自定义函数了。
6 楼
Ilikefox [专家分:5770] 发布于 2009-08-29 17:47:00
假设表在当前工作区已经打开,假设已知有个字段的名字是“fld”,要知道它是第几个字段,则:
nFlds=AFIELDS(aFlds)
?ASCAN(aFlds,"fld",1,nFlds,1,8)
7 楼
qjbzjp [专家分:8830] 发布于 2009-08-29 21:22:00
Ilikefox灵活应用函数,代码更精练,令人佩服!
我来回复