Hi Don:
Here's an example of how I do it. It works for me, I hope it works for you.
Note that, because of wrapping the lines might look strange.
Essentially, all lines starting with strSELECT, strFROM, strGROUPBY and
strHAVING are single lines of code.
Note how there is a leading space after the quote, before FROM, GROUP BY and
HAVING.
Good luck.
'--Start Code--
Sub Create_qryScoreCard()
On Error GoTo ProcErr
Dim dbs As DAO.Database
Dim qdfScoreCard As DAO.QueryDef
Dim strSELECT As String
Dim strFROM As String
Dim strGROUPBY As String
Dim strHAVING As String
Set dbs = DBEngine(0)(0)
strSELECT = "SELECT qryAllPeriodsStores.PERIOD AS P,
qrySalesMonth.SalesMonth, qryAllPeriodsStores.STORE4_ID,
qryAllPeriodsStores.STORE6_ID, qryAllPeriodsStores.STORE_NAME,
qryAllPeriodsStores.STORE_TYPE, qryAllPeriodsStores.MARKET_NAME,
qryAllPeriodsStores.REGION_OLD, qryAllPeriodsStores.REGION_NEW,
qryAllPeriodsStores.TOTAL_SF, qryAllPeriodsStores.TOTAL_SALES_SF,
qryAllPeriodsStores.TOTAL_SERVICE_SF, qryScorecard_FTE.SumOfFTE,
([EQUIP_SALE_TRAN]+[PMT_ACCT_TRAN]) AS [Gross POS Transactions],
tblHO_Trans.EQUIP_SALE_TRAN, tblHO_Trans.PMT_ACCT_TRAN,
tblUpgrade.QUALIFY_COUNT, tblUpgrade.UNQUAL_COUNT,
tblFBNP_React.REACTIVATION, tblFBNP_React.DIR_COMRATE,
tblFBNP_React.IMP_RBT_RATE, tblCPE.DTTD_ALLOC_CPE, "
strSELECT = strSELECT & "NZ([pre200509_QTY],0)*1 AS [In Store Insurance
Deductible], NZ([50_QTY],0)*1 AS InsDed50Qty, NZ([50_AMT],0)*1 AS
InsDed50Amt, NZ([85_QTY],0)*1 AS InsDed85Qty, NZ([85_AMT],0)*1 AS
IndDed85Amt, NZ([OTHER_QTY],0)*1 AS InsDedOTHERQty, NZ([OTHER_AMT],0)*1 AS
InsDedOTHERAmt, (tblIns_Trans.INS_CLAIM+tblIns_Trans.UNFULFILLED) AS
[Insurance Replacement Claims Submitted], tblIns_Trans.INS_CLAIM,
tblLDDA.LD_TRANSACTION, tblPOS_Trans_SumACCSY.TRANSACTION,
tblDTTD_GA.DTTD_ALLOC_GA, tblDTTD_GA.DTTD_GA, tblDTTD_GA.GA_ALLOCATION,
tblFBNP_React.FIRST_BILL_NON_PAY, tblPriceOverride.OVERRIDE_AMT,
tblStoreQtyByMonth.DIRECT_STORE_QTY, tblMindshare.SCORE AS MindshareScore,
qryGrossAddsbyPremiumRateCodes2.TotalPremRateGA"
strFROM = " FROM ((((((((((((((((((qryAllPeriodsStores LEFT JOIN
tblHO_Trans ON (qryAllPeriodsStores.STORE4_ID = tblHO_Trans.STORE4_ID) AND
(qryAllPeriodsStores.PERIOD = tblHO_Trans.PERIOD)) LEFT JOIN tblUpgrade ON
(qryAllPeriodsStores.STORE4_ID = tblUpgrade.STORE4_ID) AND
(qryAllPeriodsStores.PERIOD = tblUpgrade.PERIOD)) LEFT JOIN tblFBNP_React ON
(qryAllPeriodsStores.PERIOD = tblFBNP_React.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = tblFBNP_React.STORE4_ID)) LEFT JOIN tblCPE
ON (qryAllPeriodsStores.STORE4_ID = tblCPE.STORE4_ID) AND
(qryAllPeriodsStores.PERIOD = tblCPE.PERIOD)) LEFT JOIN tblIns_Trans ON
(qryAllPeriodsStores.PERIOD = tblIns_Trans.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = tblIns_Trans.STORE4_ID)) LEFT JOIN tblLDDA
ON (qryAllPeriodsStores.STORE4_ID = tblLDDA.STORE4_ID) AND
(qryAllPeriodsStores.PERIOD = tblLDDA.PERIOD)) LEFT JOIN tblDTTD_GA ON
(qryAllPeriodsStores.PERIOD = tblDTTD_GA.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = tblDTTD_GA.STORE4_ID)) "
strFROM = strFROM & "LEFT JOIN tblPriceOverride ON
(qryAllPeriodsStores.STORE4_ID = tblPriceOverride.STORE4_ID) AND
(qryAllPeriodsStores.PERIOD = tblPriceOverride.PERIOD)) LEFT JOIN
tblStoreQtyByMonth ON qryAllPeriodsStores.PERIOD =
tblStoreQtyByMonth.PERIOD) LEFT JOIN tblMindshare ON
(qryAllPeriodsStores.PERIOD = tblMindshare.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = tblMindshare.STORE4_ID)) LEFT JOIN
qrySalesMonth ON qryAllPeriodsStores.PERIOD = qrySalesMonth.PERIOD) LEFT
JOIN tblGrossAddsbyRatePlan ON (qryAllPeriodsStores.STORE4_ID =
tblGrossAddsbyRatePlan.STORE4_ID) AND (qryAllPeriodsStores.PERIOD =
tblGrossAddsbyRatePlan.PERIOD)) LEFT JOIN qryGrossAddsbyPremiumRateCodes2 ON
(qryAllPeriodsStores.PERIOD = qryGrossAddsbyPremiumRateCodes2.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = qryGrossAddsbyPremiumRateCodes2.STORE4_ID))
LEFT JOIN qryScorecard_FTE ON (qryAllPeriodsStores.STORE6_ID =
qryScorecard_FTE.STORE6_ID) AND (qryAllPeriodsStores.PERIOD =
qryScorecard_FTE.PERIOD)) "
strFROM = strFROM & "LEFT JOIN qryScorecard_POS_Ins_Trans_50 ON
(qryAllPeriodsStores.PERIOD = qryScorecard_POS_Ins_Trans_50.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID = qryScorecard_POS_Ins_Trans_50.STORE4_ID))
LEFT JOIN qryScorecard_POS_Ins_Trans_85 ON (qryAllPeriodsStores.PERIOD =
qryScorecard_POS_Ins_Trans_85.PERIOD) AND (qryAllPeriodsStores.STORE4_ID =
qryScorecard_POS_Ins_Trans_85.STORE4_ID)) LEFT JOIN
qryScorecard_POS_Ins_Trans_OTHER ON (qryAllPeriodsStores.PERIOD =
qryScorecard_POS_Ins_Trans_OTHER.PERIOD) AND (qryAllPeriodsStores.STORE4_ID
= qryScorecard_POS_Ins_Trans_OTHER.STORE4_ID)) LEFT JOIN
qryScorecard_POS_Ins_Trans_pre200509 ON (qryAllPeriodsStores.PERIOD =
qryScorecard_POS_Ins_Trans_pre200509.PERIOD) AND
(qryAllPeriodsStores.STORE4_ID =
qryScorecard_POS_Ins_Trans_pre200509.STORE4_ID)) LEFT JOIN
tblPOS_Trans_SumACCSY ON (qryAllPeriodsStores.STORE4_ID =
tblPOS_Trans_SumACCSY.STORE4_ID) AND (qryAllPeriodsStores.PERIOD =
tblPOS_Trans_SumACCSY.PERIOD)"
strGROUPBY = " GROUP BY qryAllPeriodsStores.PERIOD,
qrySalesMonth.SalesMonth, qryAllPeriodsStores.STORE4_ID,
qryAllPeriodsStores.STORE6_ID, qryAllPeriodsStores.STORE_NAME,
qryAllPeriodsStores.STORE_TYPE, qryAllPeriodsStores.MARKET_NAME,
qryAllPeriodsStores.REGION_OLD, qryAllPeriodsStores.REGION_NEW,
qryAllPeriodsStores.TOTAL_SF, qryAllPeriodsStores.TOTAL_SALES_SF,
qryAllPeriodsStores.TOTAL_SERVICE_SF, qryScorecard_FTE.SumOfFTE,
([EQUIP_SALE_TRAN]+[PMT_ACCT_TRAN]), tblHO_Trans.EQUIP_SALE_TRAN,
tblHO_Trans.PMT_ACCT_TRAN, tblUpgrade.QUALIFY_COUNT,
tblUpgrade.UNQUAL_COUNT, tblFBNP_React.REACTIVATION, "
strGROUPBY = strGROUPBY & "tblFBNP_React.DIR_COMRATE,
tblFBNP_React.IMP_RBT_RATE, tblCPE.DTTD_ALLOC_CPE, NZ([pre200509_QTY],0)*1,
NZ([50_QTY],0)*1, NZ([50_AMT],0)*1, NZ([85_QTY],0)*1, NZ([85_AMT],0)*1,
NZ([OTHER_QTY],0)*1, NZ([OTHER_AMT],0)*1,
(tblIns_Trans.INS_CLAIM+tblIns_Trans.UNFULFILLED), tblIns_Trans.INS_CLAIM,
tblLDDA.LD_TRANSACTION, tblPOS_Trans_SumACCSY.TRANSACTION,
tblDTTD_GA.DTTD_ALLOC_GA, tblDTTD_GA.DTTD_GA, tblDTTD_GA.GA_ALLOCATION,
tblFBNP_React.FIRST_BILL_NON_PAY, tblPriceOverride.OVERRIDE_AMT,
tblStoreQtyByMonth.DIRECT_STORE_QTY, tblMindshare.SCORE,
qryGrossAddsbyPremiumRateCodes2.TotalPremRateGA"
strHAVING = " HAVING (((qryAllPeriodsStores.PERIOD) In (" & m_strPeriod
& ")) AND ((qryAllPeriodsStores.STORE4_ID) In (" & m_strStore4 & ")) AND
((qryAllPeriodsStores.STORE6_ID) In (" & m_strStore6 & ")));"
'--Create the QueryDef if it doesn't exist
On Error Resume Next
dbs.QueryDefs.Refresh
Set qdfScoreCard = dbs.QueryDefs("qryScoreCard")
If (3265 = Err) Then
Set qdfScoreCard = dbs.CreateQueryDef("qryScoreCard")
dbs.QueryDefs.Refresh
Err = 0
End If
On Error GoTo ProcErr
qdfScoreCard.SQL = strSELECT & strFROM & strGROUPBY & strHAVING
qdfScoreCard.Close
dbs.QueryDefs.Refresh
ProcExit:
dbs.Close
Set dbs = Nothing
Exit Sub
ProcErr:
MsgBox "In Create_qryScoreCard routine, Error Number is " & Err.Number &
_
vbCrLf & "Error Description is " & Err.Description
Resume ProcExit
End Sub
'--End Code--
Alan
"Don" <dk*****@twcny.rr.comwrote in message
news:11*********************@m73g2000cwd.googlegro ups.com...
Hi,
I have an SQL string that I'm trying to code into VBA and it's giving
me trouble. I tried to use line continuation and concatenation as best
I can to make it work. However, I'm stuck. I know that there are
limitations to the length of the string but I can't break it up
properly. I'm also thinking that I need to use multiples occurrences of
strsql to do so but I'm not sure how.
Can someone please tell me how to break this string up?
This is what I have right now (I know that wrapping is going to skew
it):
Dim strSQL As String
strsql = "SELECT * FROM "&InventorySource&""&_
"WHERE(((["&InventorySource&"].NRMU_NO_1=Forms.frmMainSearch.NRMU_NO_1)
Or (Forms.frmMainSearch.NRMU_NO_1) Is Null)"&_
"And ((["&InventorySource&"].USETYPE=Forms.frmMainSearch.USETYPE) Or
(Forms.frmMainSearch.USETYPE) Is Null)"&_
"And ((["&InventorySource&"].LANDCOVER=Forms.frmMainSearch.LANDCOVER)
Or (Forms.frmMainSearch.LANDCOVER) Is Null)"&_
"And ((["&InventorySource&"].DOM1=Forms.frmMainSearch.DOM1) Or
(Forms.frmMainSearch.DOM1) Is Null)"&_
"And ((["&InventorySource&"].DOM2=Forms.frmMainSearch.DOM2) Or
(Forms.frmMainSearch.DOM2) Is Null)"&_
"And ((["&InventorySource&"].DOM3=Forms.frmMainSearch.DOM3) Or
(Forms.frmMainSearch.DOM3) Is Null)"&_
"And ((["&InventorySource&"].AGE2SP1=Forms.frmMainSearch.AGE2SP1) Or
(Forms.frmMainSearch.AGE2SP1) Is Null)"&_
"And ((["&InventorySource&"].AGE2SP2=Forms.frmMainSearch.AGE2SP2) Or
(Forms.frmMainSearch.AGE2SP2) Is Null)"&_
"And ((["&InventorySource&"].AGE2SP3=Forms.frmMainSearch.AGE2SP3) Or
(Forms.frmMainSearch.AGE2SP3) Is Null)"&_
"And ((["&InventorySource&"].MGTCON=Forms.frmMainSearch.MGTCON) Or
(Forms.frmMainSearch.MGTCON) Is Null)"&_
"And ((["&InventorySource&"].MGTACT=Forms.frmMainSearch.MGTACT) Or
(Forms.frmMainSearch.MGTACT) Is Null)"&_
"And ((["&InventorySource&"].ADDINFO=Forms.frmMainSearch.ADDINFO) Or
(Forms.frmMainSearch.ADDINFO) Is Null)"&_
"And ((["&InventorySource&"].BASAL=Forms.frmMainSearch.BASAL) Or
(Forms.frmMainSearch.BASAL) Is Null)"&_
"And ((["&InventorySource&"].DIAM=Forms.frmMainSearch.DIAM) Or
(Forms.frmMainSearch.DIAM) Is Null)"&_
"And ((["&InventorySource&"].REGEN=Forms.frmMainSearch.REGEN) Or
(Forms.frmMainSearch.REGEN) Is Null)"&_
"And ((["&InventorySource&"].EUAGED=Forms.frmMainSearch.EUAGED) Or
(Forms.frmMainSearch.EUAGED) Is Null)"&_
"And ((["&InventorySource&"].MUD=Forms.frmMainSearch.MUD) Or
(Forms.frmMainSearch.MUD) Is Null)"&_
"And ((["&InventorySource&"].METAL=Forms.frmMainSearch.METAL) Or
(Forms.frmMainSearch.METAL) Is Null)"&_
"And ((Forms.frmMainSearch.STARTDATE Is Null) Or
(Forms.frmMainSearch.ENDDATE Is Null)"&_
"Or (["&InventorySource&"].DATE Between Forms.frmMainSearch.STARTDATE
And Forms.frmMainSearch.ENDDATE))"&_
"And ((Forms.frmMainSearch.MINACR Is Null) Or
(Forms.frmMainSearch.MAXACR Is Null)"&_
"Or (["&InventorySource&"].ACREAGE Between Forms.frmMainSearch.MINACR
And Forms.frmMainSearch.MAXACR))"&_
"And ((["&InventorySource&"].UpWet=Forms.frmMainSearch.UPWET) Or
(Forms.frmMainSearch.UPWET Is Null)));"
Thanks in advance for any input!
Don