Офф..Есть в АК спецы по VBA?
11:29, 16.02.2006
Прошу модераторов не ругать за офф, но я уже не знаю у кого спрашивать, осталась надежда на Автоклуб,
вот ссылка на мой вопрос из профильного форума.
Поможите, кто сможет!
вот ссылка на мой вопрос из профильного форума.
Поможите, кто сможет!
D
+Dm+
11:44, 16.02.2006
Ссылка где ?
11:49, 16.02.2006
http://www.e1.ru/talk/forum/read.php?f=37&i=65767&...
Совсем уже заработался...забыл изначально дать ссылку
Совсем уже заработался...забыл изначально дать ссылку
D
+Dm+
12:11, 16.02.2006
Скинь на почту прогу, посмотрю...
d
demiurg_ii
13:06, 16.02.2006
А где, собственно, тест сообщения об ошибке? ИМХО, все, что надо сказали уже в первых пяти постах -- см. Project - References и объявляй DAO.Recordset и DAO.Field
И вообще, забудь даже думать про global namespace и возможность сокращенного наименования типов и объектов -- ето наидурнейший тон в разработке. :-)
И вообще, забудь даже думать про global namespace и возможность сокращенного наименования типов и объектов -- ето наидурнейший тон в разработке. :-)
S
Sergic
13:51, 16.02.2006
Проверил, компилится без проблем. Все работает
13:54, 16.02.2006
Компилится но при запуске останавливается на строке где переменной присваю значение
d
demiurg_ii
13:58, 16.02.2006
Итить... через семь гробов с присвистом в центр мирового равновесия...
[Сообщение изменено пользователем 16.02.2006 13:59]
А где, собственно, текст сообщения об ошибке
[Сообщение изменено пользователем 16.02.2006 13:59]
14:02, 16.02.2006
Компилится но при запуске останавливается на строке где переменной присваю значение
И выдает ошибку
Type mismatch
D
+Dm+
14:09, 16.02.2006
Dim rcdППРК As Object
Dim rcdR3 As Object
Попробуй переменные так описать.
Dim rcdR3 As Object
Попробуй переменные так описать.
d
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 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]
14:38, 16.02.2006
В Tools-References включены
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно
Microsoft ActiveX Data Objects 2.1
Microsoft Data Access Objects 3.6
одновременно
Это мне сильно помогло!
при обявлении рекордсетов ствалю вначале DAo
теперь только проблема с присванием перменным наименования поля таблицы, тут как делать лучше?
d
demiurg_ii
14:39, 16.02.2006
Писать Dim xxx as DAO.Field :-)
W
WSV
14:40, 16.02.2006
присванием перменным наименования поля таблицы, тут как делать лучше?
Т.е. тебе надо передать в переменную имя поля? или передать в переменную значение поля?
14:42, 16.02.2006
Писать Dim xxx as DAO.Field
Я поля так и объявил
мне надо передать в переменную значение поля
W
WSV
14:46, 16.02.2006
мне надо передать в переменную значение поля
ИМХуется, что у тебя ХХХ - наследник фиелда. Таким образом, ХХХ.валуе - и будет значением.
W
WSV
14:48, 16.02.2006
Нах ВБА
Дельфин рулит.
Дельфин рулит.
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)
Говорит что элемента нет в данном семействе
Set fldчертеж = rcdППРК(5)
Set fldномер = rcdППРК(7)
Set fldНР3 = rcdR3(0)
Set fldНаим = rcdR3(5)
Вылетает на этой строчке Set fldномер = rcdППРК(7)
Говорит что элемента нет в данном семействе
d
demiurg_ii
14:51, 16.02.2006
Св-во 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
14:53, 16.02.2006
элемента нет в данном семействе
нету в рекордсете _восьми_ полей, значит (они нумеруются от 0, седьмое поле имеет индекс 6)
W
WSV
15:01, 16.02.2006
они нумеруются от 0, седьмое поле имеет индекс 6
+1
Причем хоть ДАО, хоть АДО хоть БДЕ
15:12, 16.02.2006
Точно ребята!
Я ведь это знал только посчитал неправильно поля!
Спасибо за помощь!
Я ведь это знал только посчитал неправильно поля!
Спасибо за помощь!
15:25, 16.02.2006
Может я и в строке поиска указываю как то неправильно обращение к таблице
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
15:36, 16.02.2006
rcdR3 -- имя объекта, известое только интерпретатору VBA. DLookup требует название запроса или таблицы в БД.
Если я правильно помню код, то там должно стоять
Nz(DLookup("fldНР3", "МатерЦеныR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Если я правильно помню код, то там должно стоять
Nz(DLookup("fldНР3", "МатерЦеныR3", " instr(fldНаим ,fldчертеж)>0"), 0)
Обсуждение этой темы закрыто модератором форума.