powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Связь с базой данных MS Access
6 сообщений из 6, страница 1 из 1
Связь с базой данных MS Access
    #34102590
Boomer_00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть уже готовая база данных(файл MS Access) необходимо связаться с ней с помощью оператора SQL(SELECT).
Из этой базы необходима строка указанная пользователем.
Эта строка состоит из ячеек(по столбцам), содержимое каждой ячейки необходимо присвоить каким-то переменным.

Если кто-нибудь с этим сталкивался, пожалуйста, напишите как это будет выглядеть на VBA.
...
Рейтинг: 0 / 0
Связь с базой данных MS Access
    #34102613
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. DataEnvironment
К проекту нажимаете правым Add>Data Environment, или в начале запуска VB, во время создания нового проекта, выберите Data Project, VB сам подключит все это, затем создаете новый Connection и подключаете к базе, затем добавляете команду (Add Comand) и подключаетесь к таблице, можно также запрос
2. ADO
Подключаете ссылку к библиотекам ADO (Project>References>Microsoft ActiveX Data Objects x.x Library)
Программно подключаетесь к базе, программно подключаетесь к таблицам или запросом
3. DAO
То же самое что и с ADO, только библиотеки Microsoft DAO... тоже на ADO похоже

В сети есть куча примеров на эту тему, да и в самом форуме на hiprog.com, freevbcode.com, vbrussian.com поищите примеров куча
...
Рейтинг: 0 / 0
Связь с базой данных MS Access
    #34108521
Boomer_00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для начала попытался запустить код:

Option Explicit
Dim base As Database
Dim rs As Recordset
Dim SQL1 As String

Private Sub UserForm_Initialize()
Set base = OpenDatabase("C:\db1.mdb")
SQL1 = "SELECT * FROM Shveller - U WHERE Namber = '5U'"
Set rs = base.OpenRecordset(SQL1, dbOpenDynaset)
End Sub

Public Sub ReadRow()
Label1.Caption = rs.Fields(4)
End Sub
Private Sub CommandButton1_Click()
ReadRow
End Sub

Он выдает ошибку:
Неправильный синтаксис в предложении FROM.

Не понимаю, что ему не нравится???

В идеале этот код должен:
связаться с базой данных db1.mdb при нажатии на CommandBatton1;
выбрать из таблицы Shveller - U строку с содержимым 5U в столбце Namber;
отобразить в поле Label1 содержимое ячейки 4-го столбца.

HELP!!!
...
Рейтинг: 0 / 0
Связь с базой данных MS Access
    #34108578
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ему не нравица название таблицы - Shveller - U. Нужно в []. Вообще попробуйте зайти в ассекс и в дизайнере запросов выполнить ваш запрос.
...
Рейтинг: 0 / 0
Связь с базой данных MS Access
    #34110123
Boomer_00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, прога заработала!!!

Далее по заданию необходимо изменить программу так чтобы в SQL – запросе параметр команды Where выбирал пользователь в поле ListBox.

Написал код:

Dim base As Database
Dim rs As Recordset
Dim SQL1 As String
Dim vibor As Variant

Private Sub UserForm_Initialize()

ListBox1.AddItem "5U"
ListBox1.AddItem "6.5U"
ListBox1.AddItem "8U"
ListBox1.AddItem "10U"
ListBox1.AddItem "12U"
ListBox1.AddItem "14U"
ListBox1.AddItem "16U"
ListBox1.AddItem "16aU"
ListBox1.AddItem "18U"
ListBox1.AddItem "18aU"
ListBox1.AddItem "20U"
ListBox1.AddItem "22U"
ListBox1.AddItem "24U"
ListBox1.AddItem "26U"
ListBox1.AddItem "27U"
ListBox1.AddItem "30U"
ListBox1.AddItem "33U"
ListBox1.AddItem "36U"
ListBox1.AddItem "40U"
vibor = ListBox1.Text
Set base = OpenDatabase("C:\db1.mdb")
SQL1 = "SELECT * FROM [Shveller - U] WHERE Namber = '" & vibor & "'"
Set rs = base.OpenRecordset(SQL1, dbOpenDynaset)
End Sub

Public Sub ReadRow()
Label1.Caption = rs.Fields(1)
Label2.Caption = rs.Fields(2)
Label3.Caption = rs.Fields(3)
Label4.Caption = rs.Fields(4)
Label5.Caption = rs.Fields(5)
Label6.Caption = rs.Fields(6)
Label7.Caption = rs.Fields(7)
End Sub

Private Sub CommandButton1_Click()
ReadRow
End Sub

Но, что – то опять не работает???

Пишет:
Run-time error 3021
Текущая запись отсутствует.

HELP!!!
...
Рейтинг: 0 / 0
Связь с базой данных MS Access
    #34120963
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дак открыл Recordset и проверь а записи то есть.
Например безотказный способ с любыми курсорами
Код: plaintext
1.
2.
3.
4.
5.
If rs.BOF and rs.EOF then
   'значит ни чего нет
Else
   ' а тут чего есть
End If
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Связь с базой данных MS Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]