我下面这个语句说有一个参数没有指定值,它把“WHERE”当一个变量来处理啦,我要怎么才能解决,各位帮帮我!  Adodc1.RecordSource = "select 转地单位,转地协议登记表.转地协议号,用地项目名称,转地位置,用地单位,批准转地依据,经办人,签订日期,付款情况, 地价补偿,青苗补偿,副作物补偿,合计=补偿金额,鱼塘,水田,菜地,旱地,山地,果园地,山塘,其它土地,合计=转地面积,管理费,备注 from 转地协议登记表 , 转地面积表 , 转地补偿金额表 " + " Where " + Text2
   是“WHERE”的问题,要怎么解决啊?

解决方案 »

  1.   

    SQL = ""
    If Check1.Value = 1 Then
        SQL = SQL & "  ExpCondetail.item  like '" & Trim(Combo1) & "' and "
    End IfIf Check2.Value = 1 Then
        SQL = SQL & "  ExpCondetail.type   like '" & Trim(Combo2) & "' and "
    End IfIf Check3.Value = 1 Then
        SQL = SQL & "  ExpCondetail.size  like '" & Trim(Combo3) & "' and "
    End IfIf Check4.Value = 1 Then
        SQL = SQL & "  ExpContract.region  like '" & Trim(Combo4) & "' and "
    End IfIf Check5.Value = 1 Then
        SQL = SQL & "  ExpContract.country  like '" & Trim(Combo5) & "' and "
    End IfIf Check6.Value = 1 Then
        SQL = SQL & "  ExpContract.payment  like '" & Trim(Combo6) & "' and "
    End IfIf Check7.Value = 1 Then
        SQL = SQL & "  ExpContract.priceterm  like '" & Trim(Combo7) & "' and "
    End IfIf Check8.Value = 1 Then
        SQL = SQL & "  ExpContract.Currency  like '" & Trim(Combo8) & "' and "
    End IfIf Check9.Value = 1 Then
        SQL = SQL & "  ExpContract.id  like '" & Trim(Text1) & "' and "
    End IfIf Check10.Value = 1 Then
        SQL = SQL & "  ExpContract.date  >= '" & Format(Rq1, "yyyy-MM-dd") & "' and  ExpContract.date <= '" & Format(Rq2, "yyyy-MM-dd") & "' and "
    End IfIf Check11.Value = 1 Then
        SQL = SQL & "  ExpContract.buyer  like '" & Trim(Text2) & "' and "
    End IfIf Check12.Value = 1 Then
        SQL = SQL & "  ExpConDetail.JHRQ  >= '" & Format(JHRQ1, "yyyy-MM-dd") & "' and  ExpConDetail.JHRQ  <= '" & Format(JHRQ2, "yyyy-MM-dd") & "' and "
    End If
    If Trim(SQL) = "" Then
        MsgBox "最少选择一个条件吧!!"
        Exit Sub
    End IfSQL = "SELECT * FROM ExpConDetail INNER JOIN  ExpContract ON ExpConDetail.Contract = ExpContract.Contract  where " & SQL & " 1=1  order by ExpContract.Currency"
    r.Open SQL, cN, 1, 1
      

  2.   

    Adodc1.RecordSource = "select 转地单位,转地协议登记表.转地协议号,用地项目名称,转地位置,用地单位,批准转地依据,经办人,签订日期,付款情况, 地价补偿,青苗补偿,副作物补偿,合计=补偿金额,鱼塘,水田,菜地,旱地,山地,果园地,山塘,其它土地,合计=转地面积,管理费,备注 from 转地协议登记表 , 转地面积表 , 转地补偿金额表 where" & Text2
      

  3.   

    是不是text2里面的东西为空呀
      

  4.   

    还不行啊,Text2是不为空的我用了断点看了,就到这一句就不行啦前面的都没问题,还得要请名位兄弟帮我再看看!
      

  5.   

    你怎么把SQL分开写啊?合起来试试~
    还有,你那个+Text2.Text不大正确~!
    试改为+" & Text2.Text & "试试
      

  6.   

    谢谢请各位帮我我想几个办法,还是不行啊,我晕倒!
    是那个Where的问题,系统把它当一个变量处理啦,所以错误提示为,“至少有一个变量没有定义值”,我这个问题调了两天啦还没有解决,请各位救救我!
      

  7.   

    这不是where的问题,你有字段名写错了,在数据库中会被当作参数查询,所以你要检查一下sql语句是否有写错的地方
      

  8.   

    啊,不是吧,我用断点查看时那个Where是空值啊,我试试你说的
      

  9.   

    Adodc1.RecordSource = "select 转地单位,转地协议登记表.转地协议号,用地项目名称,转地位置,用地单位,批准转地依据,经办人,签订日期,付款情况, 地价补偿,青苗补偿,副作物补偿,合计=补偿金额,鱼塘,水田,菜地,旱地,山地,果园地,山塘,其它土地,合计=转地面积,管理费,备注 from 转地协议登记表 , 转地面积表 , 转地补偿金额表  Where " + Text2
      

  10.   

    不知你的合计时什么意思,究竟是要把什么合计:Adodc1.RecordSource = "select 转地单位,转地协议登记表.转地协议号,用地项目名称,转地位置,用地单位,批准转地依据,经办人,签订日期,付款情况, 地价补偿,青苗补偿,副作物补偿,补偿金额 as 合计1,鱼塘,水田,菜地,旱地,山地,果园地,山塘,其它土地,转地面积 as 合计2,管理费,备注 from 转地协议登记表 , 转地面积表 , 转地补偿金额表  Where " _
    &iif(trim(Text2.text)<>"","[字段] like '%"+ trim(Text2.text)+"%'","0=0")
      

  11.   

    建一个 SQL 的过程,传递一个参数就行了,或者用VB自己写,如果太长了,还是写SQL过程比较好。