powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / select в VBA
22 сообщений из 22, страница 1 из 1
select в VBA
    #32879337
james1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет всем

ни как не могу найти путного примера
нужно в VBA написать запрос допустим select company_name from company
и потом в цикле перебрать все записи и закинуть в какую нибудь переменную VBA

киньте пример
...
Рейтинг: 0 / 0
select в VBA
    #32879377
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо в цикле перебирать записи. Используйте одну строку кода - DLookup. Фы1 вам поможет.
...
Рейтинг: 0 / 0
select в VBA
    #32879531
S l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
S l
Гость
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("select company_name from company;")
rst.MoveFirst

While Not rst.EOF
ИмяПеременной= rst.Fields(0).Value
.MoveNext
Loop

.Close
End With
dbs.Close
...
Рейтинг: 0 / 0
select в VBA
    #32879541
S l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
S l
Гость
ой-ёй.. предыдущее сообщение не в счет :)

Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("select company_name from company;")
rst.MoveFirst
While Not rst.EOF
ИмяПеременной= rst.Fields(0).Value
rst.MoveNext
endwhile
rst.Close
dbs.Close
...
Рейтинг: 0 / 0
select в VBA
    #32879551
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<ИмяПеременной> = Dlookup("company_name","company","company_id=" & Cstr(<ИмяПеременной где лежит код компании>). Все, код кончился.
...
Рейтинг: 0 / 0
select в VBA
    #32879558
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыщо одну скобку ")" в конце забыл.
...
Рейтинг: 0 / 0
select в VBA
    #32879850
james1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S lой-ёй.. предыдущее сообщение не в счет :)

Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("select company_name from company;")
rst.MoveFirst
While Not rst.EOF
ИмяПеременной= rst.Fields(0).Value
rst.MoveNext
endwhile
rst.Close
dbs.Close

Set rst = dbs.OpenRecordset("select company_name from company;")
error type missmatch
...
Рейтинг: 0 / 0
select в VBA
    #32879852
james1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель<ИмяПеременной> = Dlookup("company_name","company","company_id=" & Cstr(<ИмяПеременной где лежит код компании>). Все, код кончился.

а как получить набор записей?
...
Рейтинг: 0 / 0
select в VBA
    #32879859
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
james1982
Set rst = dbs.OpenRecordset("select company_name from company;")
error type missmatch
А теперь ответь на вопросы:
1. Версия Акса?
2. mdb или adp?

PS: Правила изредка рекомендуется перечитывать!
...
Рейтинг: 0 / 0
select в VBA
    #32879874
james1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparome james1982
Set rst = dbs.OpenRecordset("select company_name from company;")
error type missmatch
А теперь ответь на вопросы:
1. Версия Акса?
2. mdb или adp?

PS: Правила изредка рекомендуется перечитывать!

access 2002 (xp) но база в формате 2000
mdb
...
Рейтинг: 0 / 0
select в VBA
    #32879880
AndrewNico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
james1982Set rst = dbs.OpenRecordset("select company_name from company;")
error type missmatch

У тебя, скорее всего только ADO'шная библиотека подключена. А код в DAO.

для ADO:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim strSQL As String
    
    Set cnn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    
    strSQL = ""
    
    rst.Open strSQL, cnn
    
    If Not rst.EOF Then
       While Not rst.EOF
           'Что-то делаем с набором записей
           '..............................................
           rst.MoveNext
       Wend
    End If
    
    rst.Close

    Set rst = Nothing
    Set cnn = Nothing
...
Рейтинг: 0 / 0
select в VBA
    #32879892
AndrewNico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл, надо:

strSQL = "select company_name from company"
...
Рейтинг: 0 / 0
select в VBA
    #32879895
james1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо
заработало
...
Рейтинг: 0 / 0
select в VBA
    #32879933
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одно преимущество Dlookup помимо объема кода (1 строка против нескольких) - независимость от библиотеки. Использует встроенную ссылку на сам аксесс.

Желаете длинного кода с открытием Recordset'а - вольному воля.
...
Рейтинг: 0 / 0
select в VBA
    #32879967
AndrewNico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительЕще одно преимущество Dlookup помимо объема кода (1 строка против нескольких) - независимость от библиотеки. Использует встроенную ссылку на сам аксесс.

Желаете длинного кода с открытием Recordset'а - вольному воля.

Только один недостаток, возвращает одно конкретное значение.

А человеку, насколько я понял, нужен набор записей. Или я не прав?
...
Рейтинг: 0 / 0
select в VBA
    #32879976
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он же хотел какое-то конкретное значение перегнать в переменную. Я так понял постановку вопроса.
...
Рейтинг: 0 / 0
select в VBA
    #32879994
AndrewNico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительОн же хотел какое-то конкретное значение перегнать в переменную. Я так понял постановку вопроса.

james1982и потом в цикле перебрать все записи и закинуть в какую нибудь переменную VBA


А мне кажется, вполне может быть:

Код: plaintext
1.
2.
3.
4.
5.
6.
   If Not rst.EOF Then
       While Not rst.EOF
           strBigText = strBigText & ";" & rst!SmallText
           rst.MoveNext
       Wend
    End If

А вообще, если все удовлетворены, какая разница...
...
Рейтинг: 0 / 0
select в VBA
    #32880016
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DlookUP и тонкий клиент несовместимы. Так что он не всегда помогает.
ВОТ.
...
Рейтинг: 0 / 0
select в VBA
    #32880111
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga: Можно поподробнее ? А то я сам часто такими приемами пользуюсь, да еще другим советую. Насчет подводных граблей не в курсе, был бы рад узнать!
...
Рейтинг: 0 / 0
select в VBA
    #32880150
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dlookup применим только при доступе юзера к табле, а тонкий клиент запрещает такие действия, а именно, можно юзеру отдать в пользование только исполнять ХП. Чувствуешь разницу. А то найдётся чудо-юзер да и откроет структуру БД, да поламает там всё, из того же ADP, а так он максимум разрешённые ему ХП-шки увидет, так вот.
...
Рейтинг: 0 / 0
select в VBA
    #32880160
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я например свой собственный DlookUP на серваке написал, и юзаю его как стандартный.
...
Рейтинг: 0 / 0
select в VBA
    #32880340
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду иметь в виду!
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / select в VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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