关于SQL语句在VB里使用的问题

karm 2003-04-01 07:54:05
Dim con As adodb.Connection

Dim rsc As adodb.Recordset



str1 = "select 日期 as 日期,入口产量 as 入口产量,出口产量 as 出口产量,本班末包装重量 as 末包重量,上班交班包装重量 as 交班重量,头尾板重量 as 头尾板重量,本班机组缺陷 as 本机组缺陷,缺陷封闭量 as 缺陷封闭量,缺陷放行量 as 缺陷放行量 from 生产情况 where 日期 between #" & CStr(CDate(md_firstdate.Text)) & "# and #" & CStr(CDate(md_enddate.Text)) & "# order by 日期 desc"
Set rsc = con.Execute(str1)

Set Grid.DataSource = rsc

查询时出错,只得出最近日期的数据.后把"order by 日期 desc"去掉只得出开始时间,程序都不报错,有谁能帮帮我?

...全文
25 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
karm 2003-04-02
  • 打赏
  • 举报
回复
谢谢大家,后来我自已解决了,原来发现我的DATEGRID没有设置标题,SQL语句没错,只是后面改为



Adodc1.RecordSource = str1

Set grid.DataSource = Adodc1

Adodc1.Refresh


嘻嘻,好了!!!
rongyijizhu 2003-04-01
  • 打赏
  • 举报
回复
估计是在sql server中,可如下:
Dim con As adodb.Connection
Dim rsc As adodb.Recordset
str1 = "select 日期 as 日期,入口产量 as 入口产量,出口产量 as 出口产量,本班末包装重量 as 末包重量,上班交班包装重量 as 交班重量,头尾板重量 as 头尾板重量,本班机组缺陷 as 本机组缺陷,缺陷封闭量 as 缺陷封闭量,缺陷放行量 as 缺陷放行量 from 生产情况 where convert(char,日期,102) between & format(CStr(md_firstdate.Text),'yyyy.mm.dd') & " and " & format(CStr(md_enddate.Text),'yyyy.mm.dd') & " order by 日期 desc"
Set rsc = con.Execute(str1)
Set Grid.DataSource = rsc
IwantFlay 2003-04-01
  • 打赏
  • 举报
回复
同意 xysophie
如果你的日期字段就一个char 或vachar 型.
干脆就用 日期>=CStr(CDate(md_firstdate.Text)) and 日期<CStr(CDate(md_enddate.Text))

介意楼主在使用char时的时候保存时用yyyymmdd格式,
watt 2003-04-01
  • 打赏
  • 举报
回复
CStr(CDate(md_firstdate.Text)) -->format(md_firstdate.Text,"yyyy/mm/dd")
饮水需思源 2003-04-01
  • 打赏
  • 举报
回复
日期条件的查询写法:
在access中:
str1=" select ... from ... where 日期=# " & 日期查询变量 & " # "
在SQL中:
str1=" select ... from ... where 日期='"& 日期查询变量 &"'"
xysophie 2003-04-01
  • 打赏
  • 举报
回复
如果你的“日期”字段是datetime﹐可以這樣試試
str1 = "select 日期 as 日期,入口产量 as 入口产量,出口产量 as 出口产量,本班末包装重量 as 末包重量,上班交班包装重量 as 交班重量,头尾板重量 as 头尾板重量,本班机组缺陷 as 本机组缺陷,缺陷封闭量 as 缺陷封闭量,缺陷放行量 as 缺陷放行量 from 生产情况 where 日期 between #" & CDate(md_firstdate.Text) & "# and #" & CDate(md_enddate.Text) & "# order by convert(char(10),日期,111) desc"
DimVar 2003-04-01
  • 打赏
  • 举报
回复
要知道具体情况才有较好的解决办法,所以下面这个方法不是效率最高的,但是稳妥的。
where convert(char(8),日期,112) between '" & format(md_firstdate.Text,"yyyyymmdd") & "' and '" & format(md_enddate.Text,"yyyymmdd") & "' order by convert(char(8),日期,112) desc"
xayzmb 2003-04-01
  • 打赏
  • 举报
回复
能不能把程序运行时生成的STR1打出来看看。

1,216

社区成员

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

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