Так что я немного новый для доступа к vba и просто столкнулся с ОГРОМНОЙ проблемой с кодом. Позвольте мне объяснить, у меня есть форма, которая загружает данные из текущей записи и позволяет пользователю ее редактировать. В настоящее время я создаю кнопку сохранения, поэтому данные, которые были изменены, должным образом обновлены в базе данных. у меня есть проверка, чтобы данные в текстовом поле были равны данным в наборе записей. Проблема в том, что если данные в базе данных равны нулю, он будет работать так, как если бы они были равны данным в текстовом поле, даже если текстовое поле имеет в нем «Обновленная группа». Для меня это немного надзор и своего рода разочарование. Мой вопрос: кто-нибудь знает обходное решение этой проблемы?VBA: обновление набора записей на основе текущих данных
Заранее благодарим за любую информацию.
ВОТ ОТВЕТ: Если RstRecSet ("GroupName") Значение & "" <> txtGroupNameEdit.Value & "" -Wayne
Вот мой код:.
Dim searchGroup As String
Dim db As DAO.Database
Dim RstRecSet As DAO.Recordset
Dim Rst As DAO.Recordset
Set db = CurrentDb
searchGroup = txtGroupNrEdit
Set RstRecSet = db.OpenRecordset("Select * from tblGroupHeader Where groupNum like '*" & searchGroup & "*';", dbOpenDynaset)
Set Rst = db.OpenRecordset("Select * from tblAuditTable;", dbOpenDynaset)
If RstRecSet("GroupName").Value <> txtGroupNameEdit.Value Or RstRecSet("PlanStartDate").Value <> txtStartDateEdit.Value _
Or RstRecSet("CanDate").Value <> txtCanDateEdit.Value Or RstRecSet("ClerkID").Value <> txtClerkIDEdit.Value _
Or RstRecSet("PopulationType").Value <> txtGroupTypeEdit.Value Or RstRecSet("COC").Value <> chkCOCEdit.Value _
Or RstRecSet("CDHFinancialPartner").Value <> cmbCDHEdit.Value Or RstRecSet("CDHProdOptions").Value <> chkCDHEdit.Value _
Or RstRecSet("MemberLevelBenefits").Value <> chkMembBeneEdit.Value Or RstRecSet("Comments").Value <> txtCommentsEdit.Value _
Or RstRecSet("AlsoKnownAs").Value <> txtKnownEdit.Value Or RstRecSet("BCBS").Value <> chkBCBSEdit.Value _
Or RstRecSet("Other").Value <> chkOtherEdit.Value Then
RstRecSet.Edit
Rst.AddNew
If RstRecSet("AlsoKnownAs").Value <> txtKnownEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("AlsoKnownAs").Value = txtKnownEdit.Value
Rst("AlsoKnownAs").Value = RstRecSet("AlsoKnownAs")
Rst("DateChanged").Value = Date
End If
If RstRecSet("PlanStartDate").Value <> txtStartDateEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("PlanStartDate").Value = txtStartDateEdit.Value
Rst("PlanStartDate").Value = RstRecSet("PlanStartDate")
Rst("DateChanged").Value = Date
End If
If RstRecSet("CanDate").Value <> txtCanDateEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("CanDate").Value = txtCanDateEdit.Value
Rst("CanDate").Value = RstRecSet("CanDate")
Rst("DateChanged").Value = Date
End If
If RstRecSet("PopulationType").Value <> txtGroupTypeEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("PopulationType").Value = txtGroupTypeEdit.Value
Rst("PopulationType").Value = RstRecSet("PopulationType")
Rst("DateChanged").Value = Date
End If
If RstRecSet("CDHFinancialPartner").Value <> cmbCDHEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("CDHFinancialPartner").Value = cmbCDHEdit.Value
Rst("CDHFinancialPartner").Value = RstRecSet("CDHFinancialPartner")
Rst("DateChanged").Value = Date
End If
If RstRecSet("MemberLevelBenefits").Value <> chkMembBeneEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("MemberLevelBenefits").Value = chkMembBeneEdit.Value
Rst("MemberLevelBenefits").Value = RstRecSet("MemberLevelBenefits")
Rst("DateChanged").Value = Date
End If
If RstRecSet("Other").Value <> chkOtherEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("Other").Value = chkOtherEdit.Value
Rst("Other").Value = RstRecSet("Other")
Rst("DateChanged").Value = Date
End If
If RstRecSet("ClerkID").Value <> txtClerkIDEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("ClerkID").Value = txtClerkIDEdit.Value
Rst("ClerkID").Value = RstRecSet("ClerkID")
Rst("DateChanged").Value = Date
End If
If RstRecSet("COC").Value <> chkCOCEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("COC").Value = chkCOCEdit.Value
Rst("COC").Value = RstRecSet("COC")
Rst("DateChanged").Value = Date
End If
If RstRecSet("CDHProdOptions").Value <> chkCDHEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("CDHProdOptions").Value = chkCDHEdit.Value
Rst("CDHProdOptions").Value = RstRecSet("CDHProdOptions")
Rst("DateChanged").Value = Date
End If
If RstRecSet("Comments").Value <> txtCommentsEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("Comments").Value = txtCommentsEdit.Value
Rst("SpecialConsideration").Value = RstRecSet("Comments")
Rst("DateChanged").Value = Date
End If
If RstRecSet("BCBS").Value <> chkBCBSEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("BCBS").Value = chkBCBSEdit.Value
Rst("BCBS").Value = RstRecSet("BCBS")
Rst("DateChanged").Value = Date
End If
If RstRecSet("GroupName").Value <> txtGroupNameEdit.Value Then
Rst("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupNum").Value = txtGroupNrEdit.Value
RstRecSet("GroupName").Value = txtGroupNameEdit.Value
Rst("GroupName").Value = RstRecSet("GroupName")
Rst("DateChanged").Value = Date
End If
Rst.Update
RstRecSet.Update
End If
Ваш код не соответствует его описанию. Похоже, вы проверяете, «что-то другое?» и если вы действительно добавляете новую запись в дополнение к редактированию записи. Я не уверен, что вы на самом деле спрашиваете. – enderland
Не обращайте внимания на запись добавления, которая предназначена только для таблицы аудита. Работы, подобные вам, «что-то другое», измените то, что иначе ». Проблема в том, когда позволяет сказать, что «KnownAs» ничего не имеет в записи, которую он не вызывает, «что-то другое»? (я думаю, потому что он имеет значение null), он просто предполагает, что это то же самое. – SaladSnake
Нулевые значения могут вызвать странные результаты во время сравнений, поэтому вам нужно определить, является ли поле набора записей нулевым. то есть «Если RstRecSet (« GroupName »). Значение &" "<> txtGroupNameEdit.Value & "" .... –