If txtCust.Value <> "" Then
        If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Or txtGroupNumber <> "" Or txtProductNumber <> "" Or txtAcctNumber <> "" Then
            
            sqlstr = sqlstr & " and REF_N01 like '" & txtCust.Value & "'"
        Else
            sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "'"
        End If
    End If
请问like那两句有什么问题?着急,谢谢

解决方案 »

  1.   

    sqlstr = sqlstr & " and REF_N01 like '%" & txtCust.Value & "%'"
    Else
     sqlstr = sqlstr & " where REF_N01 like '%" & txtCust.Value & "%'"这样?
      

  2.   

    like '%" & txtCust.Value & "%'"
      

  3.   

    sqlstr = sqlstr & " and REF_N01 like '" & txtCust.Value & "%'"
    Else
     sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "%'"
      

  4.   

    不行,出不来结果,为什么添入数据确认后返回一个INPUT框?
      

  5.   

    Option Compare Database
    Dim ws As Workspace
    Dim db As Database
    Dim rs As QueryDef
    Dim sqlstr As StringPrivate Sub CmdDelete_Click()
        On Error Resume Next
        db.QueryDefs.Delete "db_gl_acct"
    End SubPrivate Sub CmdRpt_Click()
    Dim txtLen As Integer
    Set db = CurrentDb
    On Error GoTo errHandle
    '----------明细--------------
        sqlstr = "select BATCH_NO,BATCH_SRCE,FISCAL_YR,PERIOD_NO,BATCH_STAT,MST_ACT_NO,TRANS_DESC,TRANS_AMT,DBCR_IND,REF_NO1,REF_NO2,REF_NO3,REF_NO4,REF_NO5,REF_NO6,REF_NO7,REF_NO8,REF_NO9,REF_NO10 from dbo_GL_BATCHDETAILACCT"
        If txtClass <> "" Then
            sqlstr = sqlstr & " where BATCH_SRCE='" & Trim(txtClass.Value) & "'"
        Else
            sqlstr = sqlstr
        End If
        If txtYear <> "" Then
            If txtClass <> "" Then
                sqlstr = sqlstr & " and FISCAL_YR=" & Val(Trim(txtYear.Value))
            Else
                sqlstr = sqlstr & " where FISCAL_YR=" & Val(Trim(txtYear.Value))
            End If
        End If
        If txtMon1 <> "" And txtMon2 <> "" Then
            If txtClass <> "" Or txtYear <> "" Then
                sqlstr = sqlstr & " and PERIOD_NO between " & Val(txtMon1.Value) & " and " & Val(txtMon2.Value)
            Else
                sqlstr = sqlstr & " where PERIOD_NO between " & Val(txtMon1.Value) & " and " & Val(txtMon2.Value)
            End If
        End If
        If txtMaterialA.Value <> "" And txtMaterialB <> "" Then
            txtLen = Len(Trim(txtMaterialA.Value))
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Then
                sqlstr = sqlstr & " and (left(REF_NO7," & txtLen & ") between '" & Trim(txtMaterialA.Value) & "' and '" & Trim(txtMaterialB.Value) & "')"
            Else
                sqlstr = sqlstr & " where (left(REF_NO7," & txtLen & ") between '" & Trim(txtMaterialA.Value) & "' and '" & Trim(txtMaterialB.Value) & "')"
            End If
        End If
        If txtJournalNumber <> "" Then
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Then
                sqlstr = sqlstr & " and BATCH_NO=" & txtJournalNumber
            Else
                sqlstr = sqlstr & " where BATCH_NO=" & txtJournalNumber
            End If
        End If
        If txtGroupNumber <> "" Then
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Then
                sqlstr = sqlstr & " and MST_ACT_NO like '" & Trim(txtGroupNumber) & "-???-???????'"
            Else
                sqlstr = sqlstr & " where MST_ACT_NO like '" & Trim(txtGroupNumber) & "-???-???????'"
            End If
        End If
        If txtProductNumber <> "" Then
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Or txtGroupNumber <> "" Then
                sqlstr = sqlstr & " and MST_ACT_NO Like '???-" & Trim(txtProductNumber) & "-???????'"
            Else
                sqlstr = sqlstr & " where MST_ACT_NO Like '???-" & Trim(txtProductNumber) & "-???????'"
            End If
        End If
        If txtAcctNumber.Value <> "" Then
            txtLen = Len(Trim(txtAcctNumber))
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Or txtGroupNumber <> "" Or txtProductNumber <> "" Then
                sqlstr = sqlstr & " and left(right(MST_ACT_NO,7)," & txtLen & ") ='" & Trim(txtAcctNumber.Value) & "'"
            Else
                sqlstr = sqlstr & " where left(right(MST_ACT_NO,7)," & txtLen & ") ='" & Trim(txtAcctNumber.Value) & "'"
            End If
        End If
        If txtCust.Value <> "" Then
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Or txtGroupNumber <> "" Or txtProductNumber <> "" Or txtAcctNumber <> "" Then
                
                sqlstr = sqlstr & " and REF_N01 like '" & txtCust.Value & "%'"
    Else
                sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "%'"        End If
        End If
        sqlstr = sqlstr & " order by PERIOD_NO"
        Set rs = db.CreateQueryDef("db_gl_acct", sqlstr)
        DoCmd.RunMacro "AccDetail", 1
        MsgBox "已输出到'C:\report\总帐数据.xls'", vbOKOnly + vbInformation, "提示"
        db.QueryDefs.Delete "db_gl_acct"
        rs.Close
        Set rs = Nothing
        Exit Sub
    errHandle:
        If Err.Number = 3010 Or Err.Number = 3012 Then
            MsgBox "请先删除临时表", vbOKOnly + vbExclamation, "错误操作提示"
        Else
            MsgBox Err.Number & Chr(13) & Err.Description, vbOKOnly + vbExclamation, "错误操作提示"
            End
        End If
    End Sub
      

  6.   

    If txtCust.Value <> "" Then
            If txtClass <> "" Or txtYear <> "" Or (txtMon1 <> "" And txtMon2 <> "") Or (txtMaterialA <> "" And txtMaterialB <> "") Or txtJournalNumber <> "" Or txtGroupNumber <> "" Or txtProductNumber <> "" Or txtAcctNumber <> "" Then
                
                sqlstr = sqlstr & " and REF_N01 like '%" & txtCust.Value & "%'"
    Else
                sqlstr = sqlstr & " where REF_N01 like '%" & txtCust.Value & "%'"        End If
        End If不明白为什么返回一个INPUT窗口输入参数
    如果不用LIKE 用=怎么写?
    sqlstr = sqlstr & " and REF_N01=" & txtCust.Value & "" 对吗
      

  7.   

    不好意思对不起大家阿
    sqlstr = sqlstr & " and REF_N01 like '" & txtCust.Value & "%'"
    Else
     sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "%'"是对的,我把NO1写成N01了,找不到字段我的分不够,先给coolingpipe(冷箫轻笛) ( ) 信誉:100 谢谢,后面的弟兄以后补给你