学习Access数据库中不同字段的查询方法

xueban69 2009-11-18 09:09:12
数据库Access的表tm_xx中有5个字段,分别为:ID(自动编号)、品名(文本)、生产时间(日期/时间)、产品单价(货币)、产品数量(数字)。
VB窗体form1中有以下控件,分别是:Text1(在这里输入信息)、Text2(输出查询结果)、Text2(输出查询结果)、Text4(输出查询结果)、Text5(输出查询结果)、Command1(确认输入信息)。
如果在text1中输入品名,那么查询语句如下:
select * from tm_xx where 品名 = '" & Text1.Text & "'
但在text1中输入产品数量时,用下面的代码就不行了:
select * from tm_xx where 产品数量 = '" & Text1.Text & "'
请问,应如何修改上面的代码?如果在text1内输入"ID",或"生产时间",或"产品价格",代码又应当怎么写呢?
...全文
418 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xueban69 2009-11-19
  • 打赏
  • 举报
回复
9楼总结的不错。
再次谢谢各位,结贴了!
xueban69 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 king06 的回复:]
"select * from tm_xx where 品名 = '" & Text1.Text & "'"
"select * from tm_xx where 产品数量 = " & val(Text1.Text)
"select * from tm_xx where ID = " & trim(Text1.Text)
"select * from tm_xx where 生产时间 = #" & trim(Text1.Text) & "#"
价格同数量写法.

[/Quote]
谢谢,经过测试,您提供的查询方法全部正确!
zdingyun 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xueban69 的回复:]
引用 3 楼 zdingyun 的回复:
sql = "select * from tm_xx where 产品数量 = " & Val(Text1.Text)

谢谢您,测试通过!
如果在text1内输入"ID",或"生产时间",或"产品价格",代码又应当怎么写呢?
[/Quote]
数字字段不用双单引号,字符字段使用双单(')引号.日期字段对ACCESS数据库则使用双#号.
king06 2009-11-19
  • 打赏
  • 举报
回复
"select * from tm_xx where 品名 = '" & Text1.Text & "'"
"select * from tm_xx where 产品数量 = " & val(Text1.Text)
"select * from tm_xx where ID = " & trim(Text1.Text)
"select * from tm_xx where 生产时间 = #" & trim(Text1.Text) & "#"
价格同数量写法.
孤独剑_LPZ 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xueban69 的回复:]
引用 3 楼 zdingyun 的回复:
sql = "select * from tm_xx where 产品数量 = " & Val(Text1.Text)

谢谢您,测试通过!
如果在text1内输入"ID",或"生产时间",或"产品价格",代码又应当怎么写呢?
[/Quote]

sql = "select * from tm_xx where id = " & Val(Text1.Text)
xueban69 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zdingyun 的回复:]
sql = "select * from tm_xx where 产品数量 = " & Val(Text1.Text)
[/Quote]
谢谢您,测试通过!
如果在text1内输入"ID",或"生产时间",或"产品价格",代码又应当怎么写呢?
huanghhh4 2009-11-18
  • 打赏
  • 举报
回复
Val 函数


返回包含于字符串内的数字,字符串中是一个适当类型的数值。

语法

Val(string)

必要的 string 参数可以是任何有效的字符串表达式.

说明

Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

下面的返回值为 1615198:

Val(" 1615 198th Street N.E.")

在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。

Val("&HFFFF")

注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
huanghhh4 2009-11-18
  • 打赏
  • 举报
回复
使用msdn找一下那些转行的格式就行了。

CBool Boolean 任何有效的字符串或数值表达式。
CByte Byte 0 至 255。
CCur Currency -922,337,203,685,477.5808 至922,337,203,685,477.5807。
CDate Date 任何有效的日期表达式。
CDbl Double 负数从 -1.79769313486232E308 至 -4.94065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。
CDec Decimal 零变比数值,即无小数位数值,为
+/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为
+/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。
CInt Integer -32,768 至 32,767,小数部分四舍五入。
CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。
CSng Single 负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。
CStr String 依据 expression 参数返回 Cstr。
CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。
zdingyun 2009-11-18
  • 打赏
  • 举报
回复
sql = "select * from tm_xx where 产品数量 = " & Val(Text1.Text)
xueban69 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huanghhh4 的回复:]
select * from tm_xx where 产品数量 = '" & CLng(Text1.Text) & "'
应该这样就行了。
应该提示类型不对吧
[/Quote]
报错“标准表达式中数据类型不匹配”
huanghhh4 2009-11-18
  • 打赏
  • 举报
回复
select * from tm_xx where 产品数量 = '" & CLng(Text1.Text) & "'
应该这样就行了。
应该提示类型不对吧

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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