| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4359 人关注过本帖
标题:[求助]关于数据类型不匹配
只看楼主 加入收藏
cs_Derek
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-1-6
收藏
 问题点数:0 回复次数:8 
[求助]关于数据类型不匹配

我给一个确定按钮写了如下代码:
if flag=1
set order to 职工编号
strxh=alltrim(thisform.text1.value)
if empty(thisform.text1.value)
messagebox("职工编号不能为空",30,"错误")
return
endif
seek (strxh)
if found()
messagebox("此职员号已存在,请另输一个",48,"错误")
thisform.text1.value=''
thisform.text1.setfocus
return
endif
append blank
insert into xcsj values(strxh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
endif

replace 职工编号 with alltrim(thisform.text1.value)
replace 姓名 with alltrim(thisform.text2.value)
replace 性别 with alltrim(thisform.text3.value)
replace 职务级别 with alltrim(thisform.text4.value)
replace 岗位 with alltrim(thisform.text5.value)
replace 部门 with alltrim(thisform.text6.value)
replace 岗位等级 with alltrim(thisform.text7.value)
replace 岗位系数 with alltrim(thisform.text8.value)
replace 岗位工资 with alltrim(thisform.text9.value)
replace 加班工资 with alltrim(thisform.text10.value)
replace 实发绩效工资 with alltrim(thisform.text11.value)
replace 出勤天数 with alltrim(thisform.text12.value)
replace 绩效工资基准 with alltrim(thisform.text13.value)
replace 日工资 with alltrim(thisform.text14.value)
replace 考核等级 with alltrim(thisform.text15.value)
replace 备注 with alltrim(thisform.text16.value)
replace 应发小计 with alltrim(thisform.text17.value)
replace 住房_交通补贴 with alltrim(thisform.text18.value)
replace 通讯费 with alltrim(thisform.text19.value)
replace 应扣小计 with alltrim(thisform.text20.value)
replace 养老保险 with alltrim(thisform.text21.value)
replace 医疗保险 with alltrim(thisform.text22.value)
replace 失业保险 with alltrim(thisform.text23.value)
replace 税前工资 with alltrim(thisform.text24.value)
replace 扣所得税 with alltrim(thisform.text25.value)
replace 实发工资 with alltrim(thisform.text26.value)
messagebox("本次操作成功",30,"提示")

thisform.text1.controlsource="xcsj.职工编号"
thisform.text2.controlsource="xcsj.姓名"
thisform.text3.controlsource="xcsj.性别"
thisform.text4.controlsource="xcsj.职务级别"
thisform.text5.controlsource="xcsj.岗位"
thisform.text6.controlsource="xcsj.部门"
thisform.text7.controlsource="xcsj.岗位等级"
thisform.text8.controlsource="xcsj.岗位系数"
thisform.text9.controlsource="xcsj.岗位工资"
thisform.text10.controlsource="xcsj.加班工资"
thisform.text11.controlsource="xcsj.实发绩效工资"
thisform.text12.controlsource="xcsj.出勤天数"
thisform.text13.controlsource="xcsj.绩效工资基准"
thisform.text14.controlsource="xcsj.日工资"
thisform.text15.controlsource="xcsj.考核等级"
thisform.text16.controlsource="xcsj.备注"
thisform.text17.controlsource="xcsj.应发小计"
thisform.text18.controlsource="xcsj.住房_交通补贴"
thisform.text19.controlsource="xcsj.通讯费"
thisform.text20.controlsource="xcsj.应扣小计"
thisform.text21.controlsource="xcsj.养老保险"
thisform.text22.controlsource="xcsj.医疗保险"
thisform.text23.controlsource="xcsj.失业保险"
thisform.text24.controlsource="xcsj.税前工资"
thisform.text25.controlsource="xcsj.扣所得税"
thisform.text26.controlsource="xcsj.实发工资"

thisform.text1.enabled=.f.
thisform.text2.enabled=.f.
thisform.text3.enabled=.f.
thisform.text4.enabled=.f.
thisform.text5.enabled=.f.
thisform.text6.enabled=.f.
thisform.text7.enabled=.f.
thisform.text8.enabled=.f.
thisform.text9.enabled=.f.
thisform.text10.enabled=.f.
thisform.text11.enabled=.f.
thisform.text12.enabled=.f.
thisform.text13.enabled=.f.
thisform.text14.enabled=.f.
thisform.text15.enabled=.f.
thisform.text16.enabled=.f.
thisform.text17.enabled=.f.
thisform.text18.enabled=.f.
thisform.text19.enabled=.f.
thisform.text20.enabled=.f.
thisform.text21.enabled=.f.
thisform.text22.enabled=.f.
thisform.text23.enabled=.f.
thisform.text24.enabled=.f.
thisform.text25.enabled=.f.
thisform.text26.enabled=.f.

thisform.refresh

可是在添加数据的时候总是提示数据类型不匹配,请问是哪里出的问题啊?
我基本是照书上写的啊

搜索更多相关主题的帖子: 类型 数据 
2006-01-07 17:49
freejyl
Rank: 1
等 级:新手上路
帖 子:59
专家分:3
注 册:2006-1-6
收藏
得分:0 
文本框控件(text)如果不设置它的属性,输入的数据在运行时都是字符型的,而上述程序中的表有些字段值要求为数据值,所以会出现不匹配的现象。有两种解决方法供参考:

方法一、用val函数转换需要数值型的地方

方法二、使用文本框生成器设置文本框的数据类型
2006-01-07 21:13
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
别的先不说,看着你的代码你是不是学编程时间不长啊,哪有这样写的啊,不嫌累啊,每次都重写一次属性,每次重写一次TEXT的VALUE值?

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-01-10 20:24
cs_Derek
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-1-6
收藏
得分:0 
以下是引用fown在2006-1-10 20:24:00的发言:
别的先不说,看着你的代码你是不是学编程时间不长啊,哪有这样写的啊,不嫌累啊,每次都重写一次属性,每次重写一次TEXT的VALUE值?

呵呵 大哥说的是啊

我其实才刚学不久,还是因为课程设计被逼的嘿
现在其实也还是几乎什么都不懂。

请问有不每次都重写一次的方法么?

自己真的不是很懂,谢谢了嘿

2006-01-19 19:45
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 

你的表里面是不是把除了第一个字段的其他字段都是用数值型 的?把你的文本框设成文本型,把ALLT()去掉,数值型不能用这个函数
另外,可以在表单上多自定义几个事件,然后控件各个控件的属性,只需要两行代码就可以搞定,不用来回的用这么多行代码控制


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-01-19 20:58
cs_Derek
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-1-6
收藏
得分:0 

那那两行的代码应该怎么写啊?

2006-01-19 22:45
lndsqfyq
Rank: 1
等 级:新手上路
帖 子:232
专家分:0
注 册:2006-1-16
收藏
得分:0 
呵呵,对于初学者这样写到是不错,虽说麻烦点,但自己心理明白,也不会写什么复杂的东西,有时我也这么写的,我认为编程就想堆积木一样,只要达到自己的目的,怎么写程序都行。当然还是要易读一些的好,如果不会的话,就按照自己的弄,结果对就行了,复杂的漫漫学。

2006-01-20 10:05
modaijifeng
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2010-5-7
收藏
得分:0 
我也遇到这样的问题:
checker表(用户校验表):字段有用户名(cname)、用户密码(cpassword)和权限等级(rank)。这三个字的都是字符型的
在“添加删除用户”表单运行时,还是会出现“数据类型不匹配”,怎么解决啊!
2010-05-11 17:50
modaijifeng
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2010-5-7
收藏
得分:0 
“添加”按钮的click事件代码是:
people=alltrim(thisform.text1.value)
ma=alltrim(thisform.text2.value)
ma1=alltrim(thisform.text3.value)
gr=alltrim()
grade=val(gr)

shuru=.T.
*******************************************************************8
select * from checker  into cursor te5
y=0
count all for alltrim(cname)==people to y        
********************************************************************************
if len(people)=0 or len(ma)=0 or len(ma1)=0 or len(gr)=0
   shuru=.F.
   messagebox("   必须填写所有项!  ","提示信息")
else
   if y=1
      shuru=.F.
      messagebox("该用户名已存在")
   endif
   
   if ma==ma1
   else
      shuru=.F.
      messagebox("密码错误,请重新输入密码!",32,"提示信息")
   endif
   
   if len(ma)<4 or len(ma)>6
      shuru=.F.
      messagebox("密码应为4-6位!",32,"提示信息")
   endif
endif

if shuru=.T.
   insert into checker (cname,cpassword,rank) values (people,ma,grade)  
   messagebox("添加成功!",32,"提示")
endif
thisform.refresh()
麻烦高手帮我看看哪里出问题啦
2010-05-11 17:52
快速回复:[求助]关于数据类型不匹配
数据加载中...
 
   



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

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