2011-09-05 109 views
1

我目前正在連接到SQL服務器,並且只要它在給定條件匹配的檢索數據的Excel函數。VBA包含功能

Public Function VehModelUnitsCount(VehModel As String, fran As String, Site As Integer, SaleType As String, StartDate, EndDate, New As Integer) As Variant 
Application.Volatile 
If adoCN Is Nothing Then Call SetUpConnection 
Set adoRS = New ADODB.Recordset 
EvoStartDate = Format(StartDate, "yyyy/mm/dd") 
EvoEndDate = Format(EndDate, "yyyy/mm/dd") 
strSQL = "SELECT COUNT(*) As RCOUNT FROM CARTYPES RIGHT OUTER JOIN CARS ON CARTYPES.Description = CARS.Type LEFT OUTER JOIN CARS2 ON CARS.[Stock Number] = CARS2.[Stock Number]" & Chr(13) 
strSQL = strSQL & "WHERE (CARTYPES.NewSale = " & New & ")" & Chr(13) 
strSQL = strSQL & "AND (CARTYPES.Franchise = '" & fran & "')" & Chr(13) 
strSQL = strSQL & "AND (CARTYPES.Site = " & Site & ")" & Chr(13) 
strSQL = strSQL & "AND (CARTYPES.SaleTypeDesc = '" & SaleType & "')" & Chr(13) 
strSQL = strSQL & "AND (CARS2.InvoiceDate BETWEEN '" & StartDate & "' AND '" & EndDate & "')" & Chr(13) 
strSQL = strSQL & "AND (CARS.Invoiced = '1')" & Chr(13) 
Rem strSQL = strSQL & "AND (CARS.Model = '" & VehModel & "')" & Chr(13) 
[THIS ONE] - strSQL = strSQL & "AND (CARS.Model CONTAINS '" & VehModel & "')" & Chr(13) 
adoRS.Open strSQL, adoCN, adOpenForwardOnly, adLockReadOnly 
VehModelUnitsCount = adoRS.Fields("RCOUNT").Value 
adoRS.Close 
End Function 

標有[此ONE]字符串是一個我掙扎,我需要找出細胞是否包含給定的字符串,但顯然用「包含」不工作。

上完成,這將是驚人的任何幫助。

謝謝。

+0

嘗試這樣的:'幷包含(CARS.Model, ' 「&VehModel&」')' –

回答

3

你可以嘗試 -

strSQL = strSQL & "AND (CARS.Model LIKE '%" & VehModel & "%')" & Chr(13) 
+0

工程就像一個魅力,謝謝! – MrDKOz

+1

@MoonPunch - 如果它的工作原理,以及您的意見建議,您應該點擊「接受」刻度這個答案旁) –

+0

我儘快去,因爲我讀你的答案,但它告訴我要等它:)已經完成! – MrDKOz