关于月份查询的问题

shortppsy 2005-10-28 12:29:40
Dim ssql1 As String
Dim cnn1 As New adodb.Connection
Dim ret1 As New adodb.Recordset
Const a = "'"
temp = Year(Date)
temp1 = Month(Date)
temp2 = temp & "-" & temp1
'连接数据库
cnn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\data\kq.mdb" + ";Persist Security Info=False;"
ssql1 = "select 编号,提成,月份 form 收银 Where format(月份,'yyyy-mm') ='" & temp2 & "' And 编号 = '" & text1.Text & "'"

Debug.Print ssql1

ret1.Open ssq1l, cnn1
If ret1.BOF And ret1.EOF Then
MsgBox "没有这个会员", , "警告"
Else
Text4.Text = ret1.Fields("提成")
Text5.Text = ret1.Fields("收取费用")
ret1.Close
cnn1.Close
End If

以上代码出错,提示数据类型出错
...全文
142 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-10-28
  • 打赏
  • 举报
回复
temp = Year(Date)
temp1 = Month(Date)
temp2 = temp & "-" & temp1
以上三句可以用Format来代替:temp=Format(date,"YYYY-MM")
sirious 2005-10-28
  • 打赏
  • 举报
回复
没啥了 结帖给分啊
winehero 2005-10-28
  • 打赏
  • 举报
回复
先说明一下你这个月份还有编号两个字段的数据类型吧
xxw19820907 2005-10-28
  • 打赏
  • 举报
回复
你的编号是不是数字类型?如果是,它作为查询条件比较的时候不用加''
of123 2005-10-28
  • 打赏
  • 举报
回复
字符处理速度最慢。是否可以这样做:
date1 = cdate(format(date, "yyyy-mm") & "-01")
date2 = dateadd("m", 1, date1)

ssql1 = "select 编号,提成,月份 from 收银 Where 月份 >=" & date1 & " And 月份 <" & date2 & " And 编号 = " & text1.Text
chuting1 2005-10-28
  • 打赏
  • 举报
回复
如果日期是字符型的更好,left(日期,10)
saiko 2005-10-28
  • 打赏
  • 举报
回复
从你的
Where format(月份,'yyyy-mm')

不清楚字段 月份 的数据类型,如果是简单记录一个月份的数据的话,那你是查询不到符合 temp2 的数据。检查一下你的 字段:月份


faysky2 2005-10-28
  • 打赏
  • 举报
回复
你的查询语句写错了,from 写成了 form 了

你的编号是不是数字类型?如果是,它作为查询条件比较的时候不用加''
ssql1 = "select 编号,提成,月份 from 收银 Where format(月份,'yyyy-mm') ='" & temp2 & "' And 编号 = " & text1.Text

zou19820704 2005-10-28
  • 打赏
  • 举报
回复
我觉得你的format(月份,'yyyy-mm') 月份栏里面是不是含有年份信息呢?
假如你的月份中一条记录是“05” 你format后yyyy是等于几呢?你自己试试吧!

7,763

社区成员

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

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