假设m_CityName(I, 2)="01001"
cSql = "Select city_id,year,mon,day,Sales From " & cDbfFile & _
         "Where city_id='" & m_CityName(I, 2) & "' And (Year='2004' and Mon='01') order by Year "
大家看一下这条查询语句错在哪里,怎么改?

解决方案 »

  1.   

    忘了交代,cDbfFile =m_AppPath & "\dbf\2004.DBF"为自由表。
      

  2.   

    楼主还是少用year day等保留字作为字段或表名,实在要用则这样用:[year] [day]
      

  3.   

    前人已经定义好了的,偶不能修改,只能使用。改成这样[year] [day]还是不行。
      

  4.   

    已在where前面加个空格。提示:实时错误'-2147217900(80040e14)'
    [Microsoft][ODBC Visual FoxPro Driver]SQL:Column '' is not found.
      

  5.   

    city_id,year,mon,day均为字符类型,试了n次组合,还是没找到错误。我用ado连接上了,
    就查询语句通不过,大家再帮忙找一找。谢谢!
      

  6.   

    我觉得还是你用的字段名和FOXPRO的保留字有冲突,我忘记了FOXPRO里如何区分了,在SQL SERVER里可以加“[]”。
      

  7.   

    对DBF访问,要用全名.cSql = "Select city_id,year,mon,day,Sales From " & cDbfFile & _
             ".DBF Where city_id='" & m_CityName(I, 2) & "' And (Year='2004' and Mon='01') order by Year "
      

  8.   

    回复人: xm2005(哪有经典代码?) ( ) 信誉:100  2005-08-11 16:55:00  得分: 0  
     
     
       忘了交代,cDbfFile =m_AppPath & "\dbf\2004.DBF"为自由表。
      
     
    '=========================================
    不要用全路径.
    你的 CONN 只要连接到该文件所在的目录即可.
    例如:
    Function OpenDBFConn(WorkPath As String) As ADODB.Connection        Dim DBFConn As New ADODB.Connection
            Dim ConnStr As String
            
            ConnStr = "DSN=Visual FoxPro Tables;SourceDB=" & WorkPath & ";SourceType=DBF"
            DBFConn.Open ConnStr
            Set OpenDBFConn = DBFConn
            
    End Function
      

  9.   

    TO MSTOP(陈建华):按你的方法连接,并将查询语句改为:
    cDbfFile ="2004.DBF"
    cSql = "Select city_id,[year],mon,[day],Sales " & _
           "From " & cDbfFile & _
           " Where city_id='" & m_CityName(I, 2) & "' And ([Year]='2004' and Mon='01') order by [Year]"
    还是通不过!谢谢你!我再找一找,或者换用Access数据库来实现。