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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2011, 17:58   #1
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию Обновление результатов запроса

Здраствуйте!
Есть запрос, который добавляет данные в таблицу, нужно по этим добавленным данных выполнять еще запрос и добавлять их в эту же таблицу, как можно обновить результаты запроса, и при этом чтобы курсор оставался на той же ленте что и до запроса (пробовал пользоваться методом Bookmark, но не получилось )????
Буду благодарен за любые советы.
varyat вне форума Ответить с цитированием
Старый 26.08.2011, 16:44   #2
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию

вот часть кода:
Код:
Do While (rec.Fields("1") = Me.поле22.Value)
rec.MoveNext
Loop
Do Until rec.EOF
DoCmd.Requery
z = rec.Fields("1")
sql = "INSERT INTO rez SELECT * FROM dok WHERE dok.поле5 like """ & z & """"
DoCmd.RunSQL sql
rec.MoveNext
Loop
varyat вне форума Ответить с цитированием
Старый 29.08.2011, 13:19   #3
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Так создайте просто промежуточную таблицу "НН" и просто через неё добавляйте данные. Это должно решить проблему.
gluk_fm вне форума Ответить с цитированием
Старый 29.08.2011, 18:00   #4
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию

Да, но тогда мне потребуется много транзитных таблиц, в связи с чем возникает еще один вопрос:
как правильно написать запрос чтобы имя таблиц выглядело "Таблица n", "Таблица n +1" и т.д., где n определенное число которое с циклом меняется, пробовал так,но не получается:

Код:
sql = "INSERT INTO rez SELECT * from Temp &""" & n + 1 & """"
                    DoCmd.RunSQL sql
                    n = n + 1
varyat вне форума Ответить с цитированием
Старый 30.08.2011, 13:50   #5
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Нет Вы просто не совсем правильно поняли.
Просто в Ваш код добавьте:


Код:
Do While (rec.Fields("1") = Me.поле22.Value)
rec.MoveNext
Loop
Do Until rec.EOF
DoCmd.Requery
z = rec.Fields("1")
очистить временную таблицу
sql = "INSERT INTO Времення таблица SELECT * FROM dok WHERE dok.поле5 like """ & z & """"
добавить всё в основную таблицу

DoCmd.RunSQL sql
rec.MoveNext
Loop


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 31.08.2011 в 08:31.
gluk_fm вне форума Ответить с цитированием
Старый 30.08.2011, 14:27   #6
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

А насчёт такого варианта как Вы хотите создавать таблицы с номерами то так:
n=1
Do While (rec.Fields("1") = Me.поле22.Value)
rec.MoveNext
Loop
Do Until rec.EOF
DoCmd.Requery
z = rec.Fields("1")

sql = "SELECT Таблица1.*, Таблица1.r INTO t & " & n & "
FROM Таблица1
WHERE (((Таблица1.r)=" & z & "));



n=n+1
DoCmd.RunSQL sql
rec.MoveNext
Loop

Только учтите что это создание новых таблиц (как по мне так это полная глупость)
gluk_fm вне форума Ответить с цитированием
Старый 30.08.2011, 17:10   #7
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию

я так понимаю что
Код:
t & " & n & "
это и есть таблица с номирами,но в таком случае при выполнение запроса выдает ошибку 3067????
varyat вне форума Ответить с цитированием
Старый 30.08.2011, 17:33   #8
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Выложите краткую базу с кратким описанием что откуда и куда надо. Я думаю это займёт минут 5 Вероятнее всего тупо не видит таблицу или такая таблица существует.
gluk_fm вне форума Ответить с цитированием
Старый 30.08.2011, 17:48   #9
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию

вот полный код обработки события:
Код:
Private Sub Кнопка16_Click()
On Error GoTo err:
DoCmd.OpenQuery "TEST"
Dim adoerr As Variant
Dim con As New ADODB.Connection
Dim z As String
Dim sql As String
Dim err As Label
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\My Documents-Konstruktor\меню.accdb;Persist Security Info=False"
con.Open
Dim rec As New ADODB.RecordSet
rec.CursorType = adOpenStatic
rec.LockType = adLockOptimistic
rec.Open "Rez", con
rec.MoveFirst
Do Until rec.EOF
z = rec.Fields("1")
sql = "INSERT INTO Rez SELECT * FROM Dok WHERE Dok.Поле5 like """ & z & """"
DoCmd.RunSQL sql
rec.MoveNext
Loop
DoCmd.OpenTable "Rez"
Set con = Nothing
End If
err:
For Each adoerr In con.Errors
MsgBox Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & adoerr.Number & Chr(10) & Chr(10) & adoerr.Description, vbCritical
Next
End Sub
код запроса Test
Код:
SELECT * INTO Rez
FROM Dok
WHERE (((Dok.Поле5)=[Формы]![док_поиск]![Поле22].[Value]));
varyat вне форума Ответить с цитированием
Старый 30.08.2011, 17:51   #10
varyat
Пользователь
 
Аватар для varyat
 
Регистрация: 23.05.2010
Сообщений: 40
По умолчанию

Основная проблема в том что после того как цыкл добавил записи в таблицу Rez я не могу тем же цыклом пройтись по ним,программа не видит их,потому и спрашывал как обновить таблицу Rez чтоб новые даные были видны для программы
varyat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод результатов sql-запроса в textbox r00tready Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 04.12.2010 19:58
не работает запрос на обновление для запроса на быборку ww01031977 Microsoft Office Access 1 04.05.2010 18:08
Анализ результатов Foxtrot_1 Помощь студентам 0 04.10.2009 18:49
Обновление запроса Sergius X SQL, базы данных 2 01.06.2009 21:45
Сохранение результатов program123 Общие вопросы Delphi 1 13.03.2009 22:10