Инструкция insert into содержит неизвестное имя поля

Маринчик

1 / 1 / 3

Регистрация: 12.10.2012

Сообщений: 150

Ошибки при заполнении полей запросами

02.05.2015, 18:42. Показов 5611. Ответов 3

Метки нет (Все метки)


при помощи запросов sql , прикрепленных в файле — создала таблицы..
начала их заполнять, опять-таки при помощи запросов и начали лезть ошибки…
1-я ошибка:
пишу запрос на заполнение бщих данных для таблицы тКвартири из таблицы тБудинки:

SQL
1
2
3
INSERT INTO тКвартири( [№квартири], [код_будинку])
SELECT * 
FROM тБудинки

выбивает ошибку «Инструкция INSERT INTO содержит неизвестное имя поля №будинку.Проверьте что имя задано без ошибок, и повторите операцию»
я чего-то в запросе не дописала? как исправить эту ошибку???

2-я ошибка

таблицу тТарифи заполняла ручками.. теперь нужно чтоб общие данные по последнему тарифу в этой таблице переходили в таблицу тОплата_план..
Запрос на последний тариф с помощью функции max выглядит так:

SQL
1
2
3
SELECT Дата_встановлення, Тарифік1людини, код_тарифу
FROM тТарифи
WHERE Дата_встановлення = (SELECT MAX (Дата_встановлення) FROM( тТарифи ));

как отдельный запрос он работает, но как я понимаю — что из этого запроса значение для код_тарифу должно копироваться в таблицу тОплата_план, т.е. я создаю следующий запрос:

SQL
1
2
3
4
5
6
7
8
INSERT INTO тОплата_план(код_тарифу) 
SELECT код_тарифу
FROM тТарифи
WHERE 
(SELECT  код_тарифу
FROM тТарифи
WHERE Дата_встановлення = (SELECT MAX (Дата_встановлення) FROM( тТарифи ));
)

выбивает ошибку, что на картинке

Миниатюры

 

Вложения

кр.zip (32.0 Кб, 2 просмотров)



0



mobile

26821 / 14501 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

02.05.2015, 20:33

Сообщение от Маринчик

1-я ошибка:

В запросе на вставку должно быть соответствие количества полей. Вы же в селекте пишете звездочку, т.е. все поля, а в таблице тБудинки 3 поля. Именно об этом акс Вас информирует.

Сообщение от Маринчик

2-я ошибка

Во-первых пара ошибок в синтаксисе запроса. Предложение Where должно быть таким (логику не знаю, сужу только по синтаксису)

SQL
1
2
3
4
WHERE код_тарифу IN 
(SELECT  код_тарифу
FROM тТарифи
WHERE Дата_встановлення = (SELECT MAX (Дата_встановлення) FROM  тТарифи ))

И кроме того, был символ точка с запятой перед заверщающей скобкой. А точка с запятой это символ конца запроса.

Ну и самое важное. В таблице тОплата_план есть 3 обязательных поля: код_оплати_план (ключ), код_тарифу и код_квартири. Попытка создать запись, заполнив только одно из них, приведет к ошибке. Что и случилось



0



Маринчик

1 / 1 / 3

Регистрация: 12.10.2012

Сообщений: 150

03.05.2015, 23:58

 [ТС]

ну не понимаю я сама что не так
тоска блин…ну вроде должно быть правильно.. почему так выбивает

по первой ошибке моей исправила запрос на следущий

SQL
1
2
3
INSERT INTO тКвартири( [№квартири], [код_будинку])
SELECT [№квартири], [код_будинку]
FROM тБудинки

а выбивает сообщение с картинки

что же не так???????? я не понимаю сама…

Миниатюры

 



0



26821 / 14501 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

04.05.2015, 01:52

Сообщение от Маринчик

выбивает сообщение с картинки

Скорее всего причина в том, что в нескольких записях (судя по картинке в 2) поля [№квартири] или [код_будинку] в таблице тБудинки не заполнены. Пустые. А они обязательные. Вот программа об этом и сообщает



0



Доброго времени суток, уважаемый all!

есть пустая dbf (без данных — шаблон), содержащая одно поле ‘8000’ типа character(50)

код:

public string[] toDBF(string FileName)
        {
            try {
              string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\""+Path.GetDirectoryName(FileName) + "\";Extended Properties=\"dBase IV\"";

              System.Data.OleDb.OleDbConnection cn = new OleDbConnection(ConnectionString);
              OleDbCommand ocmd = new OleDbCommand("", cn);
              cn.Open();

              ocmd.CommandText = "insert into [" + Path.GetFileNameWithoutExtension(FileName) + "] ([8000]) values ('asdasdad'));

              ocmd.ExecuteNonQuery();
              cn.Close();
            } catch (Exception err) {
              MessageBox.Show(err.Message);
            }
        }

выдает ошибку на ExecuteNonQuery:
«Инструкция INSERT INTO содержит неизвестное имя поля ‘8000’.
Проверьте, что имя задано без ошибок, и повторите операцию.»

Пробовал ставить имя поле (‘8000’) , (`8000`) не помогает… стоит лишь исправить на [T8000] все проходит на ура..
как только имя поля число сразу падает с ошибкой.. шаблон строго задан начальством, изменить не могу..
пробовал через другие варианты, например черезз OleDbDataAdapter + OleDbCommandBuilder
select из dbf работает нормально, insert нет.
insert сформированный commandbuilder’ом: «insert into table (8000) values (?)» меня совсем не обрадовал.

как быть, подскажите плиз ?

Здравствуйте, S Igor, Вы писали:

SI>Доброго времени суток, уважаемый all!


SI>есть пустая dbf (без данных — шаблон), содержащая одно поле ‘8000’ типа character(50)


SI>код:

SI>

SI>public string[] toDBF(string FileName)
SI>        {
SI>            try {
SI>              string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\""+Path.GetDirectoryName(FileName) + "\";Extended Properties=\"dBase IV\"";

SI>              System.Data.OleDb.OleDbConnection cn = new OleDbConnection(ConnectionString);
SI>              OleDbCommand ocmd = new OleDbCommand("", cn);
SI>              cn.Open();

SI>              ocmd.CommandText = "insert into [" + Path.GetFileNameWithoutExtension(FileName) + "] ([8000]) values ('asdasdad'));

SI>              ocmd.ExecuteNonQuery();
SI>              cn.Close();
SI>            } catch (Exception err) {
SI>              MessageBox.Show(err.Message);
SI>            }
SI>        }
SI>

SI>выдает ошибку на ExecuteNonQuery:
SI>»Инструкция INSERT INTO содержит неизвестное имя поля ‘8000’.
SI>Проверьте, что имя задано без ошибок, и повторите операцию.»

SI>Пробовал ставить имя поле (‘8000’) , (`8000`) не помогает… стоит лишь исправить на [T8000] все проходит на ура..

SI>как только имя поля число сразу падает с ошибкой.. шаблон строго задан начальством, изменить не могу..
SI>пробовал через другие варианты, например черезз OleDbDataAdapter + OleDbCommandBuilder
SI>select из dbf работает нормально, insert нет.
SI>insert сформированный commandbuilder’ом: «insert into table (8000) values (?)» меня совсем не обрадовал.

SI>как быть, подскажите плиз ?

insert into table  values (?)

????

Здравствуйте, DarkSid, Вы писали:
DS>

DS>insert into table  values (?)
DS>

DS> ????

то же самое

Здравствуйте, S Igor, Вы писали:

SI>Здравствуйте, DarkSid, Вы писали:

DS>>

DS>>insert into table  values (?)
DS>>

DS>> ????

SI>то же самое

Вот тут описан хитрый Insert — может поможет
здесь

Возможно смени OLE DB Provider
здесь

Здравствуйте, DarkSid, Вы писали:

DS>Вот тут описан хитрый Insert — может поможет

DS>здесь

DS>Возможно смени OLE DB Provider

DS>здесь

большое спасибо

title keywords f1_keywords ms.assetid ms.date ms.localizationpriority

The INSERT INTO statement contains the following unknown field name: <field name>. Make sure you have typed the name correctly, and try the operation again.(Error 3127)

jeterr40.chm5003127

jeterr40.chm5003127

5f8f58ca-9e96-4df4-04f7-90c27d88aba8

06/08/2017

medium

The INSERT INTO statement contains the following unknown field name: <field name>. Make sure you have typed the name correctly, and try the operation again.(Error 3127)

Applies to: Access 2013 | Access 2016

You tried to use an INSERT INTO statement with the specified field name, but that field does not exist in the output table. Make sure you have typed the name correctly, and then try the operation again.

See also

  • Access for developers forum
  • Access help on support.office.com
  • Access help on answers.microsoft.com
  • Access forums on UtterAccess
  • Access developer and VBA programming help center (FMS)
  • Access posts on StackOverflow

[!includeSupport and feedback]

Ловлю исключение и не могу понять в чем проблема:

System.Data.OleDb.OleDbException: "Инструкция INSERT INTO содержит неизвестное имя поля 'ImageIndex'.  Проверьте, что имя задано без ошибок, и повторите операцию."

Класс с данным запросом:

class MoviesTableMenager
{
    private string ImageIndex { get; set; }
    private string Name { get; set; }
    private string Director { get; set; }
    private string Country { get; set; }
    private int Price { get; set; }
    private string Description { get; set; }
    private OleDbConnection OleDbConnect { get; set; }

    public MoviesTableMenager(string name, string director, string country, int price, string description, string imageIndex)
    {
        Name = name;
        Director = director;
        Country = country;
        Price = price;
        Description = description;
        ImageIndex = imageIndex;
    }

    public void Add()
    {
        string StrConnection = $@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = D:\Serious Projects\AIS_Kinoteatr\CinemaDataBase.mdb;";
        OleDbConnect = new OleDbConnection(StrConnection);
        string cmdText = $"INSERT INTO Films ([ImageIndex], [Name], [Description], [Price], [Director], [Country]) VALUES ('"+ ImageIndex +"', '"+ Name +"', '"+ Description +"', '"+ Price +"', '"+ Director +"', '"+ Country +"')";

        OleDbCommand cmd = new OleDbCommand(cmdText, OleDbConnect);

        OleDbConnect.Open();
        cmd.ExecuteNonQuery(); //Здесь исключение
        OleDbConnect.Close();
    }
}

Номер ошибки: Ошибка 3127
Название ошибки: The INSERT INTO statement contains the following unknown field name: ‘|’
Описание ошибки: The INSERT INTO statement contains the following unknown field name: ‘|’. Make sure you have typed the name correctly, and try the operation again.
Разработчик: Microsoft Corporation
Программное обеспечение: Microsoft Access
Относится к: Windows XP, Vista, 7, 8, 10, 11

Продукт Solvusoft

Загрузка
WinThruster 2025 — Улучшение стабильности и производительности ПК

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Обзор «The INSERT INTO statement contains the following unknown field name: ‘|’»

«The INSERT INTO statement contains the following unknown field name: ‘|’» также считается ошибкой во время выполнения (ошибкой). Разработчики программного обеспечения, такие как Microsoft Corporation, обычно принимают Microsoft Access через несколько уровней отладки, чтобы сорвать эти ошибки перед выпуском для общественности. Ошибки, такие как ошибка 3127, иногда удаляются из отчетов, оставляя проблему остается нерешенной в программном обеспечении.

Пользователи Microsoft Access могут столкнуться с сообщением об ошибке после выполнения программы, например «The INSERT INTO statement contains the following unknown field name: ‘|’. Make sure you have typed the name correctly, and try the operation again.». Если возникает ошибка 3127, разработчикам будет сообщено об этой проблеме через уведомления об ошибках, которые встроены в Microsoft Access. Microsoft Corporation вернется к коду и исправит его, а затем сделает обновление доступным для загрузки. Если есть запрос на обновление Microsoft Access, это обычно обходной путь для устранения проблем, таких как ошибка 3127 и другие ошибки.

Что запускает ошибку времени выполнения 3127?

Наиболее распространенные вхождения «The INSERT INTO statement contains the following unknown field name: ‘|’» проблемы при загрузке Microsoft Access. Мы можем определить происхождение ошибок ошибки 3127 во время выполнения следующим образом:

Ошибка 3127 Crash — Ошибка 3127 остановит компьютер от выполнения обычной программной операции. Обычно это происходит, когда Microsoft Access не может обработать данные в удовлетворительной форме и поэтому не может получить ожидаемый результат.

Утечка памяти «The INSERT INTO statement contains the following unknown field name: ‘|’» — ошибка 3127 утечка памяти приводит к тому, что Microsoft Access постоянно использует все больше и больше памяти, увяская систему. Возможные искры включают сбой освобождения, который произошел в программе, отличной от C ++, когда поврежденный код сборки неправильно выполняет бесконечный цикл.

Error 3127 Logic Error — Ошибка программной логики возникает, когда, несмотря на точный ввод от пользователя, производится неверный вывод. Обычные причины этой проблемы связаны с ошибками в обработке данных.

Такие проблемы The INSERT INTO statement contains the following unknown field name: ‘|’ обычно вызваны повреждением файла, связанного с Microsoft Access, или, в некоторых случаях, его случайным или намеренным удалением. Основной способ решить эти проблемы вручную — заменить файл Microsoft Corporation новой копией. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам Microsoft Corporation, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.

Распространенные проблемы The INSERT INTO statement contains the following unknown field name: ‘|’

Частичный список ошибок The INSERT INTO statement contains the following unknown field name: ‘|’ Microsoft Access:

  • «Ошибка приложения The INSERT INTO statement contains the following unknown field name: ‘|’.»
  • «Ошибка программного обеспечения Win32: The INSERT INTO statement contains the following unknown field name: ‘|’»
  • «The INSERT INTO statement contains the following unknown field name: ‘|’ должен быть закрыт. «
  • «К сожалению, мы не можем найти The INSERT INTO statement contains the following unknown field name: ‘|’. «
  • «Отсутствует файл The INSERT INTO statement contains the following unknown field name: ‘|’.»
  • «Ошибка запуска программы: The INSERT INTO statement contains the following unknown field name: ‘|’.»
  • «Не удается запустить The INSERT INTO statement contains the following unknown field name: ‘|’. «
  • «The INSERT INTO statement contains the following unknown field name: ‘|’ выйти. «
  • «Неверный путь к программе: The INSERT INTO statement contains the following unknown field name: ‘|’. «

Проблемы Microsoft Access The INSERT INTO statement contains the following unknown field name: ‘|’ возникают при установке, во время работы программного обеспечения, связанного с The INSERT INTO statement contains the following unknown field name: ‘|’, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Отслеживание того, когда и где возникает ошибка The INSERT INTO statement contains the following unknown field name: ‘|’, является важной информацией при устранении проблемы.

Истоки проблем The INSERT INTO statement contains the following unknown field name: ‘|’

Проблемы The INSERT INTO statement contains the following unknown field name: ‘|’ вызваны поврежденным или отсутствующим The INSERT INTO statement contains the following unknown field name: ‘|’, недопустимыми ключами реестра, связанными с Microsoft Access, или вредоносным ПО.

Особенно ошибки The INSERT INTO statement contains the following unknown field name: ‘|’ проистекают из:

  • Поврежденная или недопустимая запись реестра The INSERT INTO statement contains the following unknown field name: ‘|’.
  • Вирус или вредоносное ПО, которые повредили файл The INSERT INTO statement contains the following unknown field name: ‘|’ или связанные с Microsoft Access программные файлы.
  • Вредоносное удаление (или ошибка) The INSERT INTO statement contains the following unknown field name: ‘|’ другим приложением (не Microsoft Access).
  • Другая программа, конфликтующая с The INSERT INTO statement contains the following unknown field name: ‘|’ или другой общей ссылкой Microsoft Access.
  • Microsoft Access/The INSERT INTO statement contains the following unknown field name: ‘|’ поврежден от неполной загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2025 — Улучшение стабильности и производительности ПК

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Aorus b360 gaming 3 wi fi инструкция
  • Миноксидил инструкция по применению на русском
  • Пульмикорт 0 25 для ингаляций для детей инструкция как разводить с физраствором для ингаляций
  • Как ликвидировать тсн самостоятельно пошаговая инструкция
  • Омега 3 биофарма для детей инструкция