Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 10:32   #1
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию VBA таблицы строки

Совсем недавно начал вникать в Access и вопросов больше чем ответов.
Пытаюсь макросом выписать из таблицы строки по определённому признаку. в процедуру передаю параметр "U", по которому производится отбор. Вторая таблица изначально пустая. Не получается добавить строку и заполнить её данными. И ещё: Параметр "U" Не уникален.
Уникальная строка получается только в сочетании с другим параметром.
Как лучше организовать поиск? Или при первом нахождении просто проверить второй параметр? и сделать FindNext
Код:
Set rst = dbs.OpenRecordset("*****")
rst.FindFirst "ИНомер ='" & U & " '"

Set rstN = dbs.OpenRecordset("*******")
rstN.FindFirst "ИНомер ='" & U & " '"

 If rstN.NoMatch Then

 rstN.AddNew
  For R = 0 To 4 ' эти поля являются ключевыми
  rstN(R) = rst(R)
  Next R
  rstN(5) = 1
  rstN(6) = "30.11.2011"
  rstN(7) = "30:21:12542/lk:200"
  rstN.Update ' на этой строке ругается
  Else
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 13.11.2011, 16:40   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Оказалось несовпадение по ключевому полю.
Вопрос решен.
Всем спасибо
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 13.11.2011, 23:51   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте alex77755.
позвольте дать совет по поводу Вашего кода:
слова - "..передаю параметр "U", по которому производится отбор.." правильные так и надо выполнять отбор, но на самом деле дело обстоит иначе :
открывается рекордсет и в нем (возможно содержащем миллионы записей) выполняется поиск по результатам которого выполняется поиск в "изначально пустой" таблице.(?)
думаю в подобном случае лучше ограничить кол-во записей рекордсета, явно задав условие отбора в SQL конструкции, например так:
Код:
Const sQ1$ = "select * from table1 where ИНомер =''"
Const sQ2$ = "select * from table2 where ИНомер =''"
Set rst = dbs.OpenRecordset(sQ1 & U & "'")
If Not rst.EOF ' EOF - признак отсутствия текущей записи

        Set rstN = dbs.OpenRecordset(sQ2 & U & "'")
        If rstN.EOF Then rstN.AddNew Else rstN.Edit

            For R = 0 To 4 ' эти поля являются ключевыми
                 rstN(R) = rst(R)
...
"..начал вникать в Access.." - рад за Вас, желаю успехов.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 15.11.2011, 13:38   #4
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Спасибо. Буду изучать дальше
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 21.11.2011, 09:03   #5
Рудзфельд
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 22
По умолчанию

Здравствуй, народ! Хотела узнать...
В одной таблице есть одна строка, в которой N столбцов (т. е. полей). Мне нужно было эти поля сделать строками в другой таблице. Короче говоря, странспонировать таблицу, но чтобы результат был в другой таблице. Причем новая таблица уже имеет какие-то записи, и в новой таблице нужно не создавать новое поле или запись, а переприсваивать.
Пользователь

Последний раз редактировалось Рудзфельд; 21.11.2011 в 09:13.
Рудзфельд вне форума Ответить с цитированием
Старый 21.11.2011, 10:17   #6
Рудзфельд
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 22
По умолчанию

Всё. Разобралась. Отвечать не надо.
Пользователь
Рудзфельд вне форума Ответить с цитированием
Старый 27.06.2016, 05:31   #7
Рудзфельд
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 22
По умолчанию

:-)
Пользователь
Рудзфельд вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA и сводные таблицы Excel strannayaskazka Помощь студентам 0 11.07.2011 13:47
Заполнение таблицы средствами VBA parsn Microsoft Office Excel 2 28.12.2009 14:05
Создание таблицы через VBA mchip Microsoft Office Excel 0 01.10.2009 23:50
Ошибка вставки таблицы в VBA shabbiness Помощь студентам 4 20.07.2009 19:28