2016-06-17 1 views
0

Я работаю над созданием чрезвычайно простой базы данных с 4 таблицами и всего несколькими частями информации за столбец. Одна из моих таблиц называется «Клиент», а внутри этой таблицы есть или четыре столбца для информации. enter image description hereВставить инструкцию в доступе дает ошибку

У меня есть кнопка на моем «AddCustomerForm», которая выполняет следующую команду

Private Sub cmdadd_Click() 
CurrentDb.Execute "INSERT INTO Customer(Customer ID, Email, Identifier) " & _ 
= VALUES(Customer ID, Email, Identifier) 
End Sub 

Моя Добавить анкету клиента выглядит следующим образом: enter image description here

Может кто-то пожалуйста, указать на то, что я Мессинг ? Ошибка, которую я получаю:

Ошибка синтаксиса.

+0

Поле расположения соответствует либо Колорадо-Спрингс, либо Денвер. эти варианты доступны на основе таблицы Business, которая определяет бизнес-идентификатор 1 или 2 в этих местах. – bluerojo

+0

@miroxlav Я внесла некоторые изменения и добавил VALUES, я просто не смог его написать. Я обновил вопрос. – bluerojo

+0

Я также удалил попытку вставить местоположение, потому что у меня есть таблица, сопоставленная с идентификатором, который представляет местоположение в другой таблице. – bluerojo

ответ

1
Private Sub cmdadd_Click() 
CurrentDb.Execute "INSERT INTO Customer ([Customer ID], Email, Identifier) VALUES([Forms]![MyFormName]![CustomerIDTextboxName], [Forms]![MyFormName]![EmailtextboxName], [Forms]![MyFormName]![IdentifierTextboxName]);" 
End Sub 

Для доступа требуется скобки вокруг любого имени поля с пробелом. Я также удалил = до VALUES и изменил значения, чтобы ссылаться на элементы управления формы, которые вам нужно будет назвать соответствующим образом. Для завершения заявления вам также понадобится полу-двоеточие, и вам нужно закрыть двойные кавычки.

This страница может помочь с синтаксисом.

+0

Я сделал то, что вы предложили, и это то, что я придумал. 'CurrentDb.Execute" INSERT INTO Customer ([Идентификатор клиента], Email, Идентификатор) ЗНАЧЕНИЯ ([Forms]! [AddCustomerForm]! [Идентификатор клиента], [Формы]! [AddCustomerForm]! [Email], [Forms]! [ AddCustomerForm]! [Идентификатор]); '' – bluerojo

+0

Я получаю сообщение об ошибке «Слишком малочисленных ожидаемых параметров». Это смущает меня, когда я явно вызвал 3 (идентификатор клиента, адрес электронной почты и идентификатор) – bluerojo

+0

@bluerojo убедитесь, что ваша форма находится в режиме просмотра формы, и все ссылочные элементы управления не равны нулю. – MoondogsMaDawg

3

Есть несколько проблем, которые я вижу - это [Идентификатор клиента] поле автонабора? Если так, не включайте его.

Кроме того - если вы используете ручную вставку, я предполагаю, что ваша форма НЕ привязана к вашей таблице, хотя я начинаю удивляться, почему идентификатор клиента отображается в форме как редактируемая?

Наконец, похоже, Место это числовой идентификатор, принадлежащий ID поля Location выпадающего списка, который заполняет в поле Business ID

Это поможет вам отладки SQL и показать нам, что случилось

Добавьте его на кнопку и показать нам значение, отображаемое в окне Immediate, когда код останавливает

Dim strSQL as string 
    strSQL = "INSERT INTO Customer ([Customer ID], Email, Identifier) VALUES (" _ 
    & me.[Customer ID] & ",""" & Me.[Email] & """,""" & Me.[Identifier] & """)" 
    Debug.print strSQL 

    CurrentDb.Execute strSQL 

Если идентификатор клиента AutoNumber попробовать это вместо того, чтобы (при условии, форма несвязанная) и расположением является ID значения первого столбца выпадающего списка

Dim strSQL as string 
    strSQL = "INSERT INTO Customer (Email, Identifier) VALUES (" _ 
    & me.[Customer ID] & ",""" & Me.[Email] & """, & Me.[Identifier] & ")" 
    Debug.print strSQL 

    CurrentDb.Execute strSQL 
+0

Благодарим вас за помощь. Не удалось заставить это работать, поэтому я суммирую его с недостатком знаний и понимания. Когда я пройду через свою базу данных и переработаю таблицы/строки и переучиваю отдельные части, я с радостью вернусь и приму ответ. До тех пор +1 :). Большое спасибо за вашу помощь! – bluerojo

+0

Я добавил пару двойных кавычек для переноса значения электронной почты - может быть, это проблема? – dbmitch