Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переброс
 
 автор: час   (17.05.2008 в 22:29)   личное сообщение
 
 

Имеется две однотипные (идентичные) таблицы.
Полей море.
В одной из этих таблиц на одну запись больше.
(т.е. имеется не существующая в другой таблице......)
Как бы запросом со звёздочкой перебросить эту запись в другую таблицу, то есть не расписывая подробно все поля.
Чё-та не хочет перебрасываться.... ни в какую .........
говорит со звёздочкой не пойдёт распишите все поля, но это слишком- тока накрайняк........
Есть ли альтернатива переброса????

  Ответить  
 
 автор: час   (18.05.2008 в 10:09)   личное сообщение
 
 

вот пишу функцую
Public Function Perebros(Iz_Tabl As String, V_Tabl As String)
'"SELECT protokol_dog.* FROM protokol_dog LEFT JOIN Vosstanov_dog ON protokol_dog.KOD = Vosstanov_dog.KOD WHERE (((Vosstanov_dog.KOD) Is Null));"
Dim fldField As Field
Dim rs_Iz_Tabl As DAO.Recordset
Dim rs_V_Tabl As DAO.Recordset
Dim rs_Zapros As DAO.Recordset
Set rs_Zapros = CurrentDb.OpenRecordset("SELECT " & Iz_Tabl & ".* FROM  " & Iz_Tabl & " LEFT JOIN Vosstanov_dog ON  " & Iz_Tabl & ".KOD = " & V_Tabl & ".KOD WHERE (((" & V_Tabl & ".KOD) Is Null))", dbOpenDynaset)
Set rs_Iz_Tabl = CurrentDb.OpenRecordset(Iz_Tabl, dbOpenDynaset)
Set rs_V_Tabl = CurrentDb.OpenRecordset(V_Tabl, dbOpenDynaset)

rs_Zapros.MoveFirst 
With rs_Zapros
Do Until .EOF
'MsgBox !kod
            rs_V_Tabl.AddNew
            For Each fldField In rs_Zapros.Fields' здесь ругается тип не тот 
            rs_V_Tabl.Fields("kod") = !kod
            Next
            rs_V_Tabl.Update
        .MoveNext
        Loop
End With
rs_Iz_Tabl.Close
Set rs_Iz_Tabl = Nothing
rs_V_Tabl.Close
Set rs_V_Tabl = Nothing


End Function

  Ответить  
 
 автор: час   (18.05.2008 в 10:23)   личное сообщение
 
 

ААААААААААААААА вот как надо................


Public Function Perebros(Iz_Tabl As String, V_Tabl As String)
'"SELECT protokol_dog.* FROM protokol_dog LEFT JOIN Vosstanov_dog ON protokol_dog.KOD = Vosstanov_dog.KOD WHERE (((Vosstanov_dog.KOD) Is Null));"
Dim fldField As DAO.Field

Dim rs_Iz_Tabl As DAO.Recordset
Dim rs_V_Tabl As DAO.Recordset
Dim rs_Zapros As DAO.Recordset
Set rs_Zapros = CurrentDb.OpenRecordset("SELECT " & Iz_Tabl & ".* FROM  " & Iz_Tabl & " LEFT JOIN Vosstanov_dog ON  " & Iz_Tabl & ".KOD = " & V_Tabl & ".KOD WHERE (((" & V_Tabl & ".KOD) Is Null))", dbOpenDynaset)
Set rs_Iz_Tabl = CurrentDb.OpenRecordset(Iz_Tabl, dbOpenDynaset)
Set rs_V_Tabl = CurrentDb.OpenRecordset(V_Tabl, dbOpenDynaset)

rs_Zapros.MoveFirst ' прыгаем на первую запись
With rs_Zapros
           Do Until .EOF
                                       'MsgBox !kod
            rs_V_Tabl.AddNew
            For Each fldField In rs_V_Tabl.Fields
            'MsgBox fldField.Name
            rs_V_Tabl.Fields(fldField.Name) = rs_Zapros(fldField.Name)
            Next
            rs_V_Tabl.Update
        .MoveNext
        Loop
End With
rs_Iz_Tabl.Close
Set rs_Iz_Tabl = Nothing
rs_V_Tabl.Close
Set rs_V_Tabl = Nothing


End Function

  Ответить  
 
 автор: osmor   (19.05.2008 в 08:54)   личное сообщение
 
 

А может запросом на добавление?

sql = "INSERT INTO " & V_Tabl  & "SELECT " & Iz_Tabl &......
currentdb.execute sql 

  Ответить  
 
 автор: час   (20.05.2008 в 19:14)   личное сообщение
 
 

а названия полей расписывать придётся?
Если да, то не подходит.

  Ответить  
 
 автор: osmor   (22.05.2008 в 09:36)   личное сообщение
 
 

Если названия полей, их тип и кол-во совпадают - то не нужно, см. выше

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList