查询数据时,只能查询到部分字段。郁闷中……在线等~~~~~~~~~~~~~

windeflower 2003-12-23 10:19:49
谁遇到过在对一个表查询时,有些字段的值不在查询结果中
例如:
表:学生
学号 姓名 年龄 籍贯
10001 王 21 大连
10002 李 23 沈阳

SQL语句:
STRSQL="SELECT * FROM 学生 WHERE 学号='"10001"'"
SET RS=CON.EXECUTE(STRSQL)
结果
学号 姓名 年龄 籍贯
10001 王

即 RS!年龄和RS!籍贯没有值
哪位大虾见过类似问题?
...全文
144 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
windeflower 2003-12-24
  • 打赏
  • 举报
回复
我真的没招了!
可能是老天捉弄我吧
windeflower 2003-12-23
  • 打赏
  • 举报
回复
是不是我的SQL SERVER2000有问题啊
有的时候查询后RS.FIELDSCOUNT竟然等于-1
而查询分析器中同样的语句能得出好多记录,应该是大于0的
这都是什么原因啊,是不是VB中运行SQL经常会得到这样的结果啊
windeflower 2003-12-23
  • 打赏
  • 举报
回复
For Each fld In rs.Fields
Debug.Print "'" & fld.Name & "': " & fld.value
Next fld
是在If Not rs.EOF Then 上边插入的
可是运行时就差“合同内容”在窗体上不显示了
也就是说 rs!合同内容 是没有值的 且不为""
windeflower 2003-12-23
  • 打赏
  • 举报
回复
'合同编号': 0001
'合同名称': 和平广场地下通道建设合同
'合同类别': 房屋出售
'收付类型': 收款
'签订日期': 2003-01-01
'工程': 和平广场地下通道建设工程
'合同总额': 500
'生效日期': 2003-04-01
'终止日期':
'终止原因':
'合同内容': 321321
'我方单位': 工程部
'对方单位': 12321
'对方地址': 21312
'对方电话': 21321
'其他方单位': 21312
'其他方地址': 21312
'其他方电话': 21321
'执行状态': 未执行
'审核':
'门牌号': 12121212
'房屋面积': 150
'单价': 6000

能显示出结果了,不过还差一个“合同内容”没有结果
馮強 2003-12-23
  • 打赏
  • 举报
回复
是不是Grid的列数定义太少了。
windeflower 2003-12-23
  • 打赏
  • 举报
回复
大哥!不好意思,偶是学俄语的,这样写数据库方便些,以后努力了
上边说的学生表是个举例!具体代码是上边那个关于合同的
rs.fields(0),rs.fields(1).....这种方法已经试过
victorycyz 2003-12-23
  • 打赏
  • 举报
回复
请把下面的语句的执行结果贴上来看看:

dim fld as field

for each fld in rs.fields
print "'" & fld.name & "': " & fld.value
next
nik_Amis 2003-12-23
  • 打赏
  • 举报
回复
up
windeflower 2003-12-23
  • 打赏
  • 举报
回复
从“我方单位”一直到“合同内容”都没有值
guoyx 2003-12-23
  • 打赏
  • 举报
回复
你的语句,没问题呀。如果你是使用Access,当你使用引擎不匹配时,使用中文是出错的,所以建议使用rs.fields(0),rs.fields(1).....
yaya1979 2003-12-23
  • 打赏
  • 举报
回复
首先建议你不要用中文写表名以及字段名,第一容易出错,第二应该养成一个良好的编程风格以及习惯。
然后看一下你的10001那儿的符号有没有错误,在SQL中试了你的语句,SELECT * FROM 学生 WHERE (学号 = '10001 ') 答案正确
windeflower 2003-12-23
  • 打赏
  • 举报
回复
With frmCon
grd.Col = 1
ConNo = Replace(Trim(grd.Text), "'", "''") '获得合同编号
strsql = "select * from 合同 where 合同编号='" & ConNo & "'"
Set rs = con.Execute(strsql)
If Not rs.EOF Then
.txtConNo.Text = rs!合同编号
.cboConType.Text = rs!合同类别
.cboRP.Text = rs!收付类型
.txtConName.Text = rs!合同名称
.txtTotalAmount.Text = rs!合同总额
.cboState.Text = rs!执行状态
.txtSignDate.Text = rs!签订日期
.txtProName.Text = rs!工程
.txtValDate.Text = rs!生效日期
.cboMyName.Text = rs!我方单位
.txtYiName.Text = rs!对方单位
.txtYiAddress.Text = rs!对方地址
.txtYiTel.Text = rs!对方电话
.txtSanName.Text = rs!其他方单位
.txtSanAddress.Text = rs!其他方地址
.txtSanTel.Text = rs!其他方电话
.txtContent.Text = rs!合同内容
.txtDoorNo.Text = rs!门牌号
.txtAcreage.Text = rs!房屋面积
.txtUPrice.Text = rs!单价
.txtEndDate.Text = rs!终止日期
.txtEndCausation.Text = rs!终止原因
End If
End With
windeflower 2003-12-23
  • 打赏
  • 举报
回复
我把SQL语句在查询分析器中调用过了,也是正确的
我也使用过多种方法表示字段都没可以
如:
RS.FIELDS()
RS.学号
RS("学号")
rs()
windeflower 2003-12-23
  • 打赏
  • 举报
回复
没值啊,所以郁闷
我用
WHILE I=0 TO 3
DEBUG.PRINT RS.FIELDS(I)
NEXT I
不知为什么却会打印出想要的正确结果
landongfang 2003-12-23
  • 打赏
  • 举报
回复
不要在表名,字段名使用中文
容易出错
jhzhou882 2003-12-23
  • 打赏
  • 举报
回复
rs里就两列吗?不会吧
objRs(0).value
objRs(1).value
objRs(2).value
objRs(3).value
看看有值没
jone999 2003-12-23
  • 打赏
  • 举报
回复
这个问题真的很奇怪,重装VB或到别的机子试试

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧