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那两句有什么问题?着急,谢谢
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那两句有什么问题?着急,谢谢
Else
sqlstr = sqlstr & " where REF_N01 like '%" & txtCust.Value & "%'"这样?
Else
sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "%'"
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
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 & "" 对吗
sqlstr = sqlstr & " and REF_N01 like '" & txtCust.Value & "%'"
Else
sqlstr = sqlstr & " where REF_N01 like '" & txtCust.Value & "%'"是对的,我把NO1写成N01了,找不到字段我的分不够,先给coolingpipe(冷箫轻笛) ( ) 信誉:100 谢谢,后面的弟兄以后补给你