A. vfp命令查询统计到另一个字段
试试sql语句吧。
update table_b set x=select sum(...) from table_a
B. vf查询命令
先要将你的excel文件保存为vf能使用的.dbf文件,再在vf里进行查询
C. VF有哪些常用命令
Visual Foxpro常用命令:
CREATE PROJECT 项目文件名
MODIFY PROJECT 项目文件名
DIMESION/DECLEARE 数组名1(N1,N2),数组名1(N1,N2)……SET DEFAULT TO 默认路径
SET PATH TO 搜索路径
CREATE 新表文件名
APPEND [BLANK]
APPEND FROM 文件名 FIELDS字段列表 FOR条件 DELIMITED WITH 分隔符 | SDF
APPEND FROM ARRAY 数组名 FOR 条件 FIELDS字段列表 |FIELDS LIKE/EXCEPT 通配符
USE 表文件名 EXCLUSIVE/SHARED INDEX 索引文件表 ORDER N | ORDER TAG 索引标识名 OF 复合索引文件名 IN N/别名
LIST/DISPLAY STRUCTURE TO PRINTER | TO FILE 文件名
LIST/DISPLAY FIELDS字段列表 范围FOR条件 WHILE 条件 OFF TO PRINTER | TO FILE 文件名
BROWSE FIELDS字段列表 FOR条件 FREEZE 字段 LOCK 记录数 TITLE 窗口标题
USE
CLOSE ALL
CLOSE TABLE/DATABASE/INDEX/
CLEAR ALL
QUIT
MODIFY STRUCTURE
GO[TO] RECORD N /TOP/BOTTOM
SKIP +N/-N
REPLACE 范围 FOR条件 WHILE 条件 字段1 WITH 表达式1,字段2 WITH 表达式2…… ADDITIVE
DELETE范围 FOR条件 WHILE 条件
RECALL 范围 FOR条件 WHILE 条件
PACK
ZAP
SET DELETED ON/OFF
SET TALK ON/OFF
SET SAFETY ON/OFF
SET STATUS ON/OFF
SET EXACT ON/OFF
SCATTER FIELDS字段列表 [MEMO] TO 数组名 [BLANK] |MEMVAR [BLANK]
GATHER FROM 数组名 | MEMOVAR FIELDS字段列表 [MEMO]
SET FILTER TO 过滤条件
SET FIELDS TO 字段列表/ALL
SET FIELDS ON/OFF
COPY TO 文件名 范围 FOR条件 WHILE 条件 FIELDS字段列表 |FIELDS LIKE/EXCEPT 通配符 DELIMITED WITH 分隔符 | SDF
COPY STRUCTURE TO 新表文件名 FIELDS字段列表
COPY STRUCTURE TO 表结构描述文件名 FIELDS字段列表 EXTENDED
CERATE FROM表结构描述文件名 FIELDS字段列表
SORT TO新表文件名 ON 关键字段列表 范围 FOR条件 WHILE 条件 FIELDS字段列表 |FIELDS LIKE/EXCEPT 通配符
INDEX ON 索引关键字表达式 TO 单索引文件名|TAG 索引标识名 OF 复合索引文件名 FOR 条件 COMPACT ASCENDING/DESCENDING UNIQUE/CANDIDATE
SET INDEX TO 索引文件名表 ADDITIVE
SET ORDER TO N |单索引文件名|TAG 索引标识名 OF 复合索引文件名 ASCENDING/DESCENDING
REINDEX [COMPACT]
DELETE TAG ALL | 索引标识1,索引标识2……
LOCATE 范围 FOR条件 WHILE 条件
CONTINUE
SEEK 表达式 ORDER N |单索引文件名|TAG 索引标识
FIND C型表达式
COUNT范围 FOR条件 WHILE 条件 TO 内存变量
SUM N型字段列表 范围 FOR条件 WHILE 条件 TO 内存变量|ARRAY 数组名
AVERAGE N型字段列表 范围 FOR条件 WHILE 条件 TO 内存变量|ARRAY 数组名
CALCULATE 表达式表 范围 FOR条件 WHILE 条件 TO 内存变量|ARRAY 数组名
TOTAL ON 关键字段 TO 汇总文件名 N型字段列表 范围 FOR条件 WHILE 条件
SELECT N/别名
SET VIEW ON/OFF
SET RELATION TO关联表达式1 INTO 别名1,关联表达式2 INTO 别名2… ADDTIVE
JOIN WITH N/别名 TO 新表文件名 FOR 连接条件 FIELDE 字段列表
CREATE DATABASE 数据库文件名
OPEN DATABASE 数据库文件名 EXCLUSIVE/SHARED NOUPDATE
SET DATABASE TO 数据库名
MODIFY DATABASE 数据库文件名 NOEDIT NOWAIT
USE 数据库名 EXCLUSIVE
CREATE VIEW 视图文件名
CREATE TABLE 表名(字段1 类型(宽度及小数位),字段2 类型(宽度及小数位),……)
ALTER TABLE 表名 ADD 字段 类型(宽度及小数位)
MODIFY 字段名类型(宽度及小数位)
DROP 字段/约束
DROP TABLE 表名
CREATE [UNIQUE][CLUSTER] INDEX 索引名 ON 表名 (字段名 DESC/ASCE,字段名 DESC/ASCE…..)
DROP INDEX 表名.索引名
SELECT ALL/DISTINCT 字段名 FROM 表名1,表名2… INNER/LEFT /RIGHT/FULL JOIN 数据库名!表名 ON 连接条件 INTO 新表名/TO 文件 /TO PRINTER/TO SCREEN WHERE 连接条件 GROUP BY 字段 HAVING 筛选条件 ORDER BY 字段 DESC/ASCE
INSERT INTO 表名(字段列表) VALUES (字段值列表)
UPDATE 表名 SET 字段=表达式,字段=表达式….. WHERE 条件
DELETE FROM 表名 WHERE 条件
CREATE QUERY 查询文件名
MODIFY COMMAND 程序文件名
DO 程序文件
STORE 表达式 TO 变量列表
ACCEPT “提示信息” TO 内存变量
INPUT “提示信息” TO 内存变量
WAIT “提示信息” TO 内存变量
@ X,Y SAY “提示信息” GET 内存变量
READ
?/??/???
TEXT <文本信息> ENDTEXT
CLEAR
RETURN
CANCEL
NOTE /*/&& 注释内容
D. 关于VF的一些命令
VF命令一览表:
一、命令
1.use 表名 打开表
2.List 显示表记录,但不能修改
3.browse 浏览表记录,可以修改
4.display 显示记录指针指向的记录
5.append 追加记录
6.append blank 追加空白记录
7.insert blank 插入空白记录
8.delete 逻辑删除记录,记录前出现星号
9.pack 物理删除,将逻辑删除的记录彻底删除
10.recall 记录恢复
11.zap 删除表里的所有记录
12.go n 指向第n条记录
13.go top 指向第一条记录
14.go bottom 指向最后一条记录
15.skip n 往下跳n条记录
16.skip -n 往上跳n条记录
17.? 从屏幕的下一行的第一列起显示结果
18.? ? 从当前行当前列起显示结果
19.use sb to sb() 复制sb表给sb()表
20.recno() 记录号函数
21.bof() 上溢出
22.eof() 下溢出
23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare和dimension 相同
24.replace 替换
25.add 表示增加字段
26.distinct 不重复记录
27.error 错误
28.continue
继续
29.else if 否则
30.column 列
31.input 显示数值
32.accept 显示字符串
33.wait 是弹出的一个信息框
34.drop 删除字段或删除表
35.otherwise 其它情况
36.check 规则
37.cursor 临时表
38.build 连编
二、VF里文件类型
1.项目 .pjx project 2.数据库 .dbc database
3.表 .dbf table 4.菜单 .mnx .mpr menu
5.程序 .prg 6.表单 .scx form
7.报表 .frx report 8.查询 .qpr query
9.视图 .vue view 10.文件 .txt
11.备注型文件 .fpt
三、例题
1.creat table student(学号 c(6),姓名c(8),性别c(2),年龄n(2)) 创建学生表
2.insert into student values("001","张三","男",20) 插入一条学生记录
3.alter table student alter 学号 c(8) 将学号字段的宽度改为8
4.alter table student rename 学号 to 学生编号 将学号字段重命名为学生编号
5.alter table student drop 年龄 将年龄字段删除
6.alter table student add 所在院系c(10) 为student表增加一个字段
7.select *from student into table xusheng 将表student复制给表xuesheng
8.update student set 成绩=成绩+10 where 性别="男" 将男生的成绩提高10分
9.delete from student where 性别"女" 册除所有女生的记录
10.alter table student alter 学号 set check left(学号,2="00")
四、创建、运行与修改
1.create database 123 创建数据库123
modify database 123 修改数据库123 (注意:alter在SQL中修改表结构)
2.modify command 123 修改程序123
do 123 运行程序123
3.create form 123 创建表单123
modify form 123 修改表单123
do form123 运行表单123
4.create menu 123 创建菜单123
modify menu 123 修改菜单123
do 123.mpr 运得菜单123
5.modify query 123 修改查询123
do 123.qpr 运得查询123
6.modify report 123 修改报表123
report form 123 运行报表123
7.drop view 123 删除视图123
create view 123 创建视图123 (打开视图用use)
五、排序
1.sort to nl on 年龄 按年龄升序排列,产生一个新表nl
2.sort to cj on 成绩/d 按成绩降序排列,产生一个新表cj
六、索引
1.index on 姓名 tag xm //按姓名升序建立普通索引,索引标识为xm//
2.index on 性别 tag xb //按性别升序建立普通索引,索引标识为xb//
3.index on 成绩 tag cj descending //按成绩降序建立普通索引,索引标识为cj//
4.index on 性别 tag xb1 unique(唯一索引) //按性别升序建立唯一索引,索引标识为xb1//
5.index on 年龄 tag nl candidate //按年龄升序建立候选索引,索引标识为nl//
6.index on 性别+str(成绩) tag xbcj //按性别升序,如性别相同按成绩升序建立普通索引,索引标识为xbcj//
7.index on 性别+str(成绩) tag xbcj1 descending //按性别降序,如性别相同按成绩降序建立普通索引,索引标识为xbcj1//
8.index on 年龄-成绩/1000000 tag nlcj //按年龄升序,如年龄相同按成绩降序建立普通索引,索引标识为nlcj//
9.index on 年龄-成绩/1000000 tag nlcj1 descending //按年龄降序,如年龄相同按成绩升序建立普通索引,索引标识为xbcj1//
七. 命令
set index to 打开当前的一个或多个索引文件并确定主控索引文件(to后加东西是打开,不加是关闭)
set order to 确定主控索引
locate 顺序查找满足条件的记录,并且指向它
seek 索引查找
count 记数命令
sum 求和命令
average 求平均值命令
total 汇总命令
max 求最大值
min 求最小值
八.SQL查询结构
1.select 字段列表 要显示的字段
2.from 表名列表 查询涉及到的所有表
3.where 条件 条件
4.into 目标 查询结果输出到哪去
5.group by 条件表达式 对记录进行分组
6.having 筛选条件 选择符合条件的分组
7.order by 关键字 对查询结果按某几个字段进行排序
8.top 数值表达式 对显示表的前几个记录
九.程序结构
1.顺序结构
2.选择结构:(1)if 条件表达式 (2)if 条件表达式 (3)do case
语名序列 语名序列1 case 条件表达式1
endif else 语句序列1
语句序列1 case 条件表达式2
endif 语句序列2
case 条件表达式3
语句序列3
3.循环结构:(1)for (2)do while 条件表达式 (3)scan(扫描)
循环体 循环体 循环体
endfor enddo endscan
Loop 重新回到循环的最开始 input to x 从键盘输入一个数给变量x
exit 结束循环跳出循环 accept to y 从键盘输入一个字符串给变量y
set sysmenu to default 退出菜单
thisform.release 退出表单
thisform.refresh 刷新表单
十.函数
数值型函数
函数名 功能 例子 结果
1.abs() 求绝对值 ?abs(-4) 4
2.sqrt() 求平方根 ?sqrt(4) 2
3.int() 取整数 ?int(7.5) 7
4.max() 求最大值 ?max(3,4,5) 5
5.min() 求最小值 ?min(3,4,5) 3
6.mod() 取余 ?mod(11,3) 2
7.round() 四舍五入 ?round(3.1415,3) 3.142
8.ceiling() 返回不小于某值 ?ceiling(3.3) 4
的最小整数
9.floor() 返回不大于指定数
的最大整数 ?floor(3.3) 3
十一.字符处理函数
1.substr() 求子串 ?substr("abcd",2,2) "bc"
2.left() 取左串 ?left("abcd",2) "ab"
3.right() 取右串 ?right("abcd",2) "cd"
4.len() 求串长 ?len("abcd") 4
5.at() 求一个串在另一个
串中出现的位置 ?at("bc","abcd",1) 2
6.space() 输出空格 ?space(4) " "
7.upper() 将小写字母转换成
大写字母 ?upper("aBc") "ABC"
8.lower() 将大写字母转换成
小写字母 ?lower("aBc") "abc"
9.val() 将字符串转换为数值 ?val("3.14") 3.14
10.str() 将数值转换为字符串 ?str(3.14,5,1) "3.1"
11.alltrim() 去掉字符串前面和后面的空格去掉 ?alltrim("abcd") "abcd"
12.stuff 修改字符串 ?stuff("good boy",5.3) "goodgirl&
E. vf当中有哪些检索记录的命令,使用时有什么要求
1)使用Locate命令,配合continue查找所有符合条件的记录,适合编写程序代码,例
use <数据表>
locate for <查找条件> &&查找定位第一条符合条件的记录
do while found()
display &&显示或处理记录
continue &&查找定位第2条……第n条记录
enddo
use
2)使用Select 查询命令,把符合条件的记录生成一个记录集,适合编写程序代码,例
select * from <数据表> where <查找条件> into cursor tempdb
&&按条件查找,生成一个临时表
3)使用List或display命令,在VFP中显示符合条件的记录,适合于命令窗口输入命令,不适合表单程序代码的编写,例
use <数据表>
list for <查找条件> &&显示满足条件的记录,或者
display all for <查找条件>
4)设置Filter过滤器,把满足条件的记录保留,不符合条件的记录隐藏,适合编写程序代码,例
use <数据表>
set filter to <查找条件>
F. VF常用命令及其格式请分类叙述(例如对表文件的.对表记录的等)
太多了
1、打开表命令:
USE
表文件名
教材P67
2、关闭表命令:USE
、CLOSE
ALL
P68
3、记录指针定位命令:GO
数值表达式(绝对移动)、SKIP(相对移动)
P69-70
4、替换(修改)记录命令:REPLACE
字段1
WITH
表达式1,字段2
WITH
表达式2……
[范围][FOR<条件>]
P79
5、复制表命令:
COPY
TO
新文件名
[FOR〈条件〉][范围]
P84
复制表结构命令:COPY
STRU
TO
新表文件名
[FIEL
〈字段名表〉]
P85
6、建立索引命令:INDEX
ON
关键字段
TO
单索引文件名
INDEX
ON
关键字段
TAG
索引标识名
P89
7、查询命令:(1)条件查询:LOCATE
FOR
〈条件〉
P93
继续查找命令:CONTINUE
P93
(2)索引查询:FIND
字符表达式
P94
SEEK
表达式
P95
继续查找命令:SKIP
P95
8、选择工作区命令:
SELE
工作区号|别名
P105
9、建立表之间的关联命令:SET
RELATION
TO
关联表达式
INTO
别名
P108
10、表的更新命令:
参考我的课件第三章第五节关于表的更新部分
UPDATE
ON
关键字段
FROM
别名
REPLACE
字段1
WITH
表达式1,字段2
WITH
表达式2
……
[RANDOM]
11、交互式输入命令:
(1)INPUT
[提示信息]
TO
内存变量
P139
(2)ACCEPT
[提示信息]
TO
内存变量
P139
13、输出命令:
?和??
P141
常用命令:
1、设置默认路径命令:
SET
DEFA
TO
盘符:\路径
2、关闭表命令:CLOSE
TABLE,CLEAR
ALL
3、记录显示命令:LIST/DISP
[范围][FOR
〈条件〉]
P72
4、追加记录命令:(1)表尾追加:APPEND
[BLANK]
P80
(2)表中插入:INSERT
[BEFORE]
[BLANK]
P81
P81
(3)从其他文件中追加多条记录到当前表:APPEND
FROM
文件名
[FOR〈条件〉][FIEL
<字段名表>]
5、删除记录命令:DELE
[范围][FOR<条件>]
P82
6、彻底删除带标记记录命令:PACK
7、取消删除标记命令:RECALL
[范围][FOR<条件>]
P83
8、物理删除表中所有记录命令:ZAP
P84
9、复制任何类型文件:COPY
FILE
〈文件名1〉TO
〈文件名2〉
P84
10、将单个记录发送到数组:SCATTER
TO
〈数组名〉[FIEL〈字段名表〉]
P85
11、将数组中的值发送到当前记录命令:GATHER
FROM
数组名
P96
12、将表中多条记录传送到数组命令:COPY
TO
ARRAY
数组名
P86
13、将二维数组中的值传送到表中:
APPEND
FROM
ARRAY
数组名
P87
14、表的排序命令:SORT
ON
〈字段1〉/A|/D,字段2/A|/D
to
新表文件名
P87
15、打开索引文件命令:
SET
INDEX
TO
索引文件名表
P91
16、设置主控索引命令:SET
ORDER
TO
单索引文件名
|TAG
索引标识
P91
17、更新索引文件命令:REINDEX
P92
18、关闭索引文件:SET
INDEX
TO
、CLOSE
INDEX、CLOSE
ALL、CLEAR
ALL、USE
P92
19、删除索引标识命令:DELE
TAG
索引标识名
P92
删除单索引文件命令:DELE
FILE
单索引文件名
P92
20、表的浏览命令:BROWSE
P73
21、记录的过滤命令:SET
FILTER
TO
条件
P76
22、字段的过滤命令:SET
FIELDSS
TO
字段名表
P77
23、表之间的连接命令:JOIN
WITH
别名
TO
新表文件名
FOR
条件
P107
24、设置一对多关系命令:SET
SKIP
TO
别名
P109
25、数据库相关命令:打开:OPEN
DATA
数据库名
P111
新建:CREAT
DATA
数据库名
P111
修改:MODI
DATE
数据库名
关闭:CLOSE
DATA、CLOSE
DATA
ALL、CLOSE
ALL、CLEAR
ALL
设置当前数据库命令:SET
DATA
TO
数据库名
26、程序相关命令:建立/修改程序:MODI
COMMAND
程序文件名
运行程序:DO
程序文件名
27、内存变量/数组赋值命令:=、STORE
P138或P38
28、交互式输入命令:@行,列
SAY
表达式
GET
变量
P139
29、文本输出命令:TEXT
〈输出显示内容〉
ENDTEXT
P143
30、终止程序执行命令:CANCEL、QUIT、RETURN
P143
31、清除主屏幕命令:CLEAR
P143
32、系统设置命令:(1)设置精确比较命令:SET
EXACT
ON/OFF
(2)设置删除标记命令:SET
DELE
ON/OFF
还有很多,就不再一一列举了。
G. VF查询命令按钮代码
select 表名
Go top
locate for 学号=alltrim(thisform.text1.value)
thisform.refresh