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

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

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

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


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

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

Попробуй переменные так описать.
0
demiurg_ii
14:18, 16.02.2006
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
14:38, 16.02.2006
От пользователя demiurg_ii
В Tools-References включены
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно

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

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

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

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

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

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

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

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


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

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

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