| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1758 人关注过本帖
标题:求助 表单添加记录时 文件正在使用
只看楼主 加入收藏
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求助 表单添加记录时 文件正在使用
本人大一,上VFP的课,老师留给我们一个作业,就是做用表单给表添加记录。。我大概是笨了点,怎么弄都弄不出来。。
还麻烦各位帮忙看看,这个怎么错了呢。。。- -先谢谢了
图片附件: 游客没有浏览图片的权限,请 登录注册

表单长这样
图片附件: 游客没有浏览图片的权限,请 登录注册

我写的“添加”的代码这样


老师给你要求这样:  添加记录表单。根据输入的数据,可以对指定的数据表添加记录。
    本表单设计要求:
(1)添加记录成功应有提示信息框。
(2)如能先在表单中进行不同数据表的选择,然后再对选定的数据表添加记录者为佳。


哎,多谢了。。
搜索更多相关主题的帖子: 表单 文件 记录 
2010-06-09 17:27
sanjie38
Rank: 2
等 级:论坛游民
帖 子:20
专家分:37
注 册:2010-5-13
收藏
得分:6 
1,先检查你是否通过浏览打开或占用了“个人信息表”,否则关掉。
2,要实现选择表,你在表单上添加一个列表框。定义数组ff,通过列表框的属性与表建立联系(代码:表单的load事件: public ff(n) ff(1)=“个人信息表”,后面有几个表自己照写       列表框属性设置:数据类型选择数组,数据源输入数组名ff。就可以)
3 添加按钮里写个引用表代码就可以,加入:lst1=thisform.list1.value   select lst1(用于打开你选择的表)。其他的按照你做的就行。还有要把这些表添加到表单数据环境中。
4  有提示的话,加一个提示框  messagebox(“已经成功添加记录”),你自己设置检查条件。

2010-06-09 18:08
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
收藏
得分:0 
回复 2楼 sanjie38
我确信我没有打开那个“个人信息表”。
选择表我是另做的一个表单,用按钮组做的选择。。数组那个东西无论如何我也用不起来。。不过马上我试试你的,看看行不行。。
还是没懂为什么会出那个 “文件正在使用”……第三条我也没理解。。。哎

不过还是谢谢你了,我再研究研究去。
2010-06-09 18:25
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
收藏
得分:0 
还是不行啊,继续求助!!!
2010-06-09 22:16
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
收藏
得分:0 
回复 2楼 sanjie38
现在又出了个问题,就是添加记录时会出现“数据类型不匹配”,但是,在表中还能查到刚刚添加的记录。请问这怎么办诶!
2010-06-09 22:42
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:6 
看看你的insert语句中的表名怎么是“tablename”啊?

而且使用insert语句之前是不需要打开表的,它会自动打开的啊!

[ 本帖最后由 cnfarer 于 2010-6-10 07:24 编辑 ]

★★★★★为人民服务★★★★★
2010-06-10 07:22
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:8 

6楼正解~

“数据类型不匹配”,估计是你的排名或年龄是数值型, 要用 val() 函数转换~

2010-06-10 18:45
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
收藏
得分:0 
程序代码:
a=thisform.pageframe1.page1.text1.value
b=alltrim(thisform.pageframe1.page1.text7.value)
c=thisform.pageframe1.page1.text4.value
d=alltrim(thisform.pageframe1.page1.text2.value)
e=alltrim(thisform.pageframe1.page1.text3.value)
f=alltrim(thisform.pageframe1.page1.text6.value)
sele 个人信息
go top
locate for 个人信息.编号==a
if found()
    messagebox("记录存在!",[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]0[/color][/color][/color]+[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]16[/color][/color][/color]+[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]0[/color][/color][/color],"错误")
else
    insert into 个人信息 values(a,b,d,c,e,f)
    messagebox("添加成功!",[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]0[/color][/color][/color]+[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]64[/color][/color][/color]+[color=#800000; font-weight: bold][color=#800000; font-weight: bold][color=#800000; font-weight: bold]0[/color][/color][/color],"提示")
endif
    thisform.pageframe1.page1.text1.value=""
    thisform.pageframe1.page1.text2.value=""
    thisform.pageframe1.page1.text3.value=""
    thisform.pageframe1.page1.text4.value=""
    thisform.pageframe1.page1.text6.value=""
    thisform.pageframe1.page1.text7.value=""
多谢几位了。。不过代码改成这个样子了。。。文本框的设置 数值型的数据类型也改成了“数值型”,还是数据类型不匹配
用val函数也是。。继续求救。。
六个文本框,2个数值型,一个备注型,还有3个是字符型
每次添加时都是跳出3个“数据类型不匹配”的框框。。但是还是能成功添加进表里去。。这是咋回事诶。。。多谢了
VFP98.rar (13.57 KB)


[ 本帖最后由 棋只 于 2010-6-10 21:37 编辑 ]
2010-06-10 21:14
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 

不会吧, 说得够清楚了~  你运行一下下面的程序( 保存为 test.prg, 再运行test ), 应该明白是怎么回事了~  如果还... 我只好向你举白旗讨饶了~

* test.prg
crea tabl 表a (a c(10),b n(10),c n(10),d m)
inse into 表a valu("fopawejg",val("123"),val("456"),"jqweiotgq")  && 用val()转换,运行顺利 ~
brow
inse into 表a valu("fopawejg","123","456","jqweiotgq")  && 未用val()转换, 将提示出错~
retu

2010-06-10 22:05
棋只
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-9
收藏
得分:0 
回复 9楼 茵梦湖
a=val(thisform.pageframe1.page1.text1.value)
b=alltrim(thisform.pageframe1.page1.text7.value)
c=val(thisform.pageframe1.page1.text4.value)
d=alltrim(thisform.pageframe1.page1.text2.value)
e=alltrim(thisform.pageframe1.page1.text3.value)
f=alltrim(thisform.pageframe1.page1.text6.value)
sele 个人信息
go top
locate for 个人信息.编号==a
if found()
    messagebox("记录存在!",0+16+0,"错误")
else
    insert into 个人信息 values(a,b,d,c,e,f)
    messagebox("添加成功!",0+64+0,"提示")
endif
    thisform.pageframe1.page1.text1.value=0
    thisform.pageframe1.page1.text2.value=" "
    thisform.pageframe1.page1.text3.value=" "
    thisform.pageframe1.page1.text4.value=0
    thisform.pageframe1.page1.text6.value=" "
    thisform.pageframe1.page1.text7.value=" "


真的不可以。。。真的。。。真的。。我错了……真的还是跳出三个“数据类型不匹配”

----------------------------
我找到原因了。表的索引的设置有问题。。把索引都删了,数据类型不匹配的提示也就没了。谢谢楼上诸位了

[ 本帖最后由 棋只 于 2010-6-11 06:39 编辑 ]
2010-06-10 22:30
快速回复:求助 表单添加记录时 文件正在使用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022285 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved