Копирование строк в таблице

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
LeON_LTS
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.07.2009 (Ср) 7:35

Копирование строк в таблице

Сообщение LeON_LTS » 15.07.2009 (Ср) 7:49

Прошу пояснить почему не работает код... Суть задачи в таблице есть записи. Нужно выбрать все записи с определенным значением поля "КодПС" и сделать их копии при этом значение поля "Поколение" изменить с 1 на 2. Среда разработки VB6. Запрос в среде Access проверялся - работает.

Dim MyDN As Database, rsDB As Recordset
Set MyDN = OpenDatabase(Path + "\basa.mdb")
' копирование записей с индексом 2 поколения
Set rsDB = MyDN.Execute("INSERT INTO [Name_Table] SELECT Name_Table.КодПС AS КодПС, Name_Table.Учет AS Учет, Name_Table.Наименование AS Наименование, Name_Table.Мощность AS Мощность, 2 AS Поколение, Name_Table.Характер AS Характер From Name_Table Where КодПС = " & str(КодЗапис))

MyDN.Close

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Копирование строк в таблице

Сообщение karlex » 15.07.2009 (Ср) 9:00

В смысле "не работает"?
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

LeON_LTS
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.07.2009 (Ср) 7:35

Re: Копирование строк в таблице

Сообщение LeON_LTS » 15.07.2009 (Ср) 9:04

Выдает ошибку "Expected Function or variable"

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Копирование строк в таблице

Сообщение alibek » 15.07.2009 (Ср) 9:07

А текст ошибки тебе ни о чем не говорит?
Lasciate ogni speranza, voi ch'entrate.

LeON_LTS
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.07.2009 (Ср) 7:35

Re: Копирование строк в таблице

Сообщение LeON_LTS » 15.07.2009 (Ср) 9:10

Если бы говорил то не спрашивал бы, поэтому и прошу помоч

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Копирование строк в таблице

Сообщение alibek » 15.07.2009 (Ср) 11:09

Ну так словарь возьми.
Он должен натолкнуть тебя на мысль, что ошибка у тебя синтаксическая.
Например, что в DAO Execute — это Sub, а не Function.
Lasciate ogni speranza, voi ch'entrate.

LeON_LTS
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.07.2009 (Ср) 7:35

Re: Копирование строк в таблице

Сообщение LeON_LTS » 15.07.2009 (Ср) 12:07

Dim MyDN As Database
Set MyDN = OpenDatabase(Path + "\basa.mdb")
' копирование записей с индексом 2 поколения
MyDN.Execute("INSERT INTO [Name_Table] SELECT Name_Table.КодПС AS КодПС, Name_Table.Учет AS Учет, Name_Table.Наименование AS Наименование, Name_Table.Мощность AS Мощность, 2 AS Поколение, Name_Table.Характер AS Характер From Name_Table Where КодПС = " & str(КодЗапис))
MyDN.Close

Cделал так, ошибка 3067 "In Microsoft Jet databases, this error occurs if you don't select a table name when you create a query. Select at least one table or query."
"В базах данных Microsoft Jet, эта ошибка происходит, если вы не выбрать имя таблицы, когда вы создаете запрос. Выберите, по крайней мере, одну таблицу или запрос."
Вроде запрос составлен правильно.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Копирование строк в таблице

Сообщение alibek » 15.07.2009 (Ср) 12:40

Этот запрос:
Код: Выделить всё
INSERT INTO [Name_Table]
SELECT Name_Table.КодПС AS КодПС, Name_Table.Учет AS Учет, Name_Table.Наименование AS Наименование, Name_Table.Мощность AS Мощность, 2 AS Поколение, Name_Table.Характер AS Характер
From Name_Table
Where КодПС = ...

в Access выполняется правильно?
Если правильно, попробуй еще написать так (предварительно убедившись, что нет уникального индекса по полю КодПС):
Код: Выделить всё
INSERT INTO [Name_Table] ([КодПС], [Учет], [Наименование], [Мощность], [Поколение], [Характер])
SELECT [КодПС], [Учет], [Наименование], [Мощность], 2 AS [Поколение], [Характер]
From [Name_Table]
Where [КодПС] = ...
Lasciate ogni speranza, voi ch'entrate.

LeON_LTS
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.07.2009 (Ср) 7:35

Re: Копирование строк в таблице

Сообщение LeON_LTS » 15.07.2009 (Ср) 12:54

Все ок заработало, только не пойму тот запрос в Access тестился и все нормально было. Спасибо за помощь !


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 120

    TopList