Офф..Есть в АК спецы по VBA?

Прошу модераторов не ругать за офф, но я уже не знаю у кого спрашивать, осталась надежда на Автоклуб,
вот ссылка на мой вопрос из профильного форума.
Поможите, кто сможет!
0
+Dm+
Ссылка где ?
0
http://www.e1.ru/talk/forum/read.php?f=37&i=65767&...

Совсем уже заработался...забыл изначально дать ссылку
0
+Dm+
Скинь на почту прогу, посмотрю...
0
demiurg_ii
А где, собственно, тест сообщения об ошибке? ИМХО, все, что надо сказали уже в первых пяти постах -- см. Project - References и объявляй DAO.Recordset и DAO.Field

И вообще, забудь даже думать про global namespace и возможность сокращенного наименования типов и объектов -- ето наидурнейший тон в разработке. :-)
0
Sergic
Проверил, компилится без проблем. Все работает
0
Компилится но при запуске останавливается на строке где переменной присваю значение
0
demiurg_ii
Итить... через семь гробов с присвистом в центр мирового равновесия...
От пользователя demiurg_ii
А где, собственно, текст сообщения об ошибке


[Сообщение изменено пользователем 16.02.2006 13:59]
0
От пользователя vladforex
Компилится но при запуске останавливается на строке где переменной присваю значение

И выдает ошибку
Type mismatch
0
+Dm+
Dim rcdППРК As Object
Dim rcdR3 As Object

Попробуй переменные так описать.
0
demiurg_ii
Public Sub Test()
Dim rsTest As ADODB.Recordset
Set rsTest = CurrentDb.OpenRecordset("select * from MSysObjects", dbOpenDynaset)
MsgBox rsTest.RecordCount
End Sub
-- дает Type mismatch
Public Sub Test()
Dim rsTest As DAO.Recordset
Set rsTest = CurrentDb.OpenRecordset("select * from MSysObjects", dbOpenDynaset)
MsgBox rsTest.RecordCount
End Sub
-- работает
В Tools-References включены
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно

[Сообщение изменено пользователем 16.02.2006 14:19]
0
От пользователя demiurg_ii
В Tools-References включены
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно

Это мне сильно помогло!
при обявлении рекордсетов ствалю вначале DAo
теперь только проблема с присванием перменным наименования поля таблицы, тут как делать лучше?
0
demiurg_ii
Писать Dim xxx as DAO.Field :-)
0
WSV
От пользователя vladforex
присванием перменным наименования поля таблицы, тут как делать лучше?

Т.е. тебе надо передать в переменную имя поля? или передать в переменную значение поля?
0
От пользователя demiurg_ii
Писать Dim xxx as DAO.Field

Я поля так и объявил
мне надо передать в переменную значение поля
0
WSV
От пользователя vladforex
мне надо передать в переменную значение поля

ИМХуется, что у тебя ХХХ - наследник фиелда. Таким образом, ХХХ.валуе - и будет значением.
0
WSV
Нах ВБА
Дельфин рулит.
0
Я задаю таким образом:
Set fldчертеж = rcdППРК(5)
Set fldномер = rcdППРК(7)
Set fldНР3 = rcdR3(0)
Set fldНаим = rcdR3(5)

Вылетает на этой строчке Set fldномер = rcdППРК(7)
Говорит что элемента нет в данном семействе
0
demiurg_ii
Св-во Value объекта Field является св-вом по умолчанию. Оно неявно используется при присваивании необъектным типам.

Dim s as String
s = rsTest("TheField").Value
и
Dim s as String
s = rsTest("TheField")
ето одно и тоже
0
demiurg_ii
От пользователя vladforex
элемента нет в данном семействе

нету в рекордсете _восьми_ полей, значит (они нумеруются от 0, седьмое поле имеет индекс 6)
0
WSV
От пользователя demiurg_ii
они нумеруются от 0, седьмое поле имеет индекс 6

+1
Причем хоть ДАО, хоть АДО хоть БДЕ
0
Точно ребята!
Я ведь это знал только посчитал неправильно поля!
Спасибо за помощь!
0
Может я и в строке поиска указываю как то неправильно обращение к таблице
mln1 = Nz(DLookup("fldНР3", "rcdR3", " instr(fldНаим ,fldчертеж)>0"), 0)


Мне ошибку выдает что не могу найти таблицу rcdR3
0
demiurg_ii
rcdR3 -- имя объекта, известое только интерпретатору VBA. DLookup требует название запроса или таблицы в БД.

Если я правильно помню код, то там должно стоять

Nz(DLookup("fldНР3", "МатерЦеныR3", " instr(fldНаим ,fldчертеж)>0"), 0)
0
А имя поля какое использоватьв Dlookup присвоенное или из базы данных
0
Обсуждение этой темы закрыто модератором форума.