Импорт в Excel из таблицы Access на основе двух параметров - PullRequest
0 голосов
/ 03 февраля 2012

Я пытаюсь импортировать данные из Access в Excel на основе двух параметров. У меня есть список инструментов, которые указывают номер проекта (параметр 1) и тип инструмента (параметр 2). Как я могу отфильтровать инструменты, которые не удовлетворяют введению пользователем этих двух параметров?

Я видел эту тему: Импорт в Excel из таблицы Access на основе параметров

но речь не идет о нескольких параметрах. Вот где я сейчас нахожусь:

    Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer

''Access database

strFile = "D:\Tool_Database\Tool_Database.mdb"

''This is the Jet 4 connection string, you can get more
''here : http://www.connectionstrings.com/excel

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";"

''Late binding, so no reference is needed

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

'Find the name of the tool that was selected
Dim SelectedTool As String, SelectedProj
Set SelectedTool = Tools_ListBox.Selected
Set SelectedProj = Project_ListBox.Selected

strSQL = "SELECT * " _
        & "FROM ToolFiles " _
        & "WHERE Tool_Name = '" & SelectedTool & "'"

rs.Open strSQL, cn, 3, 3

Worksheets("ToolList").Cells(2, 1).CopyFromRecordset rs

rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

Очевидно, что в инструкции strSQL мне нужно сфокусироваться и вставить значение в SelectedProj.

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Если вы просто хотите добавить SelectedProj в оператор SQL, это должно быть уловкой (где ProjectType - это имя поля):

strSQL = "SELECT * " _
        & "FROM ToolFiles " _
        & "WHERE Tool_Name = '" & SelectedTool & "' " _
        & "AND ProjectType = '" & SelectedProj & "'"
0 голосов
/ 06 февраля 2012

Выбранное свойство возвращает True, если выбран элемент, что не имеет смысла в вашем примере выше. Возможно, вы ищете что-то вроде

SelectedTool = Tools_listbox.Items(Tools_listbox.SelectedItem)

Обратите внимание, у вас также нет объявления для SelectedTool, что является непослушным, но я думаю, что это должна быть строка, в этом случае вы не должны использовать Set.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...