2015-01-26 3 views
0

я в настоящее время есть функция, которая вставляет запись в таблицу с помощью оператора SQL в Access 2010.Проверьте запись существует перед отправкой нового

Sub btnSubmit_Click() 

dim strSQL as string 

strSQL="INSERT INTO tblMaster (PeriodID,ClassID,ChildID,SubjectID,LevelID) VALUES (" & cboPeriod & "," & cboClass & "," & cboName & "," & tbSubject1 & "," & cboLevel1 & ")" 

CurrentDB.Execute strSQL 
End Sub 

Что я хотел бы сделать первым это проверить, если ' tblMaster 'уже имеет идентичную запись.

Как я могу это достичь?

ответ

1

Я бы предположил, что в худшем случае будет только несколько уникальных идентификаторов; следующее должно работать.

Sub btnSubmit_Click() 
    Dim strSQL as string 

    strSQL = "INSERT INTO tblMaster (PeriodID, ClassID, ChildID, SubjectID, LevelID) VALUES (" & _ 
       cboPeriod & ", " & cboClass & ", " & cboName & ", " & tbSubject1 & ", " & cboLevel1 & ")" 

    If DCount("*", "tblMaster", "PeriodID = " & cboPeriod & " AND " & _ 
           "ClassID = " & cboClass & " AND " & _ 
           "ChildID = " & cboName & " AND " & _ 
           "SubjectID = " & tbSubject1 & " AND " & _ 
           "LevelID = " & cboLevel1) = 0 Then 
     CurrentDB.Execute strSQL 
    Else 
     MsgBox "A Record already exists for this information.", vbOKOnly, "No Records Added." 
    End If 
End Sub 
+0

Это замечательно и прекрасно работает, однако, что, если я хочу проверить, а затем вставить две или более строк одновременно? есть ли чистый способ написать код или просто много копировать и вставлять? – user1894555

+0

Зависит от того, что вы бы назвали чистым .. Объясните сценарий – PaulFrancis

+0

У меня есть форма с 3 полями, которые используются для фильтрации определенного ученика. есть 17 предметов с рядом с ними рядом со списками, которые позволяют пользователю выбирать уровень, который этот конкретный ученик достигает у этого предмета. Каждая строка имеет кнопку рядом с ней, которая позволяет пользователю отправлять запись, если она еще не существует, используя приведенный выше код. Я бы хотел, чтобы кнопка была отправлена ​​одновременно. У меня уже есть кнопка, которая выполняет 17 команд Insert Sql, но она еще не проверяет, существуют ли записи уже – user1894555

0

Вы можете проверить, существует ли эта запись, используя другой оператор select.

Смежные вопросы