Офф..Есть в АК спецы по VBA?
Прошу модераторов не ругать за офф, но я уже не знаю у кого спрашивать, осталась надежда на Автоклуб,
вот ссылка на мой вопрос из профильного форума.
Поможите, кто сможет!
вот ссылка на мой вопрос из профильного форума.
Поможите, кто сможет!
D
+Dm+
Ссылка где ?
http://www.e1.ru/talk/forum/read.php?f=37&i=65767&...
Совсем уже заработался...забыл изначально дать ссылку
Совсем уже заработался...забыл изначально дать ссылку
D
+Dm+
Скинь на почту прогу, посмотрю...
d
demiurg_ii
А где, собственно, тест сообщения об ошибке? ИМХО, все, что надо сказали уже в первых пяти постах -- см. Project - References и объявляй DAO.Recordset и DAO.Field
И вообще, забудь даже думать про global namespace и возможность сокращенного наименования типов и объектов -- ето наидурнейший тон в разработке. :-)
И вообще, забудь даже думать про global namespace и возможность сокращенного наименования типов и объектов -- ето наидурнейший тон в разработке. :-)
S
Sergic
Проверил, компилится без проблем. Все работает
d
demiurg_ii
Итить... через семь гробов с присвистом в центр мирового равновесия...
[Сообщение изменено пользователем 16.02.2006 13:59]
А где, собственно, текст сообщения об ошибке
[Сообщение изменено пользователем 16.02.2006 13:59]
Компилится но при запуске останавливается на строке где переменной присваю значение
И выдает ошибку
Type mismatch
D
+Dm+
Dim rcdППРК As Object
Dim rcdR3 As Object
Попробуй переменные так описать.
Dim rcdR3 As Object
Попробуй переменные так описать.
d
demiurg_ii
Public Sub Test()
Dim rsTest As ADODB.Recordset
Set rsTest = CurrentDb.OpenRecordset("select * from MSysObjects", dbOpenDynaset)
MsgBox rsTest.RecordCount
End Sub
-- дает Type mismatchDim rsTest As ADODB.Recordset
Set rsTest = CurrentDb.OpenRecordset("select * from MSysObjects", dbOpenDynaset)
MsgBox rsTest.RecordCount
End Sub
Public Sub Test()
Dim rsTest As DAO.Recordset
Set rsTest = CurrentDb.OpenRecordset("select * from MSysObjects", dbOpenDynaset)
MsgBox rsTest.RecordCount
End Sub
-- работает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]
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно
Это мне сильно помогло!
при обявлении рекордсетов ствалю вначале DAo
теперь только проблема с присванием перменным наименования поля таблицы, тут как делать лучше?
d
demiurg_ii
Писать Dim xxx as DAO.Field :-)
W
WSV
присванием перменным наименования поля таблицы, тут как делать лучше?
Т.е. тебе надо передать в переменную имя поля? или передать в переменную значение поля?
Писать Dim xxx as DAO.Field
Я поля так и объявил
мне надо передать в переменную значение поля
W
WSV
мне надо передать в переменную значение поля
ИМХуется, что у тебя ХХХ - наследник фиелда. Таким образом, ХХХ.валуе - и будет значением.
W
WSV
Нах ВБА
Дельфин рулит.
Дельфин рулит.
Я задаю таким образом:
Set fldчертеж = rcdППРК(5)
Set fldномер = rcdППРК(7)
Set fldНР3 = rcdR3(0)
Set fldНаим = rcdR3(5)
Вылетает на этой строчке Set fldномер = rcdППРК(7)
Говорит что элемента нет в данном семействе
Set fldчертеж = rcdППРК(5)
Set fldномер = rcdППРК(7)
Set fldНР3 = rcdR3(0)
Set fldНаим = rcdR3(5)
Вылетает на этой строчке Set fldномер = rcdППРК(7)
Говорит что элемента нет в данном семействе
d
demiurg_ii
Св-во Value объекта Field является св-вом по умолчанию. Оно неявно используется при присваивании необъектным типам.
Dim s as String
s = rsTest("TheField").Value
и
Dim s as String
s = rsTest("TheField")
ето одно и тоже
Dim s as String
s = rsTest("TheField").Value
и
Dim s as String
s = rsTest("TheField")
ето одно и тоже
d
demiurg_ii
элемента нет в данном семействе
нету в рекордсете _восьми_ полей, значит (они нумеруются от 0, седьмое поле имеет индекс 6)
W
WSV
они нумеруются от 0, седьмое поле имеет индекс 6
+1
Причем хоть ДАО, хоть АДО хоть БДЕ
Может я и в строке поиска указываю как то неправильно обращение к таблице
mln1 = Nz(DLookup("fldНР3", "rcdR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Мне ошибку выдает что не могу найти таблицу rcdR3
mln1 = Nz(DLookup("fldНР3", "rcdR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Мне ошибку выдает что не могу найти таблицу rcdR3
d
demiurg_ii
rcdR3 -- имя объекта, известое только интерпретатору VBA. DLookup требует название запроса или таблицы в БД.
Если я правильно помню код, то там должно стоять
Nz(DLookup("fldНР3", "МатерЦеныR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Если я правильно помню код, то там должно стоять
Nz(DLookup("fldНР3", "МатерЦеныR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Обсуждение этой темы закрыто модератором форума.