singlepost

Acces, SQL & VBA << На главную или назад  

В базе данных надо создать средство поиска.
Private Sub Кнопка13_Click()
Dim ssql As String
Dim conn As ADODB.connection
Set conn = CurrentProject.connection
ssql = "SELECT Таблица1.Машина, Таблица1.Станция, Таблица1.Дата "
ssql = ssql & "FROM Таблица1 "
ssql = ssql & "WHERE (Таблица1.Машина='ваз 2106');"
conn.Execute ssql
conn.Close
End Sub
таким вот кодом я пытаюсь создать и выполнить запрос на выборку… но ничего не работает. Проблема в том, что обычный построитель запросов использовать нельзя, т. к. условия выборки должны зависеть от других условий(к примеру если установлен флажок1, поле2 заполнено и т. д., то добавить в запрос соответствующие условия).
Можно и надо ли использовать здесь SQL, и какие другие могут быть способы?

97 ответов в теме “Acces, SQL & VBA”

  1. 11
    Влад Иванов ответил:

    всё, нашел… select table2.* into table from table2

  2. 10
    Леонид Максимов ответил:

    жесть

    >Private Sub Кнопка13_Click()
    >Dim ssql As String
    >Dim conn As ADODB.connection
    >Set conn = CurrentProject.connection
    >ssql = "SELECT Таблица1.Машина, Таблица1.Станция, Таблица1.Дата "
    >ssql = ssql & "FROM Таблица1 "
    >ssql = ssql & "WHERE (Таблица1.Машина='ваз 2106');"
    >conn.Execute ssql
    >conn.Close
    >End Sub

    а что вы думаете должно произойти?

    ADODB.Connection.Execute возвращает Recordset, с которым ничего не происходит. он даже не закрывается явным образом. более того, совершается попытка закрыть коннекшн, который пользователь никак не должен закрывать.

  3. 9
    Алексей Коньшин ответил:

    какие-то извращения, а точно правильное условие выбора? может дело с регистром лишним пробелом?
    проще искать по Like…
    SELECT * FROM моя_таблица WHERE мое_поле Like "%ищу этот текст%"

  4. 8
    Владимир Шакшин ответил:

    минус метода в том, что объект надо не забыть убить потом…
    и имя запросу надо случайное задавать, а то 2 пользователя одновременно запустят поиск и пройдут запросы на создание 2 объектов с одним именем – косяк который потом надо ручками править (удалять объект)

  5. 7
    Влад Иванов ответил:

    попробую… не такой уж и корявый способ, другие варианты-десятки страниц кода ADO на VBA.

  6. 6
    Владимир Шакшин ответил:

    я как то раз делал что-то наподобие… я применил возможно самый корявый способ, но зато он работал. Я на основании полученной строки запроса (в твоем случае ssql) создавал новый объект БД запрос, в который и запихивал эту строку. А потом уж вызывал просто сам запрос…

  7. 5
    Владимир Шакшин ответил:

    Если исходники найду – то выложу

  8. 4
    Влад Иванов ответил:

    ни на че ни ругается просто ничего не происходит

  9. 3
    Владимир Шакшин ответил:

    а на что собственно ругается?

  10. 2
    Влад Иванов ответил:

    мда невесело (((

  11. 1
    Влад Иванов ответил:

    люди ну помогите кто нить че никто не знает?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.