Заблокирован

Принцип работы SQL запросов в Visual Basic 6.0 (За основу взята Data)

02.06.2012, 19:32. Показов 11499. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень часто встречаю на форуме людей, которые делают поиск в своих базах данных, основываясь на метод запроса к Ado или Dao, но достойного поиска так и не встретил, были, конечно, примеры достойные внимания, но все, же с ошибками, вводишь значение и знаешь, оно есть, но поиск говорит, что нет... Решил показать пример как можно эксплуатировать SQL запрос к базе данных как поиск. Собственно пример в прикрепленных файлах. Далее будут примеры еще интереснее.

Вопросы по коду в тему.
Вложения
Тип файла: rar SQL.rar (496.7 Кб, 509 просмотров)
3
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2012, 19:32
Ответы с готовыми решениями:

Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков
Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков. Довольно часто я на форуме встречаю людей которые мало...

Запросы sql в visual basic
не могу понять!!! Почему то запросы с условиями работают только если тип поля в условии является числовым, если его тип текстовый то...

Visual basic & SQL
Доброго времени суток. Такой вопрос меня мучает уже более суток. Имеется одна большая бд (я выбрал на sql) Там столбцы (их много) ...

7
Заблокирован
02.06.2012, 20:00  [ТС]
Еще пример, на основе все того же SQL посчитаем поля с таблицы "Цена". К примеру есть ряд таблиц:

[Значение] [Значение] [Значение] [Цена]

Как нам посчитать сколько же всего получится в итоге по всем полям [Цена]? Есть такой замечательный SQL оператор "sum". Смотрим пример.
Вложения
Тип файла: rar SQL (Складываем поля).rar (13.3 Кб, 260 просмотров)
1
Заблокирован
03.06.2012, 10:59  [ТС]
На примере все той же базы данных смотрим вложенный файл. На поле формы добавим кнопку со стандартным именем и в нее впишем следующий код:

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "WHERE (((Customers.CompanyName) In (SELECT [CompanyName] FROM [Customers] As Tmp GROUP BY [CompanyName] HAVING Count(*)>1 )))"
DataBase.Refresh
Данный SQL запрос поможет нам найти из всей базы данных повторяющиеся значения в таблице базы данных "Customers" по всем полям CompanyName. Запрос выведет их на экран, сгруппировав.
Вложения
Тип файла: rar SQL (Одинаковые записи).rar (13.5 Кб, 174 просмотров)
1
Заблокирован
03.06.2012, 11:28  [ТС]
Следующая строка SQL покажет нам все значения из поля "Цена" которые больше "5000":

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "where Customers.Цена >= 5000"
DataBase.Refresh
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,768
Записей в блоге: 14
03.06.2012, 12:51
Все очень просто:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     '::: Создадим ADO-соединение
 
     Set Conn = CreateObject("ADODB.Connection")
 
     '::: Создадим recordset
 
     Set RS = CreateObject("ADODB.Recordset")
 
     '::: Зададим драйвер (здесь Access)
 
     DSNName = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
     DSNName = DSNName & HomeDir & "\test_base.mdb"
 
     '::: Открываем соединение
 
     Conn.Open DSNName
Теперь можно вводить SQL-запросы и анализировать ответы

Visual Basic
1
2
3
4
5
6
7
     SQL="SELECT count(*) from tbl1"
 
     RS.Open SQL, Conn, 3, 3
 
     msgbox "В таблице записей: " & Cstr(Rs(0))
 
     Rs.Close
Важно, что объект RS - это виртуальный массив, в котором колонки нумеруются с нуля,
а количество строк = к-ву строк, удовлетворяющих выполненному SELECT.
Так, если введен Select

SQL
1
SELECT a,b,c FROM T WHERE a=... AND b >= ... ORDER BY a,b,c
То Rs(0) - колонка a; Rs(1) - колонка b, Rs(2) - колонка c.
А число строк Rs = к-ву строк, который вернул SELECT.

Обработать RS можно так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
     RS.Open SQL, Conn, 3, 3
 
     Do While not RS.EOF
 
        txt=Cstr(Rs(0)) & " " & cstr(Rs(1)) & " " & Cstr(Rs(2))
        MsgBox Txt
 
        Rs.MoveNext
 
     Loop  
 
     Rs.Close
Ни сортировать, ни фильтровать, ни группировать результаты не нужно. Все это сделает SQL (если правильно сформулировать запрос).
2
Заблокирован
03.06.2012, 14:13  [ТС]
(За основу взята Data) обрати внимание !
0
Заблокирован
22.10.2012, 19:11  [ТС]
Catstail, АП темы ! Слушай не пойму что в твоем коде:

Цитата Сообщение от Catstail Посмотреть сообщение
'::: Создадим ADO-соединение Set Conn = CreateObject("ADODB.Connection") '::: Создадим recordset Set RS = CreateObject("ADODB.Recordset") '::: Зададим драйвер (здесь Access) DSNName = "DRIVER=Microsoft Access Driver (*.mdb)BQ=" DSNName = DSNName & HomeDir & "\test_base.mdb" '::: Открываем соединение Conn.Open DSNName
Будет работать с Grid? DataSource = чему ?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,768
Записей в блоге: 14
24.10.2012, 12:41
Если мы будем работать с визуальным компонентом, то результирующий RecordSet моего кода надо "запихнуть" в DataSource (если получится). У визуальных компонентов свои интерфейсы, а ADO - интерфейс общий (код будет работать и в VBScript, где нет виз. компнентов, и в VBA, где подключть их бывает непросто).

Добавлено через 38 секунд
Цитата Сообщение от inv.DS Посмотреть сообщение
Слушай не пойму что в твоем коде:
- что именно непонятно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2012, 12:41

Sql server и VS visual basic. Авторизация
Здравствуйте :) Помогите пожалуйста. Нужно создать авторизацию. Есть форма, на форме 2 textbox-а и 2 label-а соответственно(Емайл и...

Visual Basic 6.0. + SQL Server 2012
Добрый день, уважаемые. Очень нужна ваша помощь. Подскажите, пожалуйста. Есть база данных SQL Server 2012. В ней таблица MARA и...

Sql server и VS visual basic. Авторизация
Есть 3 формы. 1 форма - форма авторизации. (на форме расположены Text.box1 и Text.box2 соответственно логин и пароль и кнопка...

Автоматизация работы кинотеатра в Excel на Visual Basic
Дали задание, автоматизировать работу кинотеатра, самую малость сделала, но так как с Excel и VB почти не знакома не имею представления с...

Пример работы Autocad & Visual Basic
Создаю программу : при помощи команды subtract из одного solid должна выбить другой, но програма не действует...может кто работает с VB в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru