Доступ добавить новые данные SQL - PullRequest
0 голосов
/ 28 февраля 2020

Я хотел бы добавить некоторые данные в мою таблицу SQL ...

Это фактическая сборка. - таблица User (Сохраняет данные Useraccess с колонкой UserId, UserForename, UserSurname, Mail) - Formular add new User

В моем формуляре есть 3 TextFields для UserForename, UserSurname, Mail и кнопка для добавления сведений.

При нажатии кнопки должен быть выполнен следующий код ...

Sub Befehl85_Click()

Dim SQLText As String

SQLText = " INSERT INTO user " & _
"(UserID,UserForename,UserSurname,Mail) VALUES " & _
"('SELECT MAX(UserID)+1','UserForename','UserSurname', 'Test2');"

End Sub

Идентификатор пользователя должен автоматически заполняться следующим свободным пространством идентификатора (по убыванию)

Я ищу решение, как ... 3 часа? : D

Может ли кто-нибудь мне помочь?

спасибо.

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020

Как рекомендовано в комментариях kri sh KM, измените UserID на AutoNumber, и вам не нужно будет беспокоиться об этом поле.

Затем настройте запрос, чтобы вы могли передавать значения импорта в качестве параметров. .

Запрос с параметрами:

PARAMETERS [prmForename] Text (255), [prmSurname] Text (255), [prmMail] Text (255);
INSERT INTO User( UserForename, UserSurname, Mail )
SELECT [prmForename], [prmSurname], [prmMail];

Вызов вышеуказанного запроса в VBA:

With CurrentDb().QueryDefs("QueryName")
    .Parameters("[prmForename]").Value = [Value from TextBox] 
    .Parameters("[prmSurname]").Value = [Value from TextBox] 
    .Parameters("[prmMail]").Value = [Value from TextBox] 
    .Execute dbFailOnError
End With
0 голосов
/ 28 февраля 2020

Вам не нужно использовать хранимую процедуру для этой простой задачи. Прежде всего сделайте поле UserID AutoNumber. Чем (если данные находятся в SQL сервер) связать таблицу в Access. Теперь у вас есть 2 варианта:

  1. Наиболее естественным вариантом является установка RecordSource формы для вашей таблицы («SELECT * FROM user»), и вам не нужно почти ничего кодировать. Просто добавьте кнопку, которая создает новую запись и кнопку, которая сохраняет ее. Используйте команды Me.AddNew и DoCmd.RunCommand acCmdSaveRecord в кнопках _Click events.

  2. Если по какой-то причине вы хотите использовать несвязанные элементы управления, используйте этот код для вставки новой строки:

Sub Befehl85_Click()
   Dim SQLText As String
   SQLText = " INSERT INTO user " & _
       "(UserForename,UserSurname,Mail) VALUES " & _
       "('" & Me.UserForename & "','" & Me.UserSurname & "', '" & Me.test2 & "');"
   DoCmd.RunSQL SQLText 
End Sub

Я должен сказать вам, что это относится к основам в Access, и я рекомендую вам прочитать некоторые учебные пособия или посмотреть YouTube.

0 голосов
/ 28 февраля 2020

Предполагая, что под формулой вы подразумеваете форму, это то, что вам нужно:

Sub Befehl85_Click()

DoCmd.RunSQL "INSERT INTO user (UserID,UserForename,UserSurname,Mail) VALUES (" & DMax("UserID","user")+1 & ",'" & Me.UserForename & "','" & Me.UserSurname & "','" & Me.Mail & "')"

End Sub

Как уже говорили другие, вы должны преобразовать UserID в AutoNumber, а не увеличивать его вручную. тогда вы можете пропустить эту часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...