我有一個VBA模塊中的下面的SQL語句:MS查詢條件由VBA
dbs.Execute "INSERT INTO PA2001CustomReportingTable ([Personnel No], [Subtype], [Start Date], [End Date], [CalDays]) " & _
"SELECT [Personnel No], [Subtype], [Start Date], [End Date], [CalDays] FROM PA2001 " & _
"WHERE ([PA2001].[Cal days] > 0) AND ([PA2001].[Start Date]>=#" & StartDatePA2001Lower & "#) AND ([PA2001].[End Date]<=#" & EndDatePA2001Upper & "#) AND (" & GetListOfInclusionTypes() & ");"
的GetListOfInclusionTypes調用函數是在一個列表框使用用戶選擇一個簡單的字符串生成器一個用戶形式來構建字符串。
Function GetListOfInclusionTypes() As String
Dim i As Integer
Dim isFirst As Boolean
isFirst = True
'Convert Listbox into String of Selected Leave Types
For i = 0 To Forms("MainReport").Controls("SelLeaveTypes").ListCount - 1
If Forms("MainReport").Controls("SelLeaveTypes").Selected(i) Then
If isFirst = True Then
GetListOfInclusionTypes = "[PA2001].[Subtype]=" & Chr(34) & Forms("MainReport").Controls("SelLeaveTypes").Column(0, i) & Chr(34)
isFirst = False
Else
GetListOfInclusionTypes = GetListOfInclusionTypes & " OR [PA2001].[Subtype]=" & Chr(34) & Forms("MainReport").Controls("SelLeaveTypes").Column(0, i) & Chr(34)
End If
End If
Next i
End Function
,它建立的樣本串是:
[PA2001].[Subtype] = "0100" Or [PA2001].[Subtype] = "0200" Or [PA2001].[Subtype] = "0300"
然而,一旦插入SQL語句運行;數據被插入到不屬於SQL Where子句中指定的日期範圍的新表中!我沒有看到錯誤在哪裏。