VF上机常见错误.docx

上传人:b****5 文档编号:4100190 上传时间:2022-11-27 格式:DOCX 页数:16 大小:258.95KB
下载 相关 举报
VF上机常见错误.docx_第1页
第1页 / 共16页
VF上机常见错误.docx_第2页
第2页 / 共16页
VF上机常见错误.docx_第3页
第3页 / 共16页
VF上机常见错误.docx_第4页
第4页 / 共16页
VF上机常见错误.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

VF上机常见错误.docx

《VF上机常见错误.docx》由会员分享,可在线阅读,更多相关《VF上机常见错误.docx(16页珍藏版)》请在冰豆网上搜索。

VF上机常见错误.docx

VF上机常见错误

笔试分值分布

二级VisualFoxPro笔试由二级公共基础(30分)和二级VisualFoxPro程序设计(70分)两部分组成,各章分值分布情况如下:

日期

内容

分值分布

2008年9月

二级

公共

基础

(30分)

第一章数据结构与算法

10

第二章程序设计基础

2

第三章软件工程基础

8

第四章数据库设计基础

10

二级VF

程序设计

(70分)

第一章VisualFoxPro基础

4

第二章VisualFoxPro系统初步

0

第三章数据与数据运算

6

第四章VisualFoxPro数据库及其操作

18

第五章关系数据库标准语言SQL

30

第六章查询与视图

0

第七章程序设计

8

第八章表单设计与应用

4

第九章菜单设计与应用

0

第十章报表设计

2

第十一章开发应用程序

0

2009年4月

二级

公共

基础

(30分)

第一章数据结构与算法

10

第二章程序设计基础

2

第三章软件工程基础

10

第四章数据库设计基础

8

二级VF

程序设计

(70分)

第一章VisualFoxPro基础

4

第二章VisualFoxPro系统初步

2

第三章数据与数据运算

8

第四章VisualFoxPro数据库及其操作

8

第五章关系数据库标准语言SQL

22

第六章查询与视图

4

第七章程序设计

8

第八章表单设计与应用

10

第九章菜单设计与应用

4

第十章报表设计

0

第十一章开发应用程序

0

对比图

 

上机题型分布

重点:

第4,5,6,7,8章

一、基本操作题(4个小题,共计30分)

分析:

基本操作题的考点主要以第四章为主,其次是第八章表单和第五章SQL,其它章节为辅。

1、第四章:

①建立各种索引

②建立关联

③设置字段有效性规则

④设置参照完整性

⑤增加和修改字段

⑥建立项目、建立表、建立数据库

⑦自由表的添加和移出操作

2、五章:

①SQL的操纵功能(INSERTINTO,DELETEFROM,UPDATE)

②简单的SQL查询语句

3、八章:

①利用表单向导建立表单

②表单属性的修改

4、六章:

建立简单视图

5、九章:

①建立简单的菜单

②按要求对已经存在的菜单进行修改

6、十章:

利用报表向导建立报表

二、简单应用题(2个小题,共计40分)

分析:

简单应用题的考点主要以第五章SQL命令、六章的建立查询和视图、第七章程序改错为主,其次是第十章的报表和第九章的菜单,其它章节为辅。

1、六章:

建立查询(多数涉及到两个表以上的联接查询),要求查询去向为指定的表

建立视图

2、七章:

程序改错

3、九章:

在顶层表单中添加菜单

建立快捷菜单

4、十章:

用报表向导建立报表

三、综合应用题(1个小题,共计30分)

分析:

综合应用题的考点主要以第七章编程、第八章表单与第五章SQL的综合应用为主,第九、十章为辅。

1、第七章:

单纯编程题

2、第八章:

SQL与表单的综合应用题

3、第九章:

设计菜单并在其中编写SQL语句

4、第十章:

利用报表设计器建立自定义报表。

SQL常见错误提示

1、执行以下命令时,出现“找不到列‘人民币价值’”的错误提示。

select姓名,人民币价值fromrate_exchange,currency_sl;

whererate_exchange.外币代码=currency_sl.外币代码groupby姓名;

orderby人民币价值descintotableresults

解答:

弹出这样的错误提示信息,说明系统在相应的表中根本找不到’人民币价值’这个字段,正确的表达应该是将‘人民币价值’改为:

SUM(基准价*持有数量)人民币价值

2、执行以下命令时,出现“打开窗口”的错误提示。

select姓名,sum(基准价*持有数量)人民币价值fromrate_exchange,currency_s1;

whererate_exchange.外币代码=currency_s1.外币代码groupby姓名;

orderby人民币价值descintotableresults

解答:

弹出这样的错误提示,说明系统没有找到指定的表,这时当你单击“取消”按钮时,系统将弹出下一个错误提示,如下图,这说明输入的表名“currency_sl.dbf”有错,正确的表名应是:

currency_sL.dbf。

3、执行以下命令时,出现“命令中含有不能识别的知识或关键字”的错误提示。

select姓名,sum(基准价*持有数量)人民币价值formrate_exchange,currency_sl;

whererate_exchange.外币代码=currency_sl.外币代码groupby姓名;

orderby人民币价值descintotableresults

解答:

弹出这样的错误提示,首先应检查“SELECT”、“FROM”、“WHERE”、“GROUPBY”、“ORDERBY”、“DESC”、“ASC”等常用关键字是否输入错误;然后再检查标点符号是否输成中文符号了;上述语句中明显把“FROM”错输成了“FORM”。

4、执行以下命令时,出现“命令中缺少必需的子句”的错误提示。

select姓名,sum(基准价*持有数量)人民币价值,from;

rate_exchange,currency_slwhererate_exchange.外币代码;

=currency_sl.外币代码groupby姓名orderby人民币价值descintotableresults

解答:

弹出这样的错误提示,首先应检查是否多输入了逗号,再检查关键字是否漏掉,比如命令中有没有“FROM”关键字等;上述语句错在多打了一个逗号。

5、执行以下命令时,出现“语法错误”的错误提示。

select姓名,sum(基准价*持有数量)人民币价值fromrate_exchange,currency_sl;

whererate_exchange.外币代码=currency_sl.外币代码groupby姓名;

orderby人民币价值descinto.dbfresults

解答:

“into.dbf”不是正确的关键字,正确的应是“intodbf”,这里的dbf不是表的扩展名,而是与“into”一起组成一个关键字,表示将查询结果存放到指定的表中。

6、执行以下命令时,出现“找不到列‘姓名,工资’”的错误提示。

select姓名,工资from职工20

解答:

姓名与工资字段之间的逗号输成了中文状态下的逗号,应改为英文状态下的逗号。

7、执行以下命令时,出现“参数太少”的错误提示。

select*from职工20where工资=max(工资)

解答:

max(),min(),sum(),avg(),count()等几个函数不能直接跟在WHERE或ORDERBY之后,否则要产生上述错误。

 

8、执行以下命令时,出现“仓库号不唯一,必须加以限定”的错误提示。

select仓库号,姓名,工资from职工20,仓库20where职工20.仓库号=仓库20.仓库号

解答:

职工20表和仓库20表都有“仓库号”字段,在查询时必须指明是查询哪一个表的“仓库号”,正确的表达应改为:

仓库20.仓库号或职工20.仓库号

 

查询与视图常见错误提示

1、表达式的书写要仔细,整个表达式不能加引号。

解决方法:

①移去带引号的表达式。

②将表达式的引号去掉,将中文的括号和标点符号改成英文的。

③单击“添加”即可消除表达式两边的引号。

2、在建立查询时,由于表之间的联接不正确,在退出查询设计器时,总是会出现如图所示提示。

 

解决办法:

①删除原来的联系,用鼠标拖动的方式重新建立表之间的联系。

②正确的拖法:

学生表→选课表←课程表

③错误的拖法:

学生表←选课表→课程表

3、建立好查询之后一定要运行,若题意规定将查询结果保存在表:

TWO中,查询结果不会在“查询窗口”显示出来,此时应在右图所示的“数据工作期”处查看是否有该表产生,并且要单击旁边的“浏览”查看内容是否符合题意(字段顺序是否一致,是否有重复记录等),如果“数据工作期”中没有该表,说明操作存在问题。

解决方法:

①检查是否运行查询,未运行肯定就不会产生指定的表。

②仔细检查联接条件是否正确。

③仔细检查筛选条件是否正确。

 

4、使用命令建立视图时,WHERE关键字必需要输入完整。

CREATEVIEWSVIEWASSELECT学号,姓名FROMSTUDENTWHERE…

总结

(一)SQL部分

1、什么时侯输入的字母要区分大小写?

答:

在保存文件时,输入的文件名不分大小写,还有在建立表结构时,输入字段名时字母只能是小写,其它情况基本上都要区分大小写。

如:

第36套3中的“C语言”是大写;第40套1③中输入记录内容时要注意大小写;第19套3中的:

s1,s2,s3是小写。

2、在保存文件时什么时候要加扩展名?

答:

只有在保存“文本文件”时才必须加扩展名,其它情况都可以不加。

3、在建立查询时,什么时候要分组?

什么时候又不分组呢?

答:

①在查询结果中出现函数AVG(),SUM(),COUNT(),MAX(),MIN()有关的基本上都要分组(如:

统计,总和,总金额等),但如果题目要求对表中的全部记录整体进行求和、求平均、统计、求最高或最低等情况除外。

如:

第63套2①,第63套3①,第64套2①,第68套2②

②在查询结果中没有出现与函数AVG(),SUM(),COUNT(),MAX(),MIN()有关的基本上都不分组。

如:

第81套2①

4、什么条件该写在HAVING之后?

什么条件该写在WHERE之后?

答:

与函数AVG(),SUM(),COUNT(),MAX(),MIN()有关的条件应写在HAVING之后,其它的条件通常写在WHERE之后。

如:

第9套2②,第79套2②

5、部分条件不能直接表达,需要用函数转换。

如:

第5套2①,第66套2②

6、表之间的联系错误,将导致查询结果不正确。

如:

第13套2①

7、为什么查询产生的表是空的?

答:

往往是筛选条件不正确,而导致最终产生的表是空的。

如:

第36套3

8、查询设计器中能用嵌套查询吗?

答:

可以。

如:

第30套2②,第19套2①

(二)表单部分

解决条件问题——表单有关的综合应用题,大多都是以“VALUE”作为条件。

1、文本框:

thisform.text1.value

条件的格式为:

wherexxx=alltrim(thisform.text1.value)

2、列表框:

thisform.list1.value

条件的格式为:

wherexxx=alltrim(thisform.list1.value)

3、组合框:

bo1.value

条件的格式为:

wherexxx=alltrim(bo1.value)

如:

第23套3

4、微调按钮:

thisform.spinner1.value

字段为字符型:

wherexxx=alltrim(str(thisform.spinner1.value))

字段为数值型:

wherexxx=thisform.spinner1.value

5、选项组:

thisform.optiongroup1.value

Docase

Casethisform.optiongroup1.value=1

Casethisform.optiongroup1.value=2

Endcase

如:

第12套3

解决查询去向问题——表单有关的综合应用题,查询去向有以下几中可能:

1、在表格中显示。

格式:

thisform.grid1.recordsource=“select…intocursoraa”

2、在文本框中显示。

格式:

select…intoarrayaa

Thisform.text2.value=aa

(1)

如:

第9套3

3、保存到固定的表名中。

格式:

select…intodbfxxx

如:

第67套3

4、保存到动态表名中(以条件名为表名)。

格式:

bb=thisform.xx.vlaue

Select…intodbf&bb

注:

在第③④类型的基础上如果题目还要求在指定表格控件中显示(如林诗因等类题),只需要将第①类套在它们的外面即可,格式如下:

Thisform.grid1.recordsource=“select…intodbfxxx”(保存到固定表)

Thisform.grid1.recordsource=“Select…intodbf&bb”(保存到动态表)

如:

第20套3,第71套3

解决控件中数据的来源问题(SOURCETYPE决定SOURCE)。

●在实际应用中列表框和组合框通常用来作查询的条件,要掌握好列表框和组合框必须解决好列表框和组合框的数据来源,列表框和组合框的来源基本上都要求在属性窗口中直接设置,常用的来源有以下几种:

[1]源类型(ROWSOURCETYPE)为:

源(ROWSOURCE)为:

xx,xx,xx(不能加引号,逗号为项分隔)

含义:

列表框(组合框)中显示指定的值。

注:

这种类型是最简单的,若题目未作要求尽可能用此种类型。

如:

第67套3,第38套3

[2]源类型(ROWSOURCETYPE)为:

数组

源(ROWSOURCE)为:

xx(xx为数组名)

含义:

列表框(组合框)中显示数组xx中的数据。

注:

此种类型必须要在表单的LOAD事件中定义数组,方法为:

PUBLICXX(3)

XX

(1)=“s1”

XX

(2)=“s2”

XX(3)=“s3”

如:

第19套3

[3]源类型(ROWSOURCETYPE)为:

SQL

源(ROWSOURCE)为:

SELECT…FROM…WHERE…

含义:

列表框(组合框)中显示SQL语句查询出来的数据。

如:

第63套2②,第76套3,第82套3

[4]源类型(ROWSOURCETYPE)为:

文件

源(ROWSOURCE)为:

*.TXT(如果不写,表示显示所有类型的文件)

含义:

列表框(组合框)中显示当前目录下扩展名为TXT的文件。

如:

第73套2②

[5]源类型(ROWSOURCETYPE)为:

结构

源(ROWSOURCE)为:

xxx(xxx表示指定的某个表名)

含义:

列表框(组合框)中显示xxx表中的所有字段名。

如:

第78套2①

[6]源类型(ROWSOURCETYPE)为:

字段

源(ROWSOURCE)为:

xxx.字段名(xxx表示指定的某个表名)

含义:

列表框(组合框)中显示xxx表中指定字段名列下的所有数据。

如:

第8套3

●在实际应用中表格控件通常用来作查询输出的目的地,要掌握好表格控件关键要解决好表格控件的数据来源,常用的源类型如下:

1、题意要求:

表单一运行时表格立即显示出指定的数据。

方法:

直接在属性窗口设置表格的RECORDSOURCETYPE和RECORDSOURCE即可。

①设置RECORDSOURCETYPE为:

别名

设置ROWSOURCE为:

xxx(xxx表示指定的某个表名)

含义:

表格控件中显示xxx表中的所有内容。

操作方法:

通常可将xxx表添加到数据环境,从数据环境中拖动xxx到表单中即可。

如:

第33套3

②设置RECORDSOURCETYPE为:

设置RECORDSOURCE为:

xxx(xxx表示指定的某个表名)

含义:

表格控件中显示xxx表中的所有内容。

操作方法:

在表单规定位置添加一个表格控件,然后设置表格控件中上述两个属性即可。

注:

不要把xxx表添加到数据环境中。

如:

第3套3,第31套②

③设置RECORDSOURCETYPE为:

SQL

设置RECORDSOURCE为:

SELECT…FROM…WHERE…

含义:

表格控件中显示SQL语句查询出来的数据。

操作方法:

在表单规定位置添加一个表格控件,然后设置表格控件中上述两个属性即可。

如:

第83套3,第11套3

④设置RECORDSOURCETYPE为:

查询

设置RECORDSOURCE为:

xxx(xxx是一个查询文件)

含义:

表格控件中显示查询文件中查询出来的数据。

操作方法:

常用方法:

在表单规定位置添加一个表格控件,然后设置表格控件中上述两个属性即可。

如:

第3套3

2、题意要求:

表单运行时,表格起初没有显示指定的数据,当单击“命令按钮”时就会在表格中显示指定的数据。

方法:

在“命令按钮”中设置来源。

①题目要求显示一张指定表的全部内容。

方法:

在“命令按钮”的CLICK事件窗口中输入以下代码:

THISFORM.GRID1.RECORDSOURCETYPE=0

THISFORM.GRID1.RECORDSOURCE=“XXX”

注:

XXX为指定要显示的表名。

如:

第15套3,第73套3②

②题目明确要求在属性窗口将表格控件的RECORDSOURCETYPE值设置为:

4-SQL。

方法:

首先在表单中添加一个表格控件,将RECORDSOURCETYPE值设置为:

4-SQL,然后在“命令按钮”的CLICK事件窗口中输入以下代码:

THISFORM.GRID1.RECORDSOURCE=“SELECT…FROM…”

如:

第37套3,第20套3,第68套3,第7套3…

(三)程序部分

 

在题库中出现程序改错题的主要集中在

13套

15套

16套

19套

21套

22套

30套

32套

33套

34套

64套

55套

50

49

错误归纳:

最常见的错误

循环:

DOWHILE…ENDDO

1.作用:

反复执行DOWHILE到ENDDO之间的语句,直到条件不满足不止。

2.循环的关键:

①要清楚循环的条件:

DOWHILENOTEOF()(针对表)

DOWHILEI<10(针对数字)

②要有促进循环的命令。

SKIP:

一条一条依次往下跳。

(表)

CONTUNUE:

直接跳到下一个满足条件的记录上(表)

I=I+1(数字)

③在循环中若要替换表,要正确选择替换表的命令.

⊙update默认是对表的所有记录进行替换,replace

默认是对当前表的当前记录进行替换。

⊙只要一执行update,指针立即就指到表的最末尾,

而replace不会影响指针的跳动,执行之后指针仍

然还是在当前记录上。

⊙Update可指定替换哪一张表,而replace只能替换当前表。

正确语句出错语句

a)替换循环表的题(REPLACE)。

USE循环表

DOWHILENOTEOF()

SELECT…FROM…WHERE…INTOARRAYAA

REPLACEXXXWITHAA

(1)

SKIP

ENDDO

如:

第28套2、第34套2、第36套2、第16套2

OPEN

缺少某关键字

缺少INTO

关键字错误

LOOPNEXT

b)替换非循环表的题(UPDATE)。

USE循环表

Locatefor

DOWHILENOTEOF()

UPDATE非循环表SETXXX=YYYWHERE…

SKIP

ENDDO

 

Findfor

关键字错误

SCANFOR..

NUM=NUM+1

ENDSCAN

关键词FOR

Num+1

store0toS1,S2

If条件

I=i+1

Loop

Else

Exit

endif

S1,s2,=0

 

内部循环

跳出循环

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1