我的一个小程序,遇到问题:
首先将数据库中的值读入变量
dim year as single   ('Year是表Total_emission中的一个关于年份的字段)
Dim qdef As QueryDef
Dim rs As Recordsetyear=combo1.text ('获取用户选择的年份)
Set qdef = db.CreateQueryDef("", "SELECT Total_emission.Mobiletype, Total_emission.[CO] From Total_emission Where (((Total_emission.year) = year) And ((Total_emission.area) = 1))")
Set rs = qdef.OpenRecordset(dbOpenSnapshot)
rs.MoveLast
在上面这段程序中,Where子句中的(Total_emission.year) = year这个条件根本不起作用,请问错误在那里?多谢大虾指教!
 

解决方案 »

  1.   

    对数据库不太熟悉
    猜想是不是Total_emission.year的类型和变量year的类型不同造成的
      

  2.   

    dim year as single   ('Year是表Total_emission中的一个关于年份的字段)
    Dim qdef As QueryDef
    Dim rs As Recordsetyear=val(combo1.text) ('获取用户选择的年份)
    Set qdef = db.CreateQueryDef("", "SELECT Total_emission.Mobiletype, Total_emission.[CO] From Total_emission Where (((Total_emission.year) =" & year & ") And ((Total_emission.area) = 1))")
    Set rs = qdef.OpenRecordset(dbOpenSnapshot)
    rs.MoveLast
      

  3.   

    year=combo1.text ’此变量year最好用其他的变量名如totalYear 
    改作:
    year(Total_emission.year) = totalYear
      

  4.   

    即:
    dim total_Year as single   ('total_Year是表Total_emission中的一个关于年份的字段)
    Dim qdef As QueryDef
    Dim rs As Recordsettotal_Year=val(combo1.text) ('获取用户选择的年份)
    Set qdef = db.CreateQueryDef("", "SELECT Total_emission.Mobiletype, Total_emission.[CO] From Total_emission Where ((year(Total_emission.year) =" & total_Year & ") And ((Total_emission.area) = 1))")
    Set rs = qdef.OpenRecordset(dbOpenSnapshot)
    rs.MoveLast