У меня есть форма, в которой один из ComboBoxes перечисляет все документы данного проекта. Пользователь должен выбрать один и после нажатия кнопки, и если он присутствует в таблице Dessins
, он открывает вторую форму, показывающую эту запись. Если он отсутствует в этой таблице, я хочу добавить его.
Один из моих коллег сказал мне, что мне нужно было выполнить SQL-запрос с VBA. Что я до сих пор таков:
Dim rsDessin As DAO.Recordset
Dim strContrat As String
Dim strProjet As String
Dim strDessin As String
Dim sqlquery As String
'I think these next 3 lines are unimportant. I set a first query to get information I need from another table
strDessin = Me.Combo_Dessin
strProjet = Me.Combo_Projet
sqlquery = "SELECT [Projet HNA] FROM [Projets] WHERE [Projet AHNS] = '" & strProjet & "'"
Set rsDessin = CurrentDb.OpenRecordset(sqlquery)
If Not rsDessin.RecordCount > 0 Then 'If not present I want to add it
strContrat = rsDessin![Projet HNA]
sqlquery = "INSERT INTO Feuilles ([AHNS], [Contrat], [No Projet]) VALUES (strDessin, strContrat, strDessin)"
'Not sure what to do with this query or how to make sure it worked.
End If
'Checking my variables
Debug.Print strProjet
Debug.Print strContrat
Debug.Print strDessin
'By here I'd like to have inserted my new record.
rsDessin.Close
Set rsDessin = Nothing
Я также читал в Интернете, что я мог бы получить аналогичный результат с чем-то вроде этого:
Set R = CurrentDb.OpenRecordset("SELECT * FROM [Dessins]")
R.AddNew
R![Contrat] = strContrat
R![Projet] = strProjet
R![AHNS] = strDessin
R.Update
R.Close
Set R = Nothing
DoCmd.Close
Один путь лучше другого? В случае, когда мой запрос INSERT INTO лучше, что мне следует сделать для его выполнения?