2011-09-05 9 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 

[THIS ONE]でマークされた文字列は、私は苦労しています一つであり、私はセルが与えられた文字列を含まれているかどうかを調べる必要があるが、どうやら使用しては動作しません。「含む」は、 。

これを完了するための助けがあれば驚くほどでしょう。

ありがとうございます。

+0

を: 'とCONTAINS(CARS.Modelを、 ' "&VehModel&"')'の魅力のような –

答えて

3

あなたが試みることができる - このようにしてみ

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

作品は、ありがとうございました! – MrDKOz

+1

@ムーンパンチ - あなたのコメントが示唆している通りに機能する場合は、この回答の横にある「受け入れ」チェックマークをクリックする必要があります;) –

+0

私はあなたの答えを読んですぐに行っていましたが、完了しました! – MrDKOz

関連する問題