fcoit
asked on
VBA & SQL: Passing strings in the Where clause
I need to add an additional statement to the where clause depending on whether the user checks a box or not.
The additional statement is as follows:
AND scripts.PriorAuth_PAMC IS NOT NULL
I am having problems passing the "IS NOT NULL" any hints will be greatly appreciated.
========================== ========== ========== ========== ========== ====
Dim mydb As Database, myqd As QueryDef, strSQL As String
Dim strScripts As String, dtBegDate As String, dtEndDate As String, sClass As String
Dim ChrRet As String, dbLocScriptMbr As String, sSQL As String, myrs As Recordset
Dim qdReportSet As QueryDef, qSelectedNabp As Recordset
Dim DocName As String
Dim bAnd As Boolean
Dim myRecSet As Recordset
Dim sPriorAuth As String
strScripts = "Scripts_" & [Forms]![frmzClient]![strC lientId]
dtBegDate = [Forms]![frmGetMonthlyRepo rtDates]![ dtmRxStart Date]
dtEndDate = [Forms]![frmGetMonthlyRepo rtDates]![ dtmRxStopD ate]
dbLocScriptMbr = [Forms]![frmzClient]![txtd bLocScript Mbr] & ".dbo."
sClass = "Instore"
ChrRet = Chr$(13) & Chr$(10)
Set mydb = CurrentDb()
sSQL = "SET NOCOUNT ON" + ChrRet
sSQL = sSQL + "SET ANSI_WARNINGS OFF" + ChrRet
sSQL = sSQL & "DECLARE @ClientId Char(2) , @dtBegDate datetime, @dtEndDate datetime, @strNabp Char(7), @strClass Char(7), @strPriorAuth Char(11) " + ChrRet
sSQL = sSQL & "SET @ClientId = '" + [Forms]![frmzClient]![strC lientId] + "'" + ChrRet
sSQL = sSQL & "SET @dtBegDate = '" + dtBegDate + "'" + ChrRet
sSQL = sSQL & "SET @dtEndDate = '" + dtEndDate + "'" + ChrRet
sSQL = sSQL & "SET @strClass = '" + sClass + "'" + ChrRet
sSQL = sSQL + ChrRet
sSQL = sSQL & "SELECT DISTINCT scripts.Nabp, scripts.RxNum, scripts.RxDate, drug.PackageSize, drug.DrugName, scripts.Qty," + ChrRet
sSQL = sSQL & " scripts.DaySupply, scripts.PriorAuth_PAMC, scripts.DAW, scripts.IngrCostS, scripts.AmtDue, scripts.Account," + ChrRet
sSQL = sSQL & " scripts.PlanNum, scripts.Pat_ID, scripts.Person_Code, scripts.Ndc_Mfg, scripts.Ndc_Prod, scripts.Ndc_Pkg," + ChrRet
sSQL = sSQL & " scripts.CostBasis, scripts.Phy_ID, scripts.AuditFlag, scripts.Cost_Ind, scripts.Refill_Code, " + ChrRet
sSQL = sSQL & " AuditRequestData.Code, AuditRequestData.lngCounte r, " + ChrRet
sSQL = sSQL & " scripts.Counter, scripts.PriorAuthFlag, Pharmacy.Name AS PName, Pharmacy.Store_Nbr, Pharmacy.Address1," + ChrRet
sSQL = sSQL & " Pharmacy.Address2, Pharmacy.City, Pharmacy.State," + ChrRet
sSQL = sSQL & " CASE When Len(LTrim(RTrim(ZipCode))) = 9 Then Left(ZipCode , 5) + '-' + Right(RTrim(ZipCode),4)" + ChrRet
sSQL = sSQL & " When Len(LTrim(RTrim(ZipCode))) = 5 Then ZipCode END AS Zip," + ChrRet
sSQL = sSQL & " '(' + Left(Phone_Nbr,3) + ') ' + Substring(Phone_Nbr,4,3) + '-' + Right(RTrim(Phone_Nbr),4) AS Phone" + ChrRet
sSQL = sSQL & " FROM " + dbLocScriptMbr & strScripts + " AS scripts " + ChrRet
sSQL = sSQL & " LEFT JOIN FDB_drugs As drug" + ChrRet
sSQL = sSQL & " ON scripts.Ndc_Mfg = drug.NDC_Mfg" + ChrRet
sSQL = sSQL & " AND scripts.Ndc_Prod = drug.NDC_Prod" + ChrRet
sSQL = sSQL & " AND scripts.Ndc_Pkg = drug.NDC_Pkg" + ChrRet
sSQL = sSQL & " LEFT JOIN Pharmacy" + ChrRet
sSQL = sSQL & " ON scripts.Nabp = Pharmacy.Nabp" + ChrRet
sSQL = sSQL & " LEFT JOIN AuditRequestData" + ChrRet
sSQL = sSQL & " ON scripts.Counter = AuditRequestData.lngCounte r" + ChrRet
sSQL = sSQL & " AND scripts.ClientId = AuditRequestData.ClientID" + ChrRet
sSQL = sSQL & " AND AuditRequestData.AuditClas s = @strClass" + ChrRet
sSQL = sSQL & " WHERE scripts.RxDate Between @dtBegDate And @dtEndDate " + ChrRet
sSQL = sSQL & " AND scripts.BalanceOut = 0 " + ChrRet
sSQL = sSQL & " AND scripts.ClientId = @ClientId " + ChrRet
The additional statement is as follows:
AND scripts.PriorAuth_PAMC IS NOT NULL
I am having problems passing the "IS NOT NULL" any hints will be greatly appreciated.
==========================
Dim mydb As Database, myqd As QueryDef, strSQL As String
Dim strScripts As String, dtBegDate As String, dtEndDate As String, sClass As String
Dim ChrRet As String, dbLocScriptMbr As String, sSQL As String, myrs As Recordset
Dim qdReportSet As QueryDef, qSelectedNabp As Recordset
Dim DocName As String
Dim bAnd As Boolean
Dim myRecSet As Recordset
Dim sPriorAuth As String
strScripts = "Scripts_" & [Forms]![frmzClient]![strC
dtBegDate = [Forms]![frmGetMonthlyRepo
dtEndDate = [Forms]![frmGetMonthlyRepo
dbLocScriptMbr = [Forms]![frmzClient]![txtd
sClass = "Instore"
ChrRet = Chr$(13) & Chr$(10)
Set mydb = CurrentDb()
sSQL = "SET NOCOUNT ON" + ChrRet
sSQL = sSQL + "SET ANSI_WARNINGS OFF" + ChrRet
sSQL = sSQL & "DECLARE @ClientId Char(2) , @dtBegDate datetime, @dtEndDate datetime, @strNabp Char(7), @strClass Char(7), @strPriorAuth Char(11) " + ChrRet
sSQL = sSQL & "SET @ClientId = '" + [Forms]![frmzClient]![strC
sSQL = sSQL & "SET @dtBegDate = '" + dtBegDate + "'" + ChrRet
sSQL = sSQL & "SET @dtEndDate = '" + dtEndDate + "'" + ChrRet
sSQL = sSQL & "SET @strClass = '" + sClass + "'" + ChrRet
sSQL = sSQL + ChrRet
sSQL = sSQL & "SELECT DISTINCT scripts.Nabp, scripts.RxNum, scripts.RxDate, drug.PackageSize, drug.DrugName, scripts.Qty," + ChrRet
sSQL = sSQL & " scripts.DaySupply, scripts.PriorAuth_PAMC, scripts.DAW, scripts.IngrCostS, scripts.AmtDue, scripts.Account," + ChrRet
sSQL = sSQL & " scripts.PlanNum, scripts.Pat_ID, scripts.Person_Code, scripts.Ndc_Mfg, scripts.Ndc_Prod, scripts.Ndc_Pkg," + ChrRet
sSQL = sSQL & " scripts.CostBasis, scripts.Phy_ID, scripts.AuditFlag, scripts.Cost_Ind, scripts.Refill_Code, " + ChrRet
sSQL = sSQL & " AuditRequestData.Code, AuditRequestData.lngCounte
sSQL = sSQL & " scripts.Counter, scripts.PriorAuthFlag, Pharmacy.Name AS PName, Pharmacy.Store_Nbr, Pharmacy.Address1," + ChrRet
sSQL = sSQL & " Pharmacy.Address2, Pharmacy.City, Pharmacy.State," + ChrRet
sSQL = sSQL & " CASE When Len(LTrim(RTrim(ZipCode)))
sSQL = sSQL & " When Len(LTrim(RTrim(ZipCode)))
sSQL = sSQL & " '(' + Left(Phone_Nbr,3) + ') ' + Substring(Phone_Nbr,4,3) + '-' + Right(RTrim(Phone_Nbr),4) AS Phone" + ChrRet
sSQL = sSQL & " FROM " + dbLocScriptMbr & strScripts + " AS scripts " + ChrRet
sSQL = sSQL & " LEFT JOIN FDB_drugs As drug" + ChrRet
sSQL = sSQL & " ON scripts.Ndc_Mfg = drug.NDC_Mfg" + ChrRet
sSQL = sSQL & " AND scripts.Ndc_Prod = drug.NDC_Prod" + ChrRet
sSQL = sSQL & " AND scripts.Ndc_Pkg = drug.NDC_Pkg" + ChrRet
sSQL = sSQL & " LEFT JOIN Pharmacy" + ChrRet
sSQL = sSQL & " ON scripts.Nabp = Pharmacy.Nabp" + ChrRet
sSQL = sSQL & " LEFT JOIN AuditRequestData" + ChrRet
sSQL = sSQL & " ON scripts.Counter = AuditRequestData.lngCounte
sSQL = sSQL & " AND scripts.ClientId = AuditRequestData.ClientID"
sSQL = sSQL & " AND AuditRequestData.AuditClas
sSQL = sSQL & " WHERE scripts.RxDate Between @dtBegDate And @dtEndDate " + ChrRet
sSQL = sSQL & " AND scripts.BalanceOut = 0 " + ChrRet
sSQL = sSQL & " AND scripts.ClientId = @ClientId " + ChrRet
Steve's way should work. You could also try:
AND ((scripts.PriorAuth_PAMC) Is Not Null)
AND ((scripts.PriorAuth_PAMC) Is Not Null)
ASKER
Let me explain a little bit more. I want this statement to be included if the user checks the 'chkPriorAuth' check box so how can I control that. Make it come on and off. So your suggestion will not work. Thanks for your input.
sSQL = sSQL & " scripts.PriorAuth_PAMC IS NOT NULL" + ChrRet
sSQL = sSQL & " scripts.PriorAuth_PAMC IS NOT NULL" + ChrRet
... all previous code
If Me.chkPriorAuth.Value = True Then
sSQL = sSQL & " scripts.PriorAuth_PAMC IS NOT NULL" + ChrRet
End If
Steve
If Me.chkPriorAuth.Value = True Then
sSQL = sSQL & " scripts.PriorAuth_PAMC IS NOT NULL" + ChrRet
End If
Steve
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Arthur,
Thanks it worked... "Life is so simple we make it hard"
Thanks it worked... "Life is so simple we make it hard"
glad to be of assistance
AW
AW
Steve